diff options
-rw-r--r-- | include/asm-mips/dec/prom.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/include/asm-mips/dec/prom.h b/include/asm-mips/dec/prom.h index 59b8ce6e9b36..1384dd0964b9 100644 --- a/include/asm-mips/dec/prom.h +++ b/include/asm-mips/dec/prom.h | |||
@@ -111,19 +111,21 @@ extern int (*__pmax_close)(int); | |||
111 | * On MIPS64 we have to call PROM functions via a helper | 111 | * On MIPS64 we have to call PROM functions via a helper |
112 | * dispatcher to accomodate ABI incompatibilities. | 112 | * dispatcher to accomodate ABI incompatibilities. |
113 | */ | 113 | */ |
114 | #define __DEC_PROM_O32 __attribute__((alias("call_o32"))) | 114 | #define __DEC_PROM_O32(fun, arg) fun arg __asm__(#fun); \ |
115 | 115 | __asm__(#fun " = call_o32") | |
116 | int _rex_bootinit(int (*)(void)) __DEC_PROM_O32; | 116 | |
117 | int _rex_bootread(int (*)(void)) __DEC_PROM_O32; | 117 | int __DEC_PROM_O32(_rex_bootinit, (int (*)(void))); |
118 | int _rex_getbitmap(int (*)(memmap *), memmap *) __DEC_PROM_O32; | 118 | int __DEC_PROM_O32(_rex_bootread, (int (*)(void))); |
119 | unsigned long *_rex_slot_address(unsigned long *(*)(int), int) __DEC_PROM_O32; | 119 | int __DEC_PROM_O32(_rex_getbitmap, (int (*)(memmap *), memmap *)); |
120 | void *_rex_gettcinfo(void *(*)(void)) __DEC_PROM_O32; | 120 | unsigned long *__DEC_PROM_O32(_rex_slot_address, |
121 | int _rex_getsysid(int (*)(void)) __DEC_PROM_O32; | 121 | (unsigned long *(*)(int), int)); |
122 | void _rex_clear_cache(void (*)(void)) __DEC_PROM_O32; | 122 | void *__DEC_PROM_O32(_rex_gettcinfo, (void *(*)(void))); |
123 | 123 | int __DEC_PROM_O32(_rex_getsysid, (int (*)(void))); | |
124 | int _prom_getchar(int (*)(void)) __DEC_PROM_O32; | 124 | void __DEC_PROM_O32(_rex_clear_cache, (void (*)(void))); |
125 | char *_prom_getenv(char *(*)(char *), char *) __DEC_PROM_O32; | 125 | |
126 | int _prom_printf(int (*)(char *, ...), char *, ...) __DEC_PROM_O32; | 126 | int __DEC_PROM_O32(_prom_getchar, (int (*)(void))); |
127 | char *__DEC_PROM_O32(_prom_getenv, (char *(*)(char *), char *)); | ||
128 | int __DEC_PROM_O32(_prom_printf, (int (*)(char *, ...), char *, ...)); | ||
127 | 129 | ||
128 | 130 | ||
129 | #define rex_bootinit() _rex_bootinit(__rex_bootinit) | 131 | #define rex_bootinit() _rex_bootinit(__rex_bootinit) |