/* * Example of sched_set_affinity and sched_get_affinity * Robert Love, 20020227 */ #include #include #include #include #define __NR_sched_set_affinity 239 #define __NR_sched_get_affinity 240 _syscall3 (int, sched_set_affinity, pid_t, pid, unsigned int, len, unsigned long *, new_mask_ptr) _syscall3 (int, sched_get_affinity, pid_t, pid, unsigned int *, user_len_ptr, unsigned long *, user_mask_ptr) int main(int argc, char * argv[]) { unsigned long new_mask = 2; unsigned int len; unsigned long cur_mask; pid_t p = getpid(); int ret; ret = sched_get_affinity(p, &len, NULL); printf(" len = %u\n", len); ret = sched_get_affinity(p, &len, &cur_mask); printf(" sched_get_affinity = %d, cur_mask = %ld\n", ret, cur_mask); ret = sched_set_affinity(p, len, &new_mask); printf(" sched_set_affinity = %d, new_mask = %ld\n", ret, new_mask); ret = sched_get_affinity(p, &len, &cur_mask); printf(" sched_get_affinity = %d, cur_mask = %ld\n", ret, cur_mask); return 0; }