Reactos
at master 80 lines 1.9 kB view raw
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 21enum 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 30typedef 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 61ASMGENDATA 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