Documentation
¶
Overview ¶
Package syscalls is the interface from the application to the kernel. Traditionally, syscalls is the interface that is used by applications to request services from the kernel of a operating system. We provide a user-mode kernel that needs to handle those requests coming from unmodified applications. Therefore, we still use the term "syscalls" to denote this interface.
Note that the stubs in this package may merely provide the interface, not the actual implementation. It just makes writing syscall stubs straightforward.
Index ¶
- func AddEpoll(t *kernel.Task, epfd kdefs.FD, fd kdefs.FD, flags epoll.EntryFlags, ...) error
- func CapError(c linux.Capability) kernel.SyscallFn
- func CreateEpoll(t *kernel.Task, closeOnExec bool) (kdefs.FD, error)
- func Error(err error) kernel.SyscallFn
- func ErrorWithEvent(err error) kernel.SyscallFn
- func Poll(t *kernel.Task, pfd []PollFD, timeout time.Duration) (time.Duration, uintptr, error)
- func RemoveEpoll(t *kernel.Task, epfd kdefs.FD, fd kdefs.FD) error
- func UnimplementedEvent(t *kernel.Task)
- func UpdateEpoll(t *kernel.Task, epfd kdefs.FD, fd kdefs.FD, flags epoll.EntryFlags, ...) error
- func WaitEpoll(t *kernel.Task, fd kdefs.FD, max int, timeout int) ([]epoll.Event, error)
- type PollFD
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddEpoll ¶
func AddEpoll(t *kernel.Task, epfd kdefs.FD, fd kdefs.FD, flags epoll.EntryFlags, mask waiter.EventMask, userData [2]int32) error
AddEpoll implements the epoll_ctl(2) linux syscall when op is EPOLL_CTL_ADD.
func CapError ¶
func CapError(c linux.Capability) kernel.SyscallFn
CapError gives a syscall function that checks for capability c. If the task has the capability, it returns ENOSYS, otherwise EPERM. To unprivileged tasks, it will seem like there is an implementation.
func CreateEpoll ¶
CreateEpoll implements the epoll_create(2) linux syscall.
func ErrorWithEvent ¶
ErrorWithEvent gives a syscall function that sends an unimplemented syscall event via the event channel and returns the passed error.
func Poll ¶
Poll polls the PollFDs in "pfd" with a bounded time specified in "timeout" when "timeout" is greater than zero.
Poll returns the remaining timeout, which is always 0 on a timeout; and 0 or positive if interrupted by a signal.
func RemoveEpoll ¶
RemoveEpoll implements the epoll_ctl(2) linux syscall when op is EPOLL_CTL_DEL.
func UnimplementedEvent ¶
UnimplementedEvent emits an UnimplementedSyscall event via the event channel.