return;
}
-static void BuildCpuset(const char *name, ConfNode *node, cpu_set_t *cpu)
+void BuildCpusetWithCallback(const char *name, ConfNode *node,
+ void (*Callback)(int i, void * data),
+ void *data)
{
ConfNode *lnode;
TAILQ_FOREACH(lnode, &node->head, next) {
b = a;
}
for (i = a; i<= b; i++) {
- CPU_SET(i, cpu);
+ Callback(i, data);
}
if (stop)
break;
}
}
+
+static void AffinityCallback(int i, void *data)
+{
+ CPU_SET(i, (cpu_set_t *)data);
+}
+
+static void BuildCpuset(const char *name, ConfNode *node, cpu_set_t *cpu)
+{
+ BuildCpusetWithCallback(name, node, AffinityCallback, (void *) cpu);
+}
#endif /* OS_WIN32 and __OpenBSD__ */
/**
#ifndef __UTIL_AFFINITY_H__
#define __UTIL_AFFINITY_H__
#include "suricata-common.h"
+#include "conf.h"
#if defined OS_FREEBSD
#include <sched.h>
int AffinityGetNextCPU(ThreadsAffinityType *taf);
+void BuildCpusetWithCallback(const char *name, ConfNode *node,
+ void (*Callback)(int i, void * data),
+ void *data);
+
#endif /* __UTIL_AFFINITY_H__ */