Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011 #ifndef HWLOC_CPUSET_H
00012 #define HWLOC_CPUSET_H
00013
00014 #include <hwloc/config.h>
00015
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00021
00035 typedef struct hwloc_cpuset_s * hwloc_cpuset_t;
00036 typedef const struct hwloc_cpuset_s * hwloc_const_cpuset_t;
00037
00038
00039
00040
00041
00042
00049 hwloc_cpuset_t hwloc_cpuset_alloc(void) ;
00050
00052 void hwloc_cpuset_free(hwloc_cpuset_t set);
00053
00055 hwloc_cpuset_t hwloc_cpuset_dup(hwloc_const_cpuset_t set) ;
00056
00058 void hwloc_cpuset_copy(hwloc_cpuset_t dst, hwloc_const_cpuset_t src);
00059
00060
00061
00062
00063
00064
00072 int hwloc_cpuset_snprintf(char * restrict buf, size_t buflen, hwloc_const_cpuset_t set);
00073
00079 int hwloc_cpuset_asprintf(char ** strp, hwloc_const_cpuset_t set);
00080
00085 int hwloc_cpuset_from_string(hwloc_cpuset_t set, const char * restrict string);
00086
00087
00088
00089
00090
00091
00093 void hwloc_cpuset_zero(hwloc_cpuset_t set);
00094
00096 void hwloc_cpuset_fill(hwloc_cpuset_t set);
00097
00099 void hwloc_cpuset_from_ulong(hwloc_cpuset_t set, unsigned long mask);
00100
00102 void hwloc_cpuset_from_ith_ulong(hwloc_cpuset_t set, unsigned i, unsigned long mask);
00103
00105 unsigned long hwloc_cpuset_to_ulong(hwloc_const_cpuset_t set) ;
00106
00108 unsigned long hwloc_cpuset_to_ith_ulong(hwloc_const_cpuset_t set, unsigned i) ;
00109
00111 void hwloc_cpuset_cpu(hwloc_cpuset_t set, unsigned cpu);
00112
00114 void hwloc_cpuset_all_but_cpu(hwloc_cpuset_t set, unsigned cpu);
00115
00117 void hwloc_cpuset_set(hwloc_cpuset_t set, unsigned cpu);
00118
00120 void hwloc_cpuset_set_range(hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
00121
00123 void hwloc_cpuset_clr(hwloc_cpuset_t set, unsigned cpu);
00124
00126 void hwloc_cpuset_clr_range(hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
00127
00129 int hwloc_cpuset_isset(hwloc_const_cpuset_t set, unsigned cpu) ;
00130
00132 int hwloc_cpuset_iszero(hwloc_const_cpuset_t set) ;
00133
00135 int hwloc_cpuset_isfull(hwloc_const_cpuset_t set) ;
00136
00138 int hwloc_cpuset_isequal (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) ;
00139
00141 int hwloc_cpuset_intersects (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) ;
00142
00144 int hwloc_cpuset_isincluded (hwloc_const_cpuset_t sub_set, hwloc_const_cpuset_t super_set) ;
00145
00147 void hwloc_cpuset_or (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
00148
00150 void hwloc_cpuset_and (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
00151
00153 void hwloc_cpuset_andnot (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
00154
00156 void hwloc_cpuset_xor (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
00157
00159 void hwloc_cpuset_not (hwloc_cpuset_t res, hwloc_const_cpuset_t set);
00160
00165 int hwloc_cpuset_first(hwloc_const_cpuset_t set) ;
00166
00171 int hwloc_cpuset_last(hwloc_const_cpuset_t set) ;
00172
00177 int hwloc_cpuset_next(hwloc_const_cpuset_t set, unsigned prev_cpu) ;
00178
00185 void hwloc_cpuset_singlify(hwloc_cpuset_t set);
00186
00192 int hwloc_cpuset_compare_first(hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) ;
00193
00199 int hwloc_cpuset_compare(hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) ;
00200
00206 int hwloc_cpuset_weight(hwloc_const_cpuset_t set) ;
00207
00217 #define hwloc_cpuset_foreach_begin(cpu, set) \
00218 do { \
00219 for (cpu = hwloc_cpuset_first(set); \
00220 (unsigned) cpu != (unsigned) -1; \
00221 cpu = hwloc_cpuset_next(set, cpu)) { \
00222
00226 #define hwloc_cpuset_foreach_end() \
00227 } \
00228 } while (0)
00229
00233 #ifdef __cplusplus
00234 }
00235 #endif
00236
00237
00238 #endif