Rearrange #ifdefs a bit, so SIGALTSTACK overrides CPU-specific threading.

Change-Id: Ie3661f53bd7576d965fcc52facb532199b87c017
This commit is contained in:
Frank Gevaerts 2012-06-11 21:40:05 +02:00
parent cbd44f4bc4
commit 268b725c40
2 changed files with 26 additions and 29 deletions

View file

@ -1,4 +1,11 @@
#if defined(CPU_ARM)
/* First some generic implementations */
#if defined(HAVE_WIN32_FIBER_THREADS)
#include "thread-win32.c"
#elif defined(HAVE_SIGALTSTACK_THREADS)
#include "thread-unix.c"
/* Now the CPU-specific implementations */
#elif defined(CPU_ARM)
#include "arm/thread.c"
#elif defined(CPU_COLDFIRE)
#include "m68k/thread.c"
@ -7,15 +14,6 @@
#elif defined(CPU_MIPS)
#include "mips/thread.c"
#else
/* generic thread.c */
#if defined(HAVE_WIN32_FIBER_THREADS)
#include "thread-win32.c"
#elif defined(HAVE_SIGALTSTACK_THREADS)
#include "thread-unix.c"
#else
/* Nothing? OK, give up */
#error Missing thread impl
#endif
#endif

View file

@ -23,18 +23,10 @@
#define __ASM_THREAD_H__
#include "config.h"
#if defined(CPU_ARM)
#include "arm/thread.h"
#elif defined(CPU_COLDFIRE)
#include "m68k/thread.h"
#elif CONFIG_CPU == SH7034
#include "sh/thread.h"
#elif defined(CPU_MIPS)
#include "mips/thread.h"
#else
/* generic thread.h */
#if defined(HAVE_WIN32_FIBER_THREADS) || defined(HAVE_SIGALTSTACK_THREADS)
struct regs
{
void (*start)(void); /* thread's entry point, or NULL when started */
@ -44,14 +36,21 @@ struct regs
uintptr_t stack; /* pointer to start of the stack buffer */
};
#ifdef HAVE_SIGALTSTACK_THREADS
#ifdef HAVE_SIGALTSTACK_THREADS
#include <signal.h>
/* MINSIGSTKSZ for the OS to deliver the signal + 0x3000 for us */
#define DEFAULT_STACK_SIZE (MINSIGSTKSZ+0x3000) /* Bytes */
#elif defined(HAVE_WIN32_FIBER_THREADS)
#elif defined(HAVE_WIN32_FIBER_THREADS)
#define DEFAULT_STACK_SIZE 0x1000 /* Bytes */
#endif
#elif defined(CPU_ARM)
#include "arm/thread.h"
#elif defined(CPU_COLDFIRE)
#include "m68k/thread.h"
#elif CONFIG_CPU == SH7034
#include "sh/thread.h"
#elif defined(CPU_MIPS)
#include "mips/thread.h"
#endif
#endif /* __ASM_THREAD_H__ */
#endif