aboutsummaryrefslogtreecommitdiffstats
path: root/Affinity.c
diff options
context:
space:
mode:
Diffstat (limited to 'Affinity.c')
-rw-r--r--Affinity.c42
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++;
+}
+