Download | Plain Text | No Line Numbers
- /*
- * simple taskset -> cpuset converter
- */
-
- #include <sys/types.h>
- #include <sys/sysctl.h>
- #include <stdio.h>
- #include <errno.h>
- #include <stdlib.h>
- #include <math.h>
- #include <stdlib.h>
- #include <limits.h>
- #include <unistd.h>
- #include <string.h>
-
- void usage()
- {
- }
-
- int main(int argc, char *argv[])
- {
- int query[2];
- int numcpu = 0;
- size_t length = sizeof(numcpu);
- int i;
- long mask;
- char *endptr;
- /* fixed buffers -> buffer overflow */
- char csarg[255] = "-l";
- char buf[10];
-
- if (argc < 3)
- usage();
-
- query[0] = CTL_HW;
- query[1] = HW_NCPU;
- if (sysctl(query, 2, &numcpu, &length, NULL, 0) == -1)
- {
- return EXIT_FAILURE;
- }
-
- if ((errno == ERANGE && (mask == LONG_MAX || mask == LONG_MIN))
- || (errno != 0 && mask == 0))
- {
- }
-
- if (*endptr != '\0' || mask < 0)
- {
- }
-
- if (mask == 0)
- {
- }
-
- for(i = 0; i < numcpu; ++i)
- {
- if (mask & cpuval)
- {
- }
- }
-
- argv[0] = "cpuset";
- argv[1] = csarg;
- return execvp(argv[0], argv);
- }
-
-