MODFUNC.DEF
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:14k
源码类别:

操作系统开发

开发平台:

Asm

  1. ;    File              : $Workfile: MODFUNC.DEF$
  2. ;
  3. ;    Description       : Standard VLADIVAR include file
  4. ;
  5. ;    Original Author   : DIGITAL RESEARCH
  6. ;
  7. ;    Last Edited By    : $CALDERA$
  8. ;
  9. ;-----------------------------------------------------------------------;
  10. ;    Copyright Work of Caldera, Inc. All Rights Reserved.
  11. ;      
  12. ;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
  13. ;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
  14. ;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
  15. ;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
  16. ;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
  17. ;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
  18. ;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
  19. ;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
  20. ;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
  21. ;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
  22. ;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
  23. ;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
  24. ;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
  25. ;    CIVIL LIABILITY.
  26. ;-----------------------------------------------------------------------;
  27. ;
  28. ;    *** Current Edit History ***
  29. ;    *** End of Current Edit History ***
  30. ;
  31. ;    $Log$
  32. ;
  33. ;    ENDLOG
  34. ;****************************************************************;
  35. ;* *;
  36. ;* OS386 Inter-Module Function Definitions *;
  37. ;* *;
  38. ;****************************************************************;
  39. OS386_FUNC equ 2780h ; AX value
  40. OS386_INT equ 02Fh ; interrupt number
  41. ; Module definitions
  42. USER equ 0
  43. SUP equ 1
  44. RTM equ 2
  45. MEM equ 3
  46. DOM equ 4
  47. VM equ 5
  48. DPMI equ 6
  49. DPMS equ 7
  50. MIN_MODULE equ 5
  51. MAX_MODULE equ 15
  52. ; Internal SUP functions
  53. F_NotImp equ SUP + 0100h * 00 ; Function Not Implemented
  54. F_Illegal equ SUP + 0100h * 01 ; Illegal Function
  55. F_ModuleReg equ SUP + 0100h * 02 ; Register Module
  56. F_SysDatAlloc equ SUP + 0100h * 03 ; allocate SYSDAT memory
  57. F_SysDat equ SUP + 0100h * 04 ; return SYSDAT selector
  58. F_MoveReal equ SUP + 0100h * 05 ; move real mode memory to protected mode
  59. F_Reboot equ SUP + 0100h * 06
  60. F_Debug equ SUP + 0100h * 07
  61. F_ForeCheck equ SUP + 0100h * 08 ; Check for foreground
  62. F_RegisterVxD equ SUP + 0100h * 09 ; Register VxD with system
  63. F_UnloadVxD equ SUP + 0100h * 10 ; Unload VxD hook
  64. F_PostInit equ SUP + 0100h * 11 ; end of initialisation phase
  65. F_AllocWindow equ SUP + 0100h * 12 ; allocate a 4K mapping window
  66. F_RegisterBoot equ SUP + 0100h * 13 ; register reboot addresses
  67. F_EnquireBoot equ SUP + 0100h * 14 ; enquire if reboot active
  68. F_GetDebugLevel equ SUP + 0100h * 15 ; get debug level
  69. F_SetDebugLevel equ SUP + 0100h * 16 ; set debug level
  70. F_Version equ SUP + 0100h * 17 ; version check
  71. F_V86BPInstall equ SUP + 0100h * 18 ; install v86 break point
  72. F_V86BPRemove equ SUP + 0100h * 19 ; remove v86 break point
  73. F_V86BPOffer equ SUP + 0100h * 20 ; offer int 3 as v86 break point
  74. F_LoaderCleanup equ SUP + 0100h * 21 ; offer the chance to cleanup
  75. F_RegisterVxDWindow equ SUP + 0100h * 22 ; Register VxD mapping window
  76. F_RegisterPNW equ SUP + 0100h * 23 ; Register PNW info
  77. ; Internal RTM functions
  78. F_PDCount equ RTM + 0100h * 01
  79. F_FlgWait equ RTM + 0100h * 02
  80. F_FlgSet equ RTM + 0100h * 03
  81. F_QMake equ RTM + 0100h * 04
  82. F_QOpen equ RTM + 0100h * 05
  83. F_QDelete equ RTM + 0100h * 06
  84. F_QRead equ RTM + 0100h * 07
  85. F_CQread equ RTM + 0100h * 08
  86. F_QWrite equ RTM + 0100h * 09
  87. F_CQWrite equ RTM + 0100h * 10
  88. F_Delay equ RTM + 0100h * 11
  89. F_Dispatch equ RTM + 0100h * 12
  90. F_PTerm equ RTM + 0100h * 13
  91. F_PCreat equ RTM + 0100h * 14
  92. F_SetPrior equ RTM + 0100h * 15
  93. F_PDAddr equ RTM + 0100h * 16
  94. F_PAbort equ RTM + 0100h * 17
  95. F_Sleep equ RTM + 0100h * 18
  96. F_Wakeup equ RTM + 0100h * 19
  97. F_FindPDName equ RTM + 0100h * 20
  98. F_SetFlags equ RTM + 0100h * 21
  99. F_EndOfInterrupt equ RTM + 0100h * 22 ; Register PIC end of interrupt
  100. F_NoAbort equ RTM + 0100h * 23
  101. F_OkAbort equ RTM + 0100h * 24
  102. F_FlagStatus equ RTM + 0100h * 25
  103. F_QRdMX equ RTM + 0100h * 26
  104. F_QWrMX equ RTM + 0100h * 27
  105. F_FlgAlloc equ RTM + 0100h * 28
  106. F_FlgFree equ RTM + 0100h * 29
  107. F_NumFlags equ RTM + 0100h * 30
  108. F_NDQRead equ RTM + 0100h * 31
  109. F_FlgWWTO equ RTM + 0100h * 32
  110. F_UdaAlloc equ RTM + 0100h * 33
  111. F_UdaFree equ RTM + 0100h * 34
  112. F_PFreeze equ RTM + 0100h * 35
  113. F_PThaw equ RTM + 0100h * 36
  114. F_CritEnter equ RTM + 0100h * 37
  115. F_CritExit equ RTM + 0100h * 38
  116. F_PCreate equ RTM + 0100h * 39
  117. F_PDList equ RTM + 0100h * 40
  118. F_PDToName equ RTM + 0100h * 41
  119. F_PDToStatus equ RTM + 0100h * 42
  120. F_PDToDomain equ RTM + 0100h * 43
  121. F_GetPrior equ RTM + 0100h * 44
  122. F_QDList equ RTM + 0100h * 45
  123. F_QDToName equ RTM + 0100h * 46
  124. F_QDToMsgLen equ RTM + 0100h * 47
  125. F_QDToMaxMsgs equ RTM + 0100h * 48
  126. F_QDToNqPD equ RTM + 0100h * 49
  127. F_QDToDqPD equ RTM + 0100h * 50
  128. F_QDToNumMsgs equ RTM + 0100h * 51
  129. F_QDToFlags equ RTM + 0100h * 52
  130. F_NameToQD equ RTM + 0100h * 53
  131. F_NameToPD equ RTM + 0100h * 54
  132. F_MutexAlloc equ RTM + 0100h * 55
  133. F_MutexFree equ RTM + 0100h * 56
  134. F_MutexEnter equ RTM + 0100h * 57
  135. F_MutexCEnter equ RTM + 0100h * 58
  136. F_MutexExit equ RTM + 0100h * 59
  137. F_Slice equ RTM + 0100h * 60
  138. F_TickLength equ RTM + 0100h * 61
  139. F_ProcessID equ RTM + 0100h * 62
  140. F_QClose equ RTM + 0100h * 63
  141. F_QDispose equ RTM + 0100h * 64
  142. F_PDToFlags equ RTM + 0100h * 65
  143. F_PDToDParam equ RTM + 0100h * 66
  144. F_ReleaseMX equ RTM + 0100h * 67
  145. F_SimulateInt equ RTM + 0100h * 68
  146. F_SetQFlags equ RTM + 0100h * 69
  147. F_TickRate equ RTM + 0100h * 70
  148. ; Internal MEMORY functions
  149. F_PdirGet equ MEM + 0100h * 01
  150. F_PdirSet equ MEM + 0100h * 02
  151. F_PageAlloc equ MEM + 0100h * 03
  152. F_RealAllocG equ MEM + 0100h * 04
  153. F_RealAllocI equ MEM + 0100h * 05
  154. F_PtblRead equ MEM + 0100h * 06
  155. F_PtblWrite equ MEM + 0100h * 07
  156. F_PageGet equ MEM + 0100h * 08
  157. F_PageSet equ MEM + 0100h * 09
  158. F_PagesAlloc equ MEM + 0100h * 10
  159. F_PageFree equ MEM + 0100h * 11
  160. F_MemAlloc equ MEM + 0100h * 12
  161. F_MemFree equ MEM + 0100h * 13
  162. F_MemSize equ MEM + 0100h * 14
  163. F_MemResize equ MEM + 0100h * 15
  164. F_DescAlloc equ MEM + 0100h * 16
  165. F_DescFree equ MEM + 0100h * 17
  166. F_DescGet equ MEM + 0100h * 18
  167. F_DescSet equ MEM + 0100h * 19
  168. F_DescMemAlloc equ MEM + 0100h * 20
  169. F_DescMemFree equ MEM + 0100h * 21
  170. F_DescMemSize equ MEM + 0100h * 22
  171. F_DescMemResize equ MEM + 0100h * 23
  172. F_PageLock equ MEM + 0100h * 24
  173. F_PageUnlock equ MEM + 0100h * 25
  174. F_PageLockAny equ MEM + 0100h * 26
  175. F_PageUnlockReuse equ MEM + 0100h * 27
  176. F_PageLockNone equ MEM + 0100h * 28
  177. F_PageUnlockNone equ MEM + 0100h * 29
  178. F_CallRealRaw equ MEM + 0100h * 30 ; Call real mode (SS:ESP supplied)
  179. F_IntRealRaw equ MEM + 0100h * 31 ; Do real mode interrupt (SS:ESP supplied)
  180. F_CallReal equ MEM + 0100h * 32 ; Call real mode with RETF frame
  181. F_IntReal equ MEM + 0100h * 33 ; Do real mode interrupt
  182. F_PagedCallReal equ MEM + 0100h * 34 ; Paged real mode call
  183. F_PagedIntReal equ MEM + 0100h * 35 ; Paged real mode interrupt
  184. F_CallIretReal equ MEM + 0100h * 36 ; Call real mode with IRET frame
  185. F_CallIretRealRaw equ MEM + 0100h * 37 ; Call real mode with IRET frame (SS:ESP supplied)
  186. F_CallProt16 equ MEM + 0100h * 38 ; Call protected mode 16 bit code
  187. F_CallProt32 equ MEM + 0100h * 39 ; Call protected mode 32 bit code
  188. F_IAddPage equ MEM + 0100h * 40 ; add kernel instance data
  189. F_BankPageLock equ MEM + 0100h * 41
  190. F_BankPageUnlock equ MEM + 0100h * 42
  191. F_BankPageLockAny equ MEM + 0100h * 43
  192. F_BankPageUnlockReuse equ MEM+0100h * 44
  193. F_BankPageLockNone equ MEM + 0100h * 45
  194. F_BankPageUnlockNone equ MEM+ 0100h * 46
  195. F_GateAlloc equ MEM + 0100h * 47
  196. F_GateFree equ MEM + 0100h * 48
  197. F_MemTotalFree equ MEM + 0100h * 49
  198. F_AddressSpace equ MEM + 0100h * 50
  199. F_MemTotal equ MEM + 0100h * 51
  200. F_DescRead equ MEM + 0100h * 52
  201. F_DescWrite equ MEM + 0100h * 53
  202. F_GetStack equ MEM + 0100h * 54
  203. F_SetStack equ MEM + 0100h * 55
  204. ; Internal DOMain functions
  205. F_DAlloc equ DOM + 0100h * 00 ; create a new domain
  206. F_DFree equ DOM + 0100h * 01 ; free up a domain
  207. F_DGet equ DOM + 0100h * 02 ; get current domain
  208. F_DSet equ DOM + 0100h * 03 ; switch to another domain
  209. F_SWIntHandler equ DOM + 0100h * 04 ; Install Software Interrupt handler
  210. F_PFaultHandler equ DOM + 0100h * 05 ; Install Page Fault handler
  211. F_IOExHandler equ DOM + 0100h * 06 ; Install I/O Exception handler
  212. F_GenExHandler equ DOM + 0100h * 07 ; Install General Exception handler
  213. F_HWIntHandler equ DOM + 0100h * 08 ; Install HW int handler
  214. F_IOBitGet equ DOM + 0100h * 09 ; Get domain IO bitmap
  215. F_IOBitSet equ DOM + 0100h * 10 ; Set domain IO bitmap
  216. F_BankIOBitGet equ DOM + 0100h * 11 ; Get domain banked IO bitmap
  217. F_BankIOBitSet equ DOM + 0100h * 12 ; Set domain banked IO bitmap
  218. F_BankMemGet equ DOM + 0100h * 13 ; Read domain banked memory
  219. F_BankMemSet equ DOM + 0100h * 14 ; Write domain banked memory
  220. F_BankPageGet equ DOM + 0100h * 15 ; Get domain banked page table entry
  221. F_BankPageSet equ DOM + 0100h * 16 ; Set domain banked page table entry
  222. F_RegInstData equ DOM + 0100h * 17 ; register DOS instance data
  223. F_NProcesses equ DOM + 0100h * 18 ; Get number of processes in domain
  224. F_DFreeze equ DOM + 0100h * 19 ; Suspend domain
  225. F_DThaw equ DOM + 0100h * 20 ; Unsuspend domain
  226. F_DFork equ DOM + 0100h * 21 ; Fork domain
  227. F_DAbort equ DOM + 0100h * 22 ; Abort all processes in domain
  228. F_UnlinkHandler equ DOM + 0100h * 23 ; Uninstall a handler
  229. F_HWIntDfltHandler equ DOM + 0100h * 24 ; Install HW int default handler
  230. F_VHWIntHandler equ DOM + 0100h * 25 ; Install Virtual HW int handler
  231. F_VHWIntDfltHandler equ DOM + 0100h * 26 ; Install Virtual HW int default handler
  232. F_SwapInHandler equ DOM + 0100h * 27 ; Install process swap in handler
  233. F_SwapOutHandler equ DOM + 0100h * 28 ; Install process swap out handler
  234. F_DosStartup equ DOM + 0100h * 29 ; Statup a DOS session
  235. F_DosShutdown equ DOM + 0100h * 30 ; Terminate a DOS session
  236. F_PCreateHandler equ DOM + 0100h * 31 ; Install process create handler
  237. F_PDeleteHandler equ DOM + 0100h * 32 ; Install process terminate handler
  238. F_RootPD equ DOM + 0100h * 33 ; Get Domain Root Process
  239. F_DForeground equ DOM + 0100h * 34 ; Domain has just switched to foreground
  240. F_DBackground equ DOM + 0100h * 35 ; Domain will be switching to background
  241. F_MapHMA equ DOM + 0100h * 36 ; Map Domains HMA
  242. F_AddInstData equ DOM + 0100h * 37 ; add DOS instance data
  243. F_DMemFree equ DOM + 0100h * 38 ; get memory available to this domain
  244. F_DMemTotal  equ DOM + 0100h * 39 ; get memory allocated to this domain
  245. F_DGetMemLimit  equ DOM + 0100h * 40 ; get limit on local memory allocations
  246. F_DSetMemLimit  equ DOM + 0100h * 41 ; set limit on local memory allocations
  247. F_ReflectInt21 equ DOM + 0100h * 42 ; support for protected mode Int 21's
  248. F_DTestRegion equ DOM + 0100h * 43 ; test region for global/local memory
  249. F_Switcher equ DOM + 0100h * 44 ; make task switcher call
  250. F_HandlerCleanup equ DOM + 0100h * 45 ; debugger hook - remove all handlers for a selector
  251. F_DFlagGet equ DOM + 0100h * 46 ; get Domain Flags
  252. F_DFlagSet equ DOM + 0100h * 47 ; set Domain Flags
  253. F_DSwitchHandler equ DOM + 0100h * 48 ; Install domain switch handler
  254. F_GIOExHandler equ DOM + 0100h * 49 ; Install Global I/O Exception handler
  255. ;------------
  256. ; VM Functions
  257. F_VMProtInit equ VM + 0100h * 00 ; Protected Mode initialisation internal)
  258. F_LoadMT equ VM + 0100h * 01 ; Load MultiTasking
  259. F_UnloadMT equ VM + 0100h * 02 ; Unload MultiTasking
  260. F_ConsoleFree equ VM + 0100h * 03 ; Save Console if enabled, then free it
  261. F_ConsoleGet equ VM + 0100h * 04 ; Get Console, then restore if enabled
  262. F_ConsoleSaveEnable  equ VM +0100h * 05 ; Enable Console save/restore
  263. F_ConsoleSaveDisable equ VM +0100h * 06 ; Disable Console save/restore
  264. F_TMInit equ VM + 0100h * 07 ; Task Manager Init
  265. F_GetKey equ VM + 0100h * 08 ; Domain Manager to Keyboard Handler
  266. F_KeyScanEnable equ VM + 0100h * 09 ; Enable hotkey scanning
  267. F_KeyScanDisable equ VM + 0100h * 10 ; Disable hotkey scanning
  268. F_ConsoleOwner equ VM + 0100h * 11 ; Get console owner domain id
  269. F_DMAHandlerEnable  equ VM + 0100h * 12 ; Re-enable DMA address translation
  270. F_DMAHandlerDisable equ VM + 0100h * 13 ; Disable DMA address translation
  271. F_SetSerialTimeout  equ VM + 0100h * 14 ; Set Serial Port Timeout
  272. F_SetParallelTimeout equ VM+ 0100h * 15 ; Set Parallel Port Timeout
  273. F_VCPIEntry equ VM + 0100h * 16 ; Domain is going into VCPI mode
  274. F_VCPIExit equ VM + 0100h * 17 ; Domain has probably come out of VCPI mode
  275. F_SetGlobalMsgMode  equ VM + 0100h * 18 ; Enter global message display mode
  276. F_DisplayGlobalMsg  equ VM + 0100h * 19 ; Ditto, plus display message
  277. F_ExitGlobalMsgMode equ VM + 0100h * 20 ; Exit global message display mode
  278. F_SetDomainMsgMode  equ VM + 0100h * 21 ; Enter domain message display mode
  279. F_DisplayDomainMsg  equ VM + 0100h * 22 ; Ditto, plus display message
  280. F_ExitDomainMsgMode equ VM + 0100h * 23 ; Exit domain message display mode
  281. F_DisplayFatalMsg   equ VM + 0100h * 24 ; Display fatal message
  282. F_SetSerialBase     equ VM + 0100h * 25 ; Set Serial port base address
  283. F_SetParallelBase   equ VM + 0100h * 26 ; Set Parallel port base address
  284. F_SetSerialIRQ     equ VM + 0100h * 27 ; Set Serial port IRQ number
  285. F_SetParallelIRQ    equ VM + 0100h * 28 ; Set Parallel port IRQ number
  286. F_ResetVideo     equ VM + 0100h * 29 ; EMERGENCY reset of the video system
  287. F_SetMouseIRQ     equ VM + 0100h * 30 ; Set mouse IRQ
  288. F_CheckNotIdle      equ VM + 0100h * 31 ; Check if we are idle or not
  289. F_GetMouseInfo     equ VM + 0100h * 32
  290. F_GetSerialOwner    equ VM + 0100h * 33
  291. F_GetSerialTimeout  equ VM + 0100h * 34
  292. F_GetParallelOwner  equ VM + 0100h * 35
  293. F_GetParallelTimeout equ VM+ 0100h * 36
  294. LAST_VM_FUNC equ 36
  295. ;------------
  296. ; DPMI Functions
  297. ; These "DPMI" functions are those that are provided by the DPMI module via the
  298. ; Vladivar interface. True DPMI functions should be accessed via int 31h as per
  299. ; the DPMI spec.
  300. F_InitDPMI equ DPMI + 0100h * 0 ; used internally by DPMI. Do not call.
  301. F_DescAllocLDT equ DPMI + 0100H * 1 ; allocate an LDT descriptor
  302. F_DescFreeLDT equ DPMI + 0100H * 2 ; free an LDT descriptor
  303. F_DescGetLDT equ DPMI + 0100H * 3 ; same as F_DescGet, but for LDT 
  304. F_DescSetLDT equ DPMI + 0100H * 4 ; same as F_DescSet, but for LDT 
  305. F_DescAllocInt21 equ DPMI + 0100H * 5 ; allocate an LDT descriptor for pmode
  306.      ;  int 21 memory allocation. 
  307. F_WhereIsDPMI equ DPMI + 0100H * 6 ; return address of DPMI global data
  308. LAST_DPMI_FUNC equ 6