| /* Internal interfaces of libnuma */ |
| |
| extern int numa_sched_setaffinity_v1(pid_t pid, unsigned len, const unsigned long *mask); |
| extern int numa_sched_getaffinity_v1(pid_t pid, unsigned len, const unsigned long *mask); |
| extern int numa_sched_setaffinity_v1_int(pid_t pid, unsigned len,const unsigned long *mask); |
| extern int numa_sched_getaffinity_v1_int(pid_t pid, unsigned len,const unsigned long *mask); |
| extern int numa_sched_setaffinity_v2(pid_t pid, struct bitmask *mask); |
| extern int numa_sched_getaffinity_v2(pid_t pid, struct bitmask *mask); |
| extern int numa_sched_setaffinity_v2_int(pid_t pid, struct bitmask *mask); |
| extern int numa_sched_getaffinity_v2_int(pid_t pid, struct bitmask *mask); |
| |
| #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ |
| |
| #define BITS_PER_LONG (sizeof(unsigned long) * 8) |
| #define CPU_BYTES(x) (round_up(x, BITS_PER_LONG)/8) |
| #define CPU_LONGS(x) (CPU_BYTES(x) / sizeof(long)) |
| |
| #define make_internal_alias(x) extern __typeof (x) x##_int __attribute((alias(#x), visibility("hidden"))) |
| #define hidden __attribute__((visibility("hidden"))) |
| |
| enum numa_warn { |
| W_nosysfs, |
| W_noproc, |
| W_badmeminfo, |
| W_nosysfs2, |
| W_cpumap, |
| W_numcpus, |
| W_noderunmask, |
| W_distance, |
| W_memory, |
| W_cpuparse, |
| W_nodeparse, |
| W_blockdev1, |
| W_blockdev2, |
| W_blockdev3, |
| W_blockdev4, |
| W_blockdev5, |
| W_netlink1, |
| W_netlink2, |
| W_netlink3, |
| W_net1, |
| W_net2, |
| W_class1, |
| W_class2, |
| W_pci1, |
| W_pci2, |
| W_node_parse1, |
| W_node_parse2, |
| W_nonode, |
| W_badchar, |
| }; |
| |
| #define howmany(x,y) (((x)+((y)-1))/(y)) |
| #define bitsperlong (8 * sizeof(unsigned long)) |
| #define bitsperint (8 * sizeof(unsigned int)) |
| #define longsperbits(n) howmany(n, bitsperlong) |
| #define bytesperbits(x) ((x+7)/8) |