diff options
Diffstat (limited to 'arch/ia64/kernel/paravirt.c')
-rw-r--r-- | arch/ia64/kernel/paravirt.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/arch/ia64/kernel/paravirt.c b/arch/ia64/kernel/paravirt.c index 158d52414e96..a21d7bb9c69c 100644 --- a/arch/ia64/kernel/paravirt.c +++ b/arch/ia64/kernel/paravirt.c | |||
@@ -70,7 +70,14 @@ struct pv_init_ops pv_init_ops = | |||
70 | ia64_native_ ## name ## _func(unsigned long arg) \ | 70 | ia64_native_ ## name ## _func(unsigned long arg) \ |
71 | { \ | 71 | { \ |
72 | ia64_native_ ## name(arg); \ | 72 | ia64_native_ ## name(arg); \ |
73 | } \ | 73 | } |
74 | |||
75 | #define DEFINE_VOID_FUNC1_VOID(name) \ | ||
76 | static void \ | ||
77 | ia64_native_ ## name ## _func(void *arg) \ | ||
78 | { \ | ||
79 | ia64_native_ ## name(arg); \ | ||
80 | } | ||
74 | 81 | ||
75 | #define DEFINE_VOID_FUNC2(name) \ | 82 | #define DEFINE_VOID_FUNC2(name) \ |
76 | static void \ | 83 | static void \ |
@@ -78,7 +85,7 @@ struct pv_init_ops pv_init_ops = | |||
78 | unsigned long arg1) \ | 85 | unsigned long arg1) \ |
79 | { \ | 86 | { \ |
80 | ia64_native_ ## name(arg0, arg1); \ | 87 | ia64_native_ ## name(arg0, arg1); \ |
81 | } \ | 88 | } |
82 | 89 | ||
83 | #define DEFINE_FUNC0(name) \ | 90 | #define DEFINE_FUNC0(name) \ |
84 | static unsigned long \ | 91 | static unsigned long \ |
@@ -94,7 +101,7 @@ struct pv_init_ops pv_init_ops = | |||
94 | return ia64_native_ ## name(arg); \ | 101 | return ia64_native_ ## name(arg); \ |
95 | } \ | 102 | } \ |
96 | 103 | ||
97 | DEFINE_VOID_FUNC1(fc); | 104 | DEFINE_VOID_FUNC1_VOID(fc); |
98 | DEFINE_VOID_FUNC1(intrin_local_irq_restore); | 105 | DEFINE_VOID_FUNC1(intrin_local_irq_restore); |
99 | 106 | ||
100 | DEFINE_VOID_FUNC2(ptcga); | 107 | DEFINE_VOID_FUNC2(ptcga); |
@@ -308,6 +315,11 @@ ia64_native_setreg_func(int regnum, unsigned long val) | |||
308 | ia64_native_ ## name ## _func(unsigned long arg); \ | 315 | ia64_native_ ## name ## _func(unsigned long arg); \ |
309 | __DEFINE_FUNC(name, code) | 316 | __DEFINE_FUNC(name, code) |
310 | 317 | ||
318 | #define DEFINE_VOID_FUNC1_VOID(name, code) \ | ||
319 | extern void \ | ||
320 | ia64_native_ ## name ## _func(void *arg); \ | ||
321 | __DEFINE_FUNC(name, code) | ||
322 | |||
311 | #define DEFINE_VOID_FUNC2(name, code) \ | 323 | #define DEFINE_VOID_FUNC2(name, code) \ |
312 | extern void \ | 324 | extern void \ |
313 | ia64_native_ ## name ## _func(unsigned long arg0, \ | 325 | ia64_native_ ## name ## _func(unsigned long arg0, \ |
@@ -324,8 +336,8 @@ ia64_native_setreg_func(int regnum, unsigned long val) | |||
324 | ia64_native_ ## name ## _func(type arg); \ | 336 | ia64_native_ ## name ## _func(type arg); \ |
325 | __DEFINE_FUNC(name, code) | 337 | __DEFINE_FUNC(name, code) |
326 | 338 | ||
327 | DEFINE_VOID_FUNC1(fc, | 339 | DEFINE_VOID_FUNC1_VOID(fc, |
328 | "fc r8\n"); | 340 | "fc r8\n"); |
329 | DEFINE_VOID_FUNC1(intrin_local_irq_restore, | 341 | DEFINE_VOID_FUNC1(intrin_local_irq_restore, |
330 | ";;\n" | 342 | ";;\n" |
331 | " cmp.ne p6, p7 = r8, r0\n" | 343 | " cmp.ne p6, p7 = r8, r0\n" |