Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenke_i.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: BSD - See COPYING.ARM in the top level directory 00004 * FILE: ntoskrnl/ke/arm/ke_i.h 00005 * PURPOSE: Implements macro-generated system call portable wrappers 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 00009 // 00010 // First, cleanup after any previous invocation 00011 // 00012 #undef _1 00013 #undef _2 00014 #undef _3 00015 #undef _4 00016 #undef _5 00017 #undef _6 00018 #undef _7 00019 #undef _8 00020 #undef _9 00021 #undef a 00022 #undef b 00023 #undef c 00024 #undef d 00025 #undef e 00026 #undef f 00027 #undef _10 00028 #undef _11 00029 #undef SYSCALL 00030 00031 // 00032 // Are we building the typedef prototypes? 00033 // 00034 #ifdef PROTO 00035 // 00036 // Then, each parameter is actually a prototype argument 00037 // 00038 #define _1 PVOID 00039 #define _2 PVOID 00040 #define _3 PVOID 00041 #define _4 PVOID 00042 #define _5 PVOID 00043 #define _6 PVOID 00044 #define _7 PVOID 00045 #define _8 PVOID 00046 #define _9 PVOID 00047 #define a PVOID 00048 #define b PVOID 00049 #define c PVOID 00050 #define d PVOID 00051 #define e PVOID 00052 #define f PVOID 00053 #define _10 PVOID 00054 #define _11 PVOID 00055 00056 // 00057 // And we generate the typedef 00058 // 00059 #define SYSCALL(x, y) typedef NTSTATUS (*PKI_SYSCALL_##x##PARAM)y; 00060 00061 // 00062 // Cleanup for next run 00063 // 00064 #undef PROTO 00065 #else 00066 // 00067 // Each parameter is actually an argument for the system call 00068 // 00069 #define _1 g[0x00] 00070 #define _2 g[0x01] 00071 #define _3 g[0x02] 00072 #define _4 g[0x03] 00073 #define _5 g[0x04] 00074 #define _6 g[0x05] 00075 #define _7 g[0x06] 00076 #define _8 g[0x07] 00077 #define _9 g[0x08] 00078 #define a g[0x09] 00079 #define b g[0x0A] 00080 #define c g[0x0B] 00081 #define d g[0x0C] 00082 #define e g[0x0D] 00083 #define f g[0x0E] 00084 #define _10 g[0x0F] 00085 #define _11 g[0x10] 00086 00087 // 00088 // And we generate the actual system call 00089 // 00090 #define SYSCALL(x, y) \ 00091 NTSTATUS \ 00092 KiSyscall##x##Param( \ 00093 IN PVOID p, \ 00094 IN PVOID *g \ 00095 ) \ 00096 { \ 00097 return ((PKI_SYSCALL_##x##PARAM)p)y; \ 00098 } 00099 00100 // 00101 // Cleanup for next run 00102 // 00103 #undef FUNC 00104 #endif Generated on Sun May 27 2012 04:37:31 for ReactOS by
1.7.6.1
|