xref: /reactos/sdk/include/asm/genincdata.c (revision 4363e74d)
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