Skip to main content

Crate user_lib

Crate user_lib 

Source
Expand description

教程阅读建议:

  • _start 展示用户程序最小运行时(初始化控制台、堆、调用 main);
  • 其余辅助函数(sleep/pipe_*)展示了常见 syscall 组合用法。

Modules§

native
非 riscv64 架构的 stub 实现。

Macros§

print
格式化打印。
println
格式化打印并换行。

Structs§

ClockId
时钟类型标识(与 clock_gettime 等接口配合使用)。
OpenFlags
SignalAction
信号处理函数的定义
Stat
文件状态信息
StatMode
文件类型标志
SyscallId
系统调用号。
TimeSpec
秒 + 纳秒表示的时间结构。

Enums§

SignalNo
信号编号。

Constants§

MAX_SIG
最大的信号编号
STDDEBUG
标准错误/调试输出文件描述符。
STDIN
标准输入文件描述符。
STDOUT
标准输出文件描述符。

Functions§

_start
clock_gettime
获取时钟时间。
close
关闭文件描述符。
condvar_create
创建条件变量。
condvar_signal
唤醒等待条件变量的线程。
condvar_wait
等待条件变量。
count_syscall
enable_deadlock_detect
启用死锁检测。
exec
执行新程序。
exit
退出当前进程。
fork
创建子进程。
fstat
获取文件状态。
get_time
getchar
getpid
获取当前进程 ID。
gettid
获取当前线程 ID。
kill
向进程发送信号。
link
创建一个文件的一个硬链接。
mmap
映射内存。
munmap
取消内存映射。
mutex_create
创建互斥锁。
mutex_lock
获取互斥锁。
mutex_unlock
释放互斥锁。
open
打开文件。
pipe
创建管道
pipe_read
从管道读取数据 返回实际读取的总字节数,负数表示错误
pipe_write
向管道写入数据 返回实际写入的总字节数,负数表示错误
read
从文件描述符读取数据。
sbrk
调整进程堆大小
sched_yield
主动让出 CPU。
semaphore_create
创建信号量。
semaphore_down
获取信号量(P 操作)。
semaphore_up
释放信号量(V 操作)。
set_priority
设置进程优先级。
sigaction
设置信号处理函数。
sigprocmask
设置信号掩码。
sigreturn
从信号处理函数返回。
sleep
spawn
创建并运行一个新进程。
thread_create
创建新线程。
trace
记录系统调用。
trace_read
trace_write
unlink
取消一个文件路径到文件的链接。
wait
等待任意子进程退出。
waitpid
等待指定子进程退出。
waittid
等待指定线程退出。
write
向文件描述符写入数据。