linux: Implement sched_setaffinity() and sched_getaffinity() syscalls

This commit is contained in:
EnderIce2
2024-10-16 16:50:15 +03:00
parent 8dc6edac4a
commit 5054243bc6
2 changed files with 93 additions and 4 deletions

View File

@ -364,4 +364,18 @@ struct __old_kernel_stat
#endif
};
typedef struct cpu_set_t
{
unsigned long __bits[128 / sizeof(long)];
} cpu_set_t;
#define CPU_SETSIZE 1024
#define CPU_BIT_OP(i, size, set, operation) \
((i) / 8U >= (size) ? 0 : (((unsigned long *)(set))[(i) / (8 * sizeof(unsigned long))] operation(1UL << ((i) % (8 * sizeof(unsigned long))))))
#define CPU_ISSET(i, set) CPU_BIT_OP(i, sizeof(cpu_set_t), set, &)
#define CPU_SET(i, set) CPU_BIT_OP(i, sizeof(cpu_set_t), set, |=)
#define CPU_ZERO(set) (memset((set), 0, sizeof(cpu_set_t)))
#endif // !__FENNIX_KERNEL_LINUX_DEFS_H__