xtos_ rt_ apply
为当前线程设置 Linux 调度策略,并在 config.cpu 不是 XTOS_RT_NO_CPU 时设置单 CPU 亲和性。
本页目录
声明
#include <xtos/rt.h>
int xtos_rt_apply(const struct xtos_rt_config *config);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| config | const struct xtos_rt_config * | 非 NULL;由调用方拥有,字段为 policy、priority 和 cpu。cpu=-1 仅表示 apply 跳过亲和性。 |
返回值
成功返回 0;失败返回 -1。先设置调度,再设置亲和性。
错误
| errno | 条件 |
|---|---|
| EINVAL | config 为 NULL、调度参数无效、或 cpu 不是 -1 且超出 CPU_SETSIZE。 |
| EPERM | 当前线程没有请求调度策略所需权限,或系统策略拒绝变更。 |
| system errno | 底层 sched_setscheduler 或 sched_setaffinity 失败时保留其 errno。 |
注意事项
- config 只在调用期间读取,SDK 不保存指针;函数操作调用线程,不会配置其他线程。
- 如果亲和性步骤失败,已经成功的调度变更不会自动回滚。函数本身不分配堆内存。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。