[ASM] Fixed ".double" macro in asm.inc.
[reactos.git] / sdk / include / asm / genincdata.c
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 #endif
71
72 /* PORTABLE CONSTANTS ********************************************************/
73 #include "ksx.template.h"
74
75 /* End of list */
76 {TYPE_END, "", 0}
77 };
78