setjmpx 内核服务
用途
允许保存当前执行状态或上下文。
语法
#include <sys/types.h>
#include <sys/errno.h> int setjmpx ( jump_buffer)
label_t *jump_buffer;
label_t *jump_buffer;
参数
| 项 | 描述 |
|---|---|
| jump_buffer | 指定调用者提供的跳转缓冲区的地址,该地址是在调用 塞廷普 服务时指定的。 |
描述
塞廷普 内核服务会保存当前执行状态或上下文,以便后续 隆金普 调用可能导致立即从 塞廷普 服务返回。 塞廷普 服务使用必需的状态信息保存上下文,包括:
- 当前中断优先级。
- 该进程当前是否拥有内核方式锁定。
其它状态变量包括非易失性通用寄存器,当前程序的目录和堆栈指针,以及返回地址。
可以嵌套对 塞廷普 服务的调用。 每个对 塞廷普 服务的调用都会导致将此时的上下文推送到 已保存上下文的堆栈的顶部。
执行环境
返回值
| 项 | 描述 |
|---|---|
| 非零值 | 指示 隆金普 调用已导致 塞廷普 服务返回。 |
| 重大安全事件数量 | 指示任何其他情况。 |