From 38f5c97c3383fb8424fbde6ccdc1aaad4c28ae0f Mon Sep 17 00:00:00 2001 From: Jethro Beekman Date: Wed, 19 Dec 2018 12:16:04 +0530 Subject: [PATCH] Revert "Remove some dead code from `sgx`" This reverts commit 134661917bf4b086b027a2c58219d50ba57a1453. --- src/libstd/sys/sgx/abi/mem.rs | 7 +++++++ src/libstd/sys/sgx/abi/usercalls/mod.rs | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/src/libstd/sys/sgx/abi/mem.rs b/src/libstd/sys/sgx/abi/mem.rs index bf32c712216..508f2ff4d4f 100644 --- a/src/libstd/sys/sgx/abi/mem.rs +++ b/src/libstd/sys/sgx/abi/mem.rs @@ -34,6 +34,13 @@ fn image_base() -> u64 { base } +pub fn is_enclave_range(p: *const u8, len: usize) -> bool { + let start=p as u64; + let end=start + (len as u64); + start >= image_base() && + end <= image_base() + (unsafe { ENCLAVE_SIZE } as u64) // unsafe ok: link-time constant +} + pub fn is_user_range(p: *const u8, len: usize) -> bool { let start=p as u64; let end=start + (len as u64); diff --git a/src/libstd/sys/sgx/abi/usercalls/mod.rs b/src/libstd/sys/sgx/abi/usercalls/mod.rs index d1d180e4825..2bc32c9fefb 100644 --- a/src/libstd/sys/sgx/abi/usercalls/mod.rs +++ b/src/libstd/sys/sgx/abi/usercalls/mod.rs @@ -33,6 +33,14 @@ pub fn read(fd: Fd, buf: &mut [u8]) -> IoResult { } } +pub fn read_alloc(fd: Fd) -> IoResult> { + unsafe { + let mut userbuf = alloc::User::::uninitialized(); + raw::read_alloc(fd, userbuf.as_raw_mut_ptr()).from_sgx_result()?; + Ok(copy_user_buffer(&userbuf)) + } +} + pub fn write(fd: Fd, buf: &[u8]) -> IoResult { unsafe { let userbuf = alloc::User::new_from_enclave(buf); -- 2.44.0