diff options
Diffstat (limited to 'arch/um/include/choose-mode.h')
-rw-r--r-- | arch/um/include/choose-mode.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/um/include/choose-mode.h b/arch/um/include/choose-mode.h new file mode 100644 index 000000000000..8e6b62f5e9ac --- /dev/null +++ b/arch/um/include/choose-mode.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __CHOOSE_MODE_H__ | ||
7 | #define __CHOOSE_MODE_H__ | ||
8 | |||
9 | #include "uml-config.h" | ||
10 | |||
11 | #if defined(UML_CONFIG_MODE_TT) && defined(UML_CONFIG_MODE_SKAS) | ||
12 | #define CHOOSE_MODE(tt, skas) (mode_tt ? (tt) : (skas)) | ||
13 | |||
14 | #elif defined(UML_CONFIG_MODE_SKAS) | ||
15 | #define CHOOSE_MODE(tt, skas) (skas) | ||
16 | |||
17 | #elif defined(UML_CONFIG_MODE_TT) | ||
18 | #define CHOOSE_MODE(tt, skas) (tt) | ||
19 | #endif | ||
20 | |||
21 | #define CHOOSE_MODE_PROC(tt, skas, args...) \ | ||
22 | CHOOSE_MODE(tt(args), skas(args)) | ||
23 | |||
24 | extern int mode_tt; | ||
25 | static inline void *__choose_mode(void *tt, void *skas) { | ||
26 | return mode_tt ? tt : skas; | ||
27 | } | ||
28 | |||
29 | #define __CHOOSE_MODE(tt, skas) (*( (typeof(tt) *) __choose_mode(&(tt), &(skas)))) | ||
30 | |||
31 | #endif | ||
32 | |||
33 | /* | ||
34 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
35 | * Emacs will notice this stuff at the end of the file and automatically | ||
36 | * adjust the settings for this buffer only. This must remain at the end | ||
37 | * of the file. | ||
38 | * --------------------------------------------------------------------------- | ||
39 | * Local variables: | ||
40 | * c-file-style: "linux" | ||
41 | * End: | ||
42 | */ | ||