From 0b9049739779f6052eb8069f3dde7c3a7f14a591 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Wed, 28 Mar 2001 01:35:12 +0000 Subject: SMP for 32-bit kernel, support for Sibyte SB1. Patch from Justin with minor changes by me. --- include/asm-mips/system.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'include/asm-mips/system.h') diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index 68117be89..1c1c8c575 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h @@ -115,14 +115,27 @@ do { \ : "$1", "memory"); \ } while(0) -/* - * Non-SMP versions ... - */ -#define sti() __sti() -#define cli() __cli() -#define save_flags(x) __save_flags(x) -#define save_and_cli(x) __save_and_cli(x) -#define restore_flags(x) __restore_flags(x) +#ifdef CONFIG_SMP + +extern void __global_sti(void); +extern void __global_cli(void); +extern unsigned long __global_save_flags(void); +extern void __global_restore_flags(unsigned long); +# define sti() __global_sti() +# define cli() __global_cli() +# define save_flags(x) do { x = __global_save_flags(); } while (0) +# define restore_flags(x) __global_restore_flags(x) +# define save_and_cli(x) do { save_flags(x); cli(); } while(0) + +#else /* Single processor */ + +# define sti() __sti() +# define cli() __cli() +# define save_flags(x) __save_flags(x) +# define save_and_cli(x) __save_and_cli(x) +# define restore_flags(x) __restore_flags(x) + +#endif /* SMP */ /* For spinlocks etc */ #define local_irq_save(x) __save_and_cli(x); -- cgit v1.2.3