diff options
| author | Jethro Beekman <jethro@fortanix.com> | 2018-12-19 12:16:04 +0530 |
|---|---|---|
| committer | Jethro Beekman <jethro@fortanix.com> | 2018-12-19 12:16:04 +0530 |
| commit | 38f5c97c3383fb8424fbde6ccdc1aaad4c28ae0f (patch) | |
| tree | f81c071d5d61d22baf89400ac4f785a4daa3428b /src/libstd/sys | |
| parent | 4358be46c7f04a6cc12ae913c46a635bb1559779 (diff) | |
| download | rust-38f5c97c3383fb8424fbde6ccdc1aaad4c28ae0f.tar.gz rust-38f5c97c3383fb8424fbde6ccdc1aaad4c28ae0f.zip | |
Revert "Remove some dead code from `sgx`"
This reverts commit 134661917bf4b086b027a2c58219d50ba57a1453.
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/sgx/abi/mem.rs | 7 | ||||
| -rw-r--r-- | src/libstd/sys/sgx/abi/usercalls/mod.rs | 8 |
2 files changed, 15 insertions, 0 deletions
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<usize> { } } +pub fn read_alloc(fd: Fd) -> IoResult<Vec<u8>> { + unsafe { + let mut userbuf = alloc::User::<ByteBuffer>::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<usize> { unsafe { let userbuf = alloc::User::new_from_enclave(buf); |
