From 1be65e7b687bac278e6aa1d714ca8180d2dbc995 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 4 Nov 2011 15:55:00 +0100 Subject: [PATCH] Fixes for building in Cygwin. --- src/suricata-common.h | 4 +++- src/threads.h | 5 +++++ src/tm-threads.c | 10 +++++++--- src/util-affinity.c | 6 +++--- src/util-affinity.h | 4 ++-- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/suricata-common.h b/src/suricata-common.h index 0fda536c09..6fc2b619e2 100644 --- a/src/suricata-common.h +++ b/src/suricata-common.h @@ -68,8 +68,10 @@ #ifdef HAVE_SYSLOG_H #include -#elif OS_WIN32 +#else +#ifdef OS_WIN32 #include "win32-syslog.h" +#endif /* OS_WIN32 */ #endif /* HAVE_SYSLOG_H */ #ifdef OS_WIN32 diff --git a/src/threads.h b/src/threads.h index 568777d185..1ce2aad743 100644 --- a/src/threads.h +++ b/src/threads.h @@ -109,6 +109,11 @@ enum { u_long tid = (u_long)tpid; \ tid; \ }) +#elif __CYGWIN__ +#define SCGetThreadIdLong(...) ({ \ + u_long tid = (u_long)GetCurrentThreadId(); \ + tid; \ +}) #elif OS_WIN32 #define SCGetThreadIdLong(...) ({ \ u_long tid = (u_long)GetCurrentThreadId(); \ diff --git a/src/tm-threads.c b/src/tm-threads.c index f577c1a068..f825457a7d 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -878,9 +878,9 @@ TmSlot *TmSlotGetSlotForTM(int tm_id) return NULL; } -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ static int SetCPUAffinitySet(cpu_set_t *cs) { -#if defined OS_FREEBSD +#if defined OS_FREEBSD int r = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, SCGetThreadIdLong(), sizeof(cpu_set_t),cs); #elif OS_DARWIN @@ -911,6 +911,7 @@ static int SetCPUAffinitySet(cpu_set_t *cs) { */ static int SetCPUAffinity(uint16_t cpuid) { +#ifndef __CYGWIN__ #if !defined __OpenBSD__ int cpu = (int)cpuid; #endif @@ -940,6 +941,7 @@ static int SetCPUAffinity(uint16_t cpuid) #elif !defined __OpenBSD__ return SetCPUAffinitySet(&cs); #endif /* OS_WIN32 */ +#endif } @@ -964,6 +966,7 @@ TmEcode TmThreadSetThreadPriority(ThreadVars *tv, int prio) void TmThreadSetPrio(ThreadVars *tv) { SCEnter(); +#ifndef __CYGWIN__ #ifdef OS_WIN32 if (0 == SetThreadPriority(GetCurrentThread(), tv->thread_priority)) { SCLogError(SC_ERR_THREAD_NICE_PRIO, "Error setting priority for " @@ -982,6 +985,7 @@ void TmThreadSetPrio(ThreadVars *tv) tv->thread_priority, tv->name); } #endif /* OS_WIN32 */ +#endif SCReturn; } @@ -1044,7 +1048,7 @@ TmEcode TmThreadSetupOptions(ThreadVars *tv) SetCPUAffinity(tv->cpu_affinity); } -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ if (tv->thread_setup_flags & THREAD_SET_PRIORITY) TmThreadSetPrio(tv); if (tv->thread_setup_flags & THREAD_SET_AFFTYPE) { diff --git a/src/util-affinity.c b/src/util-affinity.c index 5a102e30f8..6b15c91a6d 100644 --- a/src/util-affinity.c +++ b/src/util-affinity.c @@ -97,7 +97,7 @@ ThreadsAffinityType * GetAffinityTypeFromName(const char *name) { return NULL; } -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ static void AffinitySetupInit() { int i, j; @@ -187,7 +187,7 @@ static void build_cpuset(char *name, ConfNode *node, cpu_set_t *cpu) void AffinitySetupLoadFromConfig() { -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ ConfNode *root = ConfGetNode("threading.cpu_affinity"); ConfNode *affinity; @@ -293,7 +293,7 @@ int AffinityGetNextCPU(ThreadsAffinityType *taf) { int ncpu = 0; -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ int iter = 0; SCMutexLock(&taf->taf_mutex); ncpu = taf->lcpu; diff --git a/src/util-affinity.h b/src/util-affinity.h index d03252b651..d46194d1fd 100644 --- a/src/util-affinity.h +++ b/src/util-affinity.h @@ -66,13 +66,13 @@ enum { typedef struct ThreadsAffinityType_ { char *name; -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ cpu_set_t cpu_set; #endif uint8_t mode_flag; int prio; int nb_threads; -#if !defined OS_WIN32 && !defined __OpenBSD__ +#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ cpu_set_t lowprio_cpu; cpu_set_t medprio_cpu; cpu_set_t hiprio_cpu;