Tate, Hongliang Tian
8cda63ab3a
Use SEFS at /, HostFS at /host, and RamFS at /tmp
2019-07-19 10:25:33 +00:00
Wang Runji
7f229cef50
add simple HostFS, mount it at /host
2019-07-19 03:51:38 +00:00
Wang Runji
29278db8f4
support multiple fs
...
- use RamFS as rootfs, mount SEFS at /test
- for testing convenience, set default cwd to /test
- fix spawn path and change_cwd
2019-07-19 03:49:18 +00:00
Tate, Hongliang Tian
e1e46c9935
Add clock_gettimeofday
2019-07-18 10:51:12 +00:00
Tate, Hongliang Tian
c096e7d0b9
Inform Intel SGX SDK about Occlum-defined stacks
...
There are two types of stacks: the kernel ones and the user ones. The kernel
stacks are used by Occlum and managed by Intel SGX SDK itself, while the user
stacks are used by the threads created and managed by Occlum. These user stacks
are transparent to Intel SGX SDK so far.
The problem is that Intel SGX SDK needs to be aware of the user stacks.
SGX exception handlers will check whether the rsp value---when the exception
happened---is within the stack of the current SGX thread. If the check fails,
the registered exception handler will not be triggered. But when exceptions are
triggered by the threads running upon Occlum, the rsp value points to the user
stacks, which Intel SGX SDK are completely unware of. So the check always
fails.
Therefore, we extend Intel SGX SDK with two new APIs:
int sgx_enable_user_stack(size_t stack_base, size_t stack_limit);
void sgx_disable_user_stack(void);
And this commit uses the two APIs to inform Intel SGX SDK about the
Occlum-managed stacks. And the rsp checks in SGX exception handlers will
check whether rsp is within the user stacks.
2019-07-18 07:16:17 +00:00
散樗
2553298b1d
Handle cpuid and rdtsc instruction
...
Init support for cpuid and rdtsc instruction handling in occlum.
This patch includes:
1. cpuid exception handler for all information leaves;
2. rdtsc exception handler;
3. handler registration;
4. cpuid test;
5. rdtsc test.
Signed-off-by: 散樗 <kailun.qkl@antfin.com>
2019-07-18 13:51:50 +08:00
Tate, Hongliang Tian
56c69b5f3c
Refactor mmap implementation
...
1. Add a full test suite for mmap
2. Implement file-backed memory mapping
3. Implement fixed, anonymous memory mapping
4. Implement hinted, anonymous memory mapping
5. Implement munmap that covers partial/multiple memory mappings
2019-07-01 11:56:04 +08:00
Tate, Hongliang Tian
3465477cc1
Fix two bugs that prevents compilation and tests working
2019-04-29 00:01:17 +08:00
WangRunji
413586f729
add integrity_only_opt and sgx_file_cache feature
2019-04-26 22:48:00 +08:00
WangRunji
6e871f7948
reformat code using cargo fmt
2019-04-26 21:26:30 +08:00
WangRunji
dd3de96b8e
hack unix socket for php
2019-04-24 19:25:09 +08:00
WangRunji
9797a64f06
enable unix socket and add test for it
2019-04-24 13:28:35 +08:00
WangRunji
9106bd46f2
fix for php. include incomplete code for UnixSocket
2019-04-23 22:00:38 +08:00
WangRunji
f846ba11f2
fix wait4 not removing child
2019-04-23 14:00:44 +08:00
WangRunji
0437e81f36
fix impl File for Stdin/Stdout
2019-04-23 12:58:28 +08:00
WangRunji
26189dddaa
implement fcntl & ioctl for socket. fix lighttpd performance
2019-04-23 01:43:41 +08:00
WangRunji
1326924dbb
fix errno = 0 and introduce macro 'try_libc'
2019-04-23 00:49:37 +08:00
WangRunji
141094e95e
fix return value from libc::ocall
2019-04-22 21:55:57 +08:00
WangRunji
76f9ff380b
add timing for syscall
2019-04-22 17:42:20 +08:00
WangRunji
9c9d1eed3a
implement /dev/null
2019-04-22 16:32:40 +08:00
WangRunji
54243c543a
use errno! macro for all error
2019-04-22 15:54:39 +08:00
WangRunji
b99344d7f5
implement sys_sendfile
2019-04-22 15:37:19 +08:00
WangRunji
f4dacdc01d
add cache for SgxFile
2019-04-21 18:04:48 +08:00
WangRunji
ad98a1698e
add timing
...
by shenyouren
2019-04-21 17:28:06 +08:00
WangRunji
5d9b8e4fa3
implement missing IO function for SocketFile
2019-04-21 17:26:17 +08:00
WangRunji
58ff7b88b5
fix SgxFile seek after the end
2019-04-14 20:31:19 +08:00
WangRunji
4811044c14
fix SgxFile read/write empty buffer
2019-04-13 21:03:10 +08:00
WangRunji
d19676032d
implement add_open in posix_spawn
2019-04-13 12:05:50 +08:00
WangRunji
58a7f7c126
simplify epoll_ctl
2019-04-12 18:02:40 +08:00
WangRunji
82f4169618
enlarge preallocated space. sync file system on exit.
2019-04-12 16:54:49 +08:00
WangRunji
b2d75f386c
support readlink "/proc/self/exe". impl dummy fcntl.getfl
2019-04-12 15:17:27 +08:00
WangRunji
a8060f0b24
add simple epoll test. fix epoll_wait, accept4
2019-04-12 15:14:11 +08:00
WangRunji
80a73eaa0d
fix close_on_spawn and file_actions
2019-04-12 14:27:48 +08:00
WangRunji
6d432b0a03
fix deadlock when log getting pid
2019-04-12 13:42:19 +08:00
WangRunji
b5697ab611
Merge remote-tracking branch 'official/master' into net
...
# Conflicts:
# src/libos/src/fs/mod.rs
# src/libos/src/syscall/mod.rs
# test/Makefile
2019-04-11 19:13:29 +08:00
WangRunji
bd9a3dd578
fix epoll_ctl deadlock
2019-04-11 19:10:12 +08:00
Tate, Hongliang Tian
2957fa99d5
Make sure VMRange fills its memory with zeros if necessary
2019-04-11 18:19:49 +08:00
Tate, Hongliang Tian
862601604c
Refactor VMRange code and fix two bugs
...
The first bug is that a VMRange may not be allocated to a 4KB-aligned address.
The second bug is that a VMRange may not be deallocated by its parent VMRange.
2019-04-11 18:19:49 +08:00
Tate, Hongliang Tian
895f70a2dc
Refactor VMRange allocation for readability
2019-04-11 09:13:53 +08:00
Tate, Hongliang Tian
356884679b
Add readlink
2019-04-11 09:13:53 +08:00
Tate, Hongliang Tian
44ef19726f
Add fcntl
2019-04-11 09:13:53 +08:00
WangRunji
f9121a025e
implement epoll
2019-04-10 14:07:50 +08:00
Tate, Hongliang Tian
785d3237b9
Add getuid, getgid, geteuid, getegid, etc.
2019-04-10 09:03:41 +08:00
Tate, Hongliang Tian
e335e8df1d
Add sigaction and sigprocmask (but not implemented)
2019-04-10 09:03:41 +08:00
Tate, Hongliang Tian
d7e266d0e3
Add access and faccessat
2019-04-10 09:03:41 +08:00
Tate, Hongliang Tian
b003f4ce43
Add prlimit64, getrlimit, and setrlimit
2019-04-10 09:03:41 +08:00
Tate, Hongliang Tian
8846c62b5e
Add uname
2019-04-10 09:03:41 +08:00
WangRunji
7bd2ce50f2
implement select and poll without test
2019-04-09 00:04:44 +08:00
WangRunji
f62809096e
use libc::off_t
2019-04-08 16:22:52 +08:00
WangRunji
5b90d90643
implement SocketFile. pass socket test
2019-04-07 11:47:54 +08:00