1 #undef __MSVCRT__ 2 #include <psdk/ntverp.h> 3 4 /* DDK/IFS/NDK Headers */ 5 #define _NTSYSTEM_ 6 #include <excpt.h> 7 #include <setjmp.h> 8 #include <ntdef.h> 9 #include <ntifs.h> 10 #include <arc/arc.h> 11 #include <ntndk.h> 12 #include <bugcodes.h> 13 14 /* KD Support */ 15 #define NOEXTAPI 16 #include <windbgkd.h> 17 #include <wdbgexts.h> 18 #include <kddll.h> 19 20 #ifdef _M_AMD64 21 enum 22 { 23 P1Home = 1 * sizeof(PVOID), 24 P2Home = 2 * sizeof(PVOID), 25 P3Home = 3 * sizeof(PVOID), 26 P4Home = 4 * sizeof(PVOID), 27 }; 28 #endif 29 30 typedef struct 31 { 32 char Type; 33 char Name[55]; 34 ULONGLONG Value; 35 } ASMGENDATA; 36 37 #define TYPE_END 0 38 #define TYPE_RAW 1 39 #define TYPE_CONSTANT 2 40 #define TYPE_HEADER 3 41 42 #define RAW(x) {TYPE_RAW, x, 0} 43 #define CONSTANT(name) {TYPE_CONSTANT, #name, (ULONG)name} 44 #define CONSTANT64(name) {TYPE_CONSTANT, #name, (ULONGLONG)name} 45 #define CONSTANTPTR(name) {TYPE_CONSTANT, #name, (ULONG_PTR)name} 46 #define CONSTANTX(name, value) {TYPE_CONSTANT, #name, value} 47 #define OFFSET(name, struct, member) {TYPE_CONSTANT, #name, FIELD_OFFSET(struct, member)} 48 #define RELOFFSET(name, struct, member, to) {TYPE_CONSTANT, #name, FIELD_OFFSET(struct, member) - FIELD_OFFSET(struct, to)} 49 #define SIZE(name, struct) {TYPE_CONSTANT, #name, sizeof(struct)} 50 #define HEADER(x) {TYPE_HEADER, x, 0} 51 52 #if defined(_MSC_VER) 53 #pragma section(".asmdef") 54 __declspec(allocate(".asmdef")) 55 #elif defined(__GNUC__) 56 __attribute__ ((section(".asmdef"))) 57 #else 58 #error Your compiler is not supported. 59 #endif 60 61 ASMGENDATA Table[] = 62 { 63 /* ARCHITECTURE SPECIFIC CONTSTANTS ******************************************/ 64 #ifdef _M_IX86 65 #include "ks386.template.h" 66 #elif defined(_M_AMD64) 67 #include "ksamd64.template.h" 68 #elif defined(_M_ARM) 69 #include "ksarm.template.h" 70 #elif defined(_M_ARM64) 71 #include "ksarm64.template.h" 72 #endif 73 74 /* PORTABLE CONSTANTS ********************************************************/ 75 #include "ksx.template.h" 76 77 /* End of list */ 78 {TYPE_END, "", 0} 79 }; 80 81