diff -Nur linux-2.5.8-vanilla/include/linux/prctl.h linux-2.5.8-api/include/linux/prctl.h --- linux-2.5.8-vanilla/include/linux/prctl.h Sun Apr 14 12:18:54 2002 +++ linux-2.5.8-api/include/linux/prctl.h Wed Apr 24 17:31:33 2002 @@ -26,4 +26,31 @@ # define PR_FPEMU_NOPRINT 1 /* silently emulate fp operations accesses */ # define PR_FPEMU_SIGFPE 2 /* don't emulate fp operations, send SIGFPE instead */ +/* Get/Set Restricted CPUs and MemBlks */ +#define PR_SET_RESTRICTED_CPUS 11 +#define PR_SET_RESTRICTED_MEMBLKS 12 +#define PR_GET_RESTRICTED_CPUS 13 +#define PR_GET_RESTRICTED_MEMBLKS 14 + +/* Get CPU/Node */ +#define PR_GET_CPU 15 +#define PR_GET_NODE 16 + +/* X to Node conversion functions */ +#define PR_CPU_TO_NODE 17 +#define PR_MEMBLK_TO_NODE 18 +#define PR_NODE_TO_NODE 19 + +/* Node to X conversion functions */ +#define PR_NODE_TO_CPU 20 +#define PR_NODE_TO_MEMBLK 21 + +/* Set CPU/MemBlk/Memory Bindings */ +#define PR_BIND_TO_CPUS 22 +#define PR_BIND_TO_MEMBLKS 23 +#define PR_BIND_MEMORY 24 + +/* Set Launch Policy */ +#define PR_SET_LAUNCH_POLICY 25 + #endif /* _LINUX_PRCTL_H */ diff -Nur linux-2.5.8-vanilla/kernel/sys.c linux-2.5.8-api/kernel/sys.c --- linux-2.5.8-vanilla/kernel/sys.c Sun Apr 14 12:18:45 2002 +++ linux-2.5.8-api/kernel/sys.c Wed Apr 24 17:32:17 2002 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -1277,6 +1278,51 @@ break; } current->keep_capabilities = arg2; + break; + case PR_SET_RESTRICTED_CPUS: + error = (long) set_restricted_cpus((numa_bitmap_t)arg2, (numa_set_t *)arg3); + break; + case PR_SET_RESTRICTED_MEMBLKS: + error = (long) set_restricted_memblks((numa_bitmap_t)arg2, (numa_set_t *)arg3); + break; + case PR_GET_RESTRICTED_CPUS: + error = (long) get_restricted_cpus(); + break; + case PR_GET_RESTRICTED_MEMBLKS: + error = (long) get_restricted_memblks(); + break; + case PR_GET_CPU: + error = (long) get_cpu(); + break; + case PR_GET_NODE: + error = (long) get_node(); + break; + case PR_CPU_TO_NODE: + error = (long) cpu_to_node((int)arg2); + break; + case PR_MEMBLK_TO_NODE: + error = (long) memblk_to_node((int)arg2); + break; + case PR_NODE_TO_NODE: + error = (long) node_to_node((int)arg2); + break; + case PR_NODE_TO_CPU: + error = (long) node_to_cpu((int)arg2); + break; + case PR_NODE_TO_MEMBLK: + error = (long) node_to_memblk((int)arg2); + break; + case PR_BIND_TO_CPUS: + error = (long) bind_to_cpu((numa_bitmap_t)arg2, (int)arg3); + break; + case PR_BIND_TO_MEMBLKS: + error = (long) bind_to_memblk((numa_bitmap_t)arg2, (int)arg3); + break; + case PR_BIND_MEMORY: + error = (long) bind_memory((unsigned long)arg2, (size_t)arg3, (numa_bitmap_t)arg4, (int)arg5); + break; + case PR_SET_LAUNCH_POLICY: + error = (long) set_launch_policy((numa_bitmap_t)arg2, (int)arg3, (numa_bitmap_t)arg4, (int)arg5); break; default: error = -EINVAL;