0fa84e1ed462ddf54c360901ddcb45c0e542ddad
[muen/linux.git] / arch / powerpc / kernel / systbl.S
1 /*
2  * This file contains the table of syscall-handling functions.
3  *    Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
4  *
5  * Largely rewritten by Cort Dougan (cort@cs.nmt.edu)
6  * and Paul Mackerras.
7  *
8  * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com)
9  * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) 
10  * 
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version
14  * 2 of the License, or (at your option) any later version.
15  */
16
17 #include <asm/ppc_asm.h>
18
19 #ifdef CONFIG_PPC64
20 #define SYSCALL(func)           .8byte  DOTSYM(sys_##func)
21 #define COMPAT_SYS(func)        .8byte  DOTSYM(sys_##func)
22 #define PPC_SYS(func)           .8byte  DOTSYM(ppc_##func)
23 #define OLDSYS(func)            .8byte  DOTSYM(sys_ni_syscall)
24 #define SYS32ONLY(func)         .8byte  DOTSYM(sys_ni_syscall)
25 #define PPC64ONLY(func)         .8byte  DOTSYM(ppc_##func)
26 #define SYSX(f, f3264, f32)     .8byte  DOTSYM(f)
27 #else
28 #define SYSCALL(func)           .long   sys_##func
29 #define COMPAT_SYS(func)        .long   sys_##func
30 #define PPC_SYS(func)           .long   ppc_##func
31 #define OLDSYS(func)            .long   sys_##func
32 #define SYS32ONLY(func)         .long   sys_##func
33 #define PPC64ONLY(func)         .long   sys_ni_syscall
34 #define SYSX(f, f3264, f32)     .long   f32
35 #endif
36 #define SYSCALL_SPU(func)       SYSCALL(func)
37 #define COMPAT_SYS_SPU(func)    COMPAT_SYS(func)
38 #define COMPAT_SPU_NEW(func)    COMPAT_SYS(func)
39 #define SYSX_SPU(f, f3264, f32) SYSX(f, f3264, f32)
40
41 .section .rodata,"a"
42
43 #ifdef CONFIG_PPC64
44         .p2align        3
45 #endif
46
47 .globl sys_call_table
48 sys_call_table:
49 #include <asm/systbl.h>
50
51 #undef SYSCALL
52 #undef COMPAT_SYS
53 #undef PPC_SYS
54 #undef OLDSYS
55 #undef SYS32ONLY
56 #undef PPC64ONLY
57 #undef SYSX
58
59 #ifdef CONFIG_COMPAT
60 #define SYSCALL(func)           .8byte  DOTSYM(sys_##func)
61 #define COMPAT_SYS(func)        .8byte  DOTSYM(compat_sys_##func)
62 #define PPC_SYS(func)           .8byte  DOTSYM(ppc_##func)
63 #define OLDSYS(func)            .8byte  DOTSYM(sys_ni_syscall)
64 #define SYS32ONLY(func)         .8byte  DOTSYM(compat_sys_##func)
65 #define PPC64ONLY(func)         .8byte  DOTSYM(sys_ni_syscall)
66 #define SYSX(f, f3264, f32)     .8byte  DOTSYM(f3264)
67
68 .globl compat_sys_call_table
69 compat_sys_call_table:
70 #define compat_sys_sigsuspend   sys_sigsuspend
71 #include <asm/systbl.h>
72 #endif