xtos_ rt_ set_ affinity
将当前线程的 CPU 亲和性掩码设置为一个逻辑 CPU。
本页目录
声明
#include <xtos/rt.h>
int xtos_rt_set_affinity(int cpu);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| cpu | int | 逻辑 CPU 编号,必须为 0 到 CPU_SETSIZE-1;不能传 XTOS_RT_NO_CPU。 |
返回值
成功返回 0;失败返回 -1。
错误
| errno | 条件 |
|---|---|
| EINVAL | cpu 小于 0 或不小于 CPU_SETSIZE,或内核拒绝该 CPU 集合。 |
| EPERM | 当前线程无权修改其亲和性或目标 CPU 集合。 |
| system errno | sched_setaffinity 失败时返回底层 errno。 |
注意事项
- CPU 是系统逻辑编号,不是允许 CPU 列表中的索引;CPU 是否在线和是否在 cpuset 中由内核判断。
- 函数不分配内存,不保存调用方数据;它只影响调用线程。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。