1 // copyright (c) 2017-2021 hors<horsicq@gmail.com>
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and associated documentation files (the "Software"), to deal
5 // in the Software without restriction, including without limitation the rights
6 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 // copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 
10 // The above copyright notice and this permission notice shall be included in all
11 // copies or substantial portions of the Software.
12 
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 // SOFTWARE.
20 //
21 #include "ne_defs.h"
22 
23 namespace N_NE_DOS_HEADER
24 {
25 const FW_DEF::HEADER_RECORD records[]=
26 {
27     {e_magic,       "e_magic",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_magic),   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
28     {e_cblp,        "e_cblp",       offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_cblp),    2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
29     {e_cp,          "e_cp",         offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_cp),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
30     {e_crlc,        "e_crlc",       offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_crlc),    2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
31     {e_cparhdr,     "e_cparhdr",    offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_cparhdr), 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
32     {e_minalloc,    "e_minalloc",   offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_minalloc),2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
33     {e_maxalloc,    "e_maxalloc",   offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_maxalloc),2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
34     {e_ss,          "e_ss",         offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_ss),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
35     {e_sp,          "e_sp",         offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_sp),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
36     {e_csum,        "e_csum",       offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_csum),    2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
37     {e_ip,          "e_ip",         offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_ip),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
38     {e_cs,          "e_cs",         offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_cs),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
39     {e_lfarlc,      "e_lfarlc",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_lfarlc),  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
40     {e_ovno,        "e_ovno",       offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_ovno),    2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
41     {e_res_0,       "e_res_0",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res)+0,   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
42     {e_res_1,       "e_res_1",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res)+2,   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
43     {e_res_2,       "e_res_2",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res)+4,   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
44     {e_res_3,       "e_res_3",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res)+6,   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
45     {e_oemid,       "e_oemid",      offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_oemid),   2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
46     {e_oeminfo,     "e_oeminfo",    offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_oeminfo), 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
47     {e_res2_0,      "e_res2_0",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+0,  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
48     {e_res2_1,      "e_res2_1",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+2,  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
49     {e_res2_2,      "e_res2_2",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+4,  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
50     {e_res2_3,      "e_res2_3",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+6,  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
51     {e_res2_4,      "e_res2_4",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+8,  2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
52     {e_res2_5,      "e_res2_5",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+10, 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
53     {e_res2_6,      "e_res2_6",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+12, 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
54     {e_res2_7,      "e_res2_7",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+14, 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
55     {e_res2_8,      "e_res2_8",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+16, 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
56     {e_res2_9,      "e_res2_9",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_res2)+18, 2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
57     {e_lfanew,      "e_lfanew",     offsetof(XMSDOS_DEF::IMAGE_DOS_HEADEREX,e_lfanew),  4,      "LONG",         FW_DEF::VAL_TYPE_OFFSET}
58 };
59 }
60 
61 namespace N_OS2_HEADER
62 {
63 const FW_DEF::HEADER_RECORD records[]=
64 {
65     {ne_magic,              "ne_magic",         offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_magic),           2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
66     {ne_ver,                "ne_ver",           offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_ver),             1,      "CHAR",         FW_DEF::VAL_TYPE_DATA},
67     {ne_rev,                "ne_rev",           offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_rev),             1,      "CHAR",         FW_DEF::VAL_TYPE_DATA},
68     {ne_enttab,             "ne_enttab",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_enttab),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
69     {ne_cbenttab,           "ne_cbenttab",      offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cbenttab),        2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
70     {ne_crc,                "ne_crc",           offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_crc),             4,      "LONG",         FW_DEF::VAL_TYPE_DATA},
71     {ne_flags,              "ne_flags",         offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_flags),           2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
72     {ne_autodata,           "ne_autodata",      offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_autodata),        2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
73     {ne_heap,               "ne_heap",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_heap),            2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
74     {ne_stack,              "ne_stack",         offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_stack),           2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
75     {ne_csip,               "ne_csip",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_csip),            4,      "LONG",         FW_DEF::VAL_TYPE_DATA},
76     {ne_sssp,               "ne_sssp",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_sssp),            4,      "LONG",         FW_DEF::VAL_TYPE_DATA},
77     {ne_cseg,               "ne_cseg",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cseg),            2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
78     {ne_cmod,               "ne_cmod",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cmod),            2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
79     {ne_cbnrestab,          "ne_cbnrestab",     offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cbnrestab),       2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
80     {ne_segtab,             "ne_segtab",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_segtab),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
81     {ne_rsrctab,            "ne_rsrctab",       offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_rsrctab),         2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
82     {ne_restab,             "ne_restab",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_restab),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
83     {ne_modtab,             "ne_modtab",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_modtab),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
84     {ne_imptab,             "ne_imptab",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_imptab),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
85     {ne_nrestab,            "ne_nrestab",       offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_nrestab),         4,      "LONG",         FW_DEF::VAL_TYPE_DATA},
86     {ne_cmovent,            "ne_cmovent",       offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cmovent),         2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
87     {ne_align,              "ne_align",         offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_align),           2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
88     {ne_cres,               "ne_cres",          offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_cres),            2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
89     {ne_exetyp,             "ne_exetyp",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_exetyp),          1,      "BYTE",         FW_DEF::VAL_TYPE_DATA},
90     {ne_flagsothers,        "ne_flagsothers",   offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_flagsothers),     1,      "BYTE",         FW_DEF::VAL_TYPE_DATA},
91     {ne_pretthunks,         "ne_pretthunks",    offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_pretthunks),      2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
92     {ne_psegrefbytes,       "ne_psegrefbytes",  offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_psegrefbytes),    2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
93     {ne_swaparea,           "ne_swaparea",      offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_swaparea),        2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
94     {ne_expver,             "ne_expver",        offsetof(XNE_DEF::IMAGE_OS2_HEADER,ne_expver),          2,      "WORD",         FW_DEF::VAL_TYPE_DATA},
95 };
96 }
97