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