aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2017-10-18 19:22:53 +0000
committerEd Schouten <ed@FreeBSD.org>2017-10-18 19:22:53 +0000
commit4e1847781bdf26b80cd541971868bafffaf64bf5 (patch)
tree5847cb52f29568c29afc655355d0c0b3f3ae743b /sys/contrib/cloudabi/cloudabi_vdso_x86_64.S
parent0d5af38ceb5464b2c7f5feb54fcc0c0cb7925e65 (diff)
downloadsrc-4e1847781bdf26b80cd541971868bafffaf64bf5.tar.gz
src-4e1847781bdf26b80cd541971868bafffaf64bf5.zip
Import the latest CloudABI definitions, version 0.16.
The most important change in this release is the removal of the poll_fd() system call; CloudABI's equivalent of kevent(). Though I think that kqueue is a lot saner than many of its alternatives, our experience is that emulating this system call on other systems accurately isn't easy. It has become a complex API, even though I'm not convinced this complexity is needed. This is why we've decided to take a different approach, by looking one layer up. We're currently adding an event loop to CloudABI's C library that is API compatible with libuv (except when incompatible with Capsicum). Initially, this event loop will be built on top of plain inefficient poll() calls. Only after this is finished, we'll work our way backwards and design a new set of system calls to optimize it. Interesting challenges will include integrating asynchronous I/O into such a system call API. libuv currently doesn't aio(4) on Linux/BSD, due to it being unreliable and having undesired semantics. Obtained from: https://github.com/NuxiNL/cloudabi
Notes
Notes: svn path=/head/; revision=324727
Diffstat (limited to 'sys/contrib/cloudabi/cloudabi_vdso_x86_64.S')
-rw-r--r--sys/contrib/cloudabi/cloudabi_vdso_x86_64.S34
1 files changed, 11 insertions, 23 deletions
diff --git a/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S b/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S
index 217bd1cbea0a..4703597f7a62 100644
--- a/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S
+++ b/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S
@@ -368,34 +368,22 @@ ENTRY(cloudabi_sys_poll)
ret
END(cloudabi_sys_poll)
-ENTRY(cloudabi_sys_poll_fd)
- mov %rcx, %r10
- mov $38, %eax
- syscall
- jc 1f
- mov 8(%rsp), %rcx
- mov %rax, (%rcx)
- xor %eax, %eax
-1:
- ret
-END(cloudabi_sys_poll_fd)
-
ENTRY(cloudabi_sys_proc_exec)
mov %rcx, %r10
- mov $39, %eax
+ mov $38, %eax
syscall
ret
END(cloudabi_sys_proc_exec)
ENTRY(cloudabi_sys_proc_exit)
- mov $40, %eax
+ mov $39, %eax
syscall
END(cloudabi_sys_proc_exit)
ENTRY(cloudabi_sys_proc_fork)
push %rdi
push %rsi
- mov $41, %eax
+ mov $40, %eax
syscall
pop %rsi
pop %rcx
@@ -408,38 +396,38 @@ ENTRY(cloudabi_sys_proc_fork)
END(cloudabi_sys_proc_fork)
ENTRY(cloudabi_sys_proc_raise)
- mov $42, %eax
+ mov $41, %eax
syscall
ret
END(cloudabi_sys_proc_raise)
ENTRY(cloudabi_sys_random_get)
- mov $43, %eax
+ mov $42, %eax
syscall
ret
END(cloudabi_sys_random_get)
ENTRY(cloudabi_sys_sock_recv)
- mov $44, %eax
+ mov $43, %eax
syscall
ret
END(cloudabi_sys_sock_recv)
ENTRY(cloudabi_sys_sock_send)
- mov $45, %eax
+ mov $44, %eax
syscall
ret
END(cloudabi_sys_sock_send)
ENTRY(cloudabi_sys_sock_shutdown)
- mov $46, %eax
+ mov $45, %eax
syscall
ret
END(cloudabi_sys_sock_shutdown)
ENTRY(cloudabi_sys_thread_create)
push %rsi
- mov $47, %eax
+ mov $46, %eax
syscall
pop %rcx
jc 1f
@@ -450,12 +438,12 @@ ENTRY(cloudabi_sys_thread_create)
END(cloudabi_sys_thread_create)
ENTRY(cloudabi_sys_thread_exit)
- mov $48, %eax
+ mov $47, %eax
syscall
END(cloudabi_sys_thread_exit)
ENTRY(cloudabi_sys_thread_yield)
- mov $49, %eax
+ mov $48, %eax
syscall
ret
END(cloudabi_sys_thread_yield)