For SMTE formats for other versions of OS/2 see:
Pointers
_DosMosMteSwappable locates the SMTE in OS2KRNL associated with DOSCALLS.DLL.
┌───────────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name │Offset│Length│Type│Description │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_mpages │+0 │4 │D │Module # pages │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_startobj │+4 │4 │D │Object # for instruction pointer │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_eip │+8 │4 │D │Extended instruction pointer │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_stackobj │+c │4 │D │Object # for stack pointer │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_esp │+10 │4 │D │Extended stack pointer │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_pageshift │+14 │4 │D │ │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_fixupsize │+18 │4 │D │Fixup section size │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_objtab │+1c │4 │D │Object table offset │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_objcnt │+20 │4 │D │Number of objects in module │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_objmap │+24 │4 │D │Object page map offset │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_itermap │+28 │4 │D │Object iterated data map offset │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_rsrctab │+2c │4 │D │Offset of Resource Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_rsrccnt │+30 │4 │D │Number of resource entries │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_restab │+34 │4 │D │Offset of resident name table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_enttab │+38 │4 │D │Offset of Entry Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_fpagetab │+3c │4 │D │Offset of Fixup Page Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_frectab │+40 │4 │D │Offset of Fixup Record Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_impmod │+44 │4 │D │Offset of Import Module Name Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_impproc │+48 │4 │D │Offset of Imp Procedure Name Tab │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_datapage │+4c │4 │D │Offset of Enumerated Data Pages │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_nrestab │+50 │4 │D │Offset of Non-resident Names Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_cbnrestab │+54 │4 │D │Size of Non-resident Name Table │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_autods │+58 │4 │D │Object # for automatic data object │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_debuginfo │+5c │4 │D │Offset of the debugging info │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_debuglen │+60 │4 │D │The len of the debug info in bytes │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_heapsize │+64 │4 │D │use for converted 16-bit modules │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_path │+68 │4 │D │full pathname │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_semcount │+6c │2 │W │Count of threads waiting on MTE │ │ │ │ │ │semaphore. 0 => semaphore is free │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_semowner │+6e │2 │W │Slot number of the owner of MTE semahore│ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_pfilecache│+70 │4 │D │Pointer to file cache for │ │ │ │ │ │Dos32CacheModule │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_stacksize │+74 │4 │D │Thread 1 Stack size from the exe header │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_alignshift│+78 │2 │W │use for converted 16-bit modules │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_NEexpver │+7a │2 │W │expver from NE header │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_pathlen │+7c │2 │W │length of full pathname │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_NEexetype │+7e │2 │W │exetype from NE header │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_csegpack │+80 │2 │W │count of segs to pack │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_major_os │+82 │1 │B │major os version to lie about │ ├───────────────┼──────┼──────┼────┼────────────────────────────────────────┤ │smte_minor_os │+83 │1 │B │minor os version to lie about │ └───────────────┴──────┴──────┴────┴────────────────────────────────────────┘