コード例 #1
0
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;
}
コード例 #2
0
ファイル: affinity.c プロジェクト: Claruarius/stblinux-2.6.37
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;
}