int main() { cpu_set_t mask; sched_getaffinity(0, sizeof(mask), &mask); //staptest// sched_getaffinity (0, XXXX, XXXX) = NNNN sched_setaffinity(0, sizeof(mask), &mask); //staptest// sched_setaffinity (0, XXXX, XXXX) = NNNN /* Limits testing */ sched_setaffinity(-1, sizeof(mask), &mask); //staptest// sched_setaffinity (-1, XXXX, XXXX) = NNNN #ifdef __NR_sched_setaffinity // glibc mangles this one __sched_setaffinity(0, (size_t)-1, &mask); //staptest// sched_setaffinity (0, 4294967295, XXXX) = NNNN // glibc mangles this one also __sched_setaffinity(0, sizeof(mask), (cpu_set_t *)-1); #ifdef __s390__ //staptest// sched_setaffinity (0, XXXX, 0x[7]?[f]+) = NNNN #else //staptest// sched_setaffinity (0, XXXX, 0x[f]+) = NNNN #endif #endif return 0; }
int main(int argc, char * argv[]) { unsigned long new_mask; unsigned long cur_mask; unsigned int len = sizeof(new_mask); pid_t pid; if (argc != 3) { printf(" usage: %s <pid> <cpu_mask>\n", argv[0]); return -1; } pid = atol(argv[1]); sscanf(argv[2], "%08lx", &new_mask); if (__sched_getaffinity(pid, len, &cur_mask) < 0) { printf("error: could not get pid %d's affinity.\n", pid); return -1; } printf(" pid %d's old affinity: %08lx\n", pid, cur_mask); if (__sched_setaffinity(pid, len, &new_mask)) { printf("error: could not set pid %d's affinity.\n", pid); return -1; } if (__sched_getaffinity(pid, len, &cur_mask) < 0) { printf("error: could not get pid %d's affinity.\n", pid); return -1; } printf(" pid %d's new affinity: %08lx\n", pid, cur_mask); return 0; }