Module solana_rbpf::syscalls
source · Expand description
This module implements some built-in syscalls that can be called from within an eBPF program.
These syscalls may originate from several places:
- Some of them mimic the syscalls available in the Linux kernel.
- Some of them were proposed as example syscalls in uBPF and they were adapted here.
- Other syscalls may be specific to rbpf.
The prototype for syscalls is always the same: five u64
as arguments, and a u64
as a return
value. Hence some syscalls have unused arguments, or return a 0 value in all cases, in order to
respect this convention.
Structs§
- The idea is to assemble five bytes into a single
u64
. For compatibility with the syscalls API, each argument must be au64
. - Same as
void *memfrob(void *s, size_t n);
instring.h
in C. See the GNU manual page (in section 3) formemfrob
. The memory is directly modified, and the syscall returns 0 in all cases. Arguments 3 to 5 are unused. - C-like
strcmp
, return 0 if the strings are equal, and a non-null value otherwise. - Prints a NULL-terminated UTF-8 string.
- Prints its last three arguments to standard output. The first two arguments are unused. Returns the number of bytes written.
- Prints the five arguments formated as u64 in decimal.