diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2001-03-28 01:35:12 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2001-03-28 01:35:12 +0000 |
commit | 0b9049739779f6052eb8069f3dde7c3a7f14a591 (patch) | |
tree | 9630c1ea481dd1c429a2692067316237957d6e07 /include/asm-mips/system.h | |
parent | 12e00f34ea0db712ce70bc3eed334c81b3d6a344 (diff) |
SMP for 32-bit kernel, support for Sibyte SB1. Patch from Justin
with minor changes by me.
Diffstat (limited to 'include/asm-mips/system.h')
-rw-r--r-- | include/asm-mips/system.h | 29 |
1 files changed, 21 insertions, 8 deletions
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); |