diff options
Diffstat (limited to 'Affinity.c')
-rw-r--r-- | Affinity.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Affinity.c b/Affinity.c new file mode 100644 index 0000000..3b1e311 --- /dev/null +++ b/Affinity.c @@ -0,0 +1,42 @@ +/* +htop - Affinity.c +(C) 2004-2011 Hisham H. Muhammad +Released under the GNU GPL, see the COPYING file +in the source distribution for its full text. +*/ + +#include "Affinity.h" + +#include <stdlib.h> + +/*{ + +typedef struct Affinity_ { + int size; + int used; + int* cpus; +} Affinity; + +}*/ + +Affinity* Affinity_new() { + Affinity* this = calloc(1, sizeof(Affinity)); + this->size = 8; + this->cpus = calloc(this->size, sizeof(int)); + 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++; +} + |