diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2011-09-24 00:30:47 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2011-09-24 00:30:47 +0000 |
commit | ec17b7029a5f5f2e42d66380762ab24fa5174fc4 (patch) | |
tree | 39de052be8fcdbb1a58150eedde74bfbc0d5b92c /Affinity.c | |
parent | d07b043ee07caa5da9e93a5a2ca9165ff98f85d7 (diff) |
Convert affinity control from the deprecated PLPA to HWLOC
Diffstat (limited to 'Affinity.c')
-rw-r--r-- | Affinity.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Affinity.c b/Affinity.c new file mode 100644 index 00000000..0b2bd465 --- /dev/null +++ b/Affinity.c @@ -0,0 +1,36 @@ + +#include "config.h" +#include "Affinity.h" +#include <stdlib.h> + +/*{ + +typedef struct Affinity_ { + int size; + int used; + int* cpus; +} Affinity; + +}*/ + +Affinity* Affinity_new() { + Affinity* this = calloc(sizeof(Affinity), 1); + this->size = 8; + this->cpus = calloc(sizeof(int), this->size); + return this; +} + +void Affinity_delete(Affinity* this) { + free(this->cpus); + free(this); +} + +void Affinity_add(Affinity* this, int id) { + if (this->used == this->size) { + this->size *= 2; + this->cpus = realloc(this->cpus, sizeof(int) * this->size); + } + this->cpus[this->used] = id; + this->used++; +} + |