; File : $MODFUNC.DEF$ ; ; Description : ; ; Original Author : DIGITAL RESEARCH ; ; Last Edited By : $CALDERA$ ; ;-----------------------------------------------------------------------; ; Copyright Work of Caldera, Inc. All Rights Reserved. ; ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL, ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC. ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED, ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND ; CIVIL LIABILITY. ;-----------------------------------------------------------------------; ; ; *** Current Edit History *** ; *** End of Current Edit History *** ; ; $Log$ ; ; ENDLOG ; ;****************************************************************; ;* *; ;* OS386 Inter-Module Function Definitions *; ;* *; ;****************************************************************; OS386_FUNC equ 2780h ; AX value OS386_INT equ 02Fh ; interrupt number ; Module definitions USER equ 0 SUP equ 1 RTM equ 2 MEM equ 3 DOM equ 4 VM equ 5 DPMI equ 6 DPMS equ 7 MIN_MODULE equ 5 MAX_MODULE equ 15 ; Internal SUP functions F_NotImp equ SUP + 0100h * 00 ; Function Not Implemented F_Illegal equ SUP + 0100h * 01 ; Illegal Function F_ModuleReg equ SUP + 0100h * 02 ; Register Module F_SysDatAlloc equ SUP + 0100h * 03 ; allocate SYSDAT memory F_SysDat equ SUP + 0100h * 04 ; return SYSDAT selector F_MoveReal equ SUP + 0100h * 05 ; move real mode memory to protected mode F_Reboot equ SUP + 0100h * 06 F_Debug equ SUP + 0100h * 07 F_ForeCheck equ SUP + 0100h * 08 ; Check for foreground F_RegisterVxD equ SUP + 0100h * 09 ; Register VxD with system F_UnloadVxD equ SUP + 0100h * 10 ; Unload VxD hook F_PostInit equ SUP + 0100h * 11 ; end of initialisation phase F_AllocWindow equ SUP + 0100h * 12 ; allocate a 4K mapping window F_RegisterBoot equ SUP + 0100h * 13 ; register reboot addresses F_EnquireBoot equ SUP + 0100h * 14 ; enquire if reboot active F_GetDebugLevel equ SUP + 0100h * 15 ; get debug level F_SetDebugLevel equ SUP + 0100h * 16 ; set debug level F_Version equ SUP + 0100h * 17 ; version check F_V86BPInstall equ SUP + 0100h * 18 ; install v86 break point F_V86BPRemove equ SUP + 0100h * 19 ; remove v86 break point F_V86BPOffer equ SUP + 0100h * 20 ; offer int 3 as v86 break point F_LoaderCleanup equ SUP + 0100h * 21 ; offer the chance to cleanup F_RegisterVxDWindow equ SUP + 0100h * 22 ; Register VxD mapping window F_RegisterPNW equ SUP + 0100h * 23 ; Register PNW info ; Internal RTM functions F_PDCount equ RTM + 0100h * 01 F_FlgWait equ RTM + 0100h * 02 F_FlgSet equ RTM + 0100h * 03 F_QMake equ RTM + 0100h * 04 F_QOpen equ RTM + 0100h * 05 F_QDelete equ RTM + 0100h * 06 F_QRead equ RTM + 0100h * 07 F_CQread equ RTM + 0100h * 08 F_QWrite equ RTM + 0100h * 09 F_CQWrite equ RTM + 0100h * 10 F_Delay equ RTM + 0100h * 11 F_Dispatch equ RTM + 0100h * 12 F_PTerm equ RTM + 0100h * 13 F_PCreat equ RTM + 0100h * 14 F_SetPrior equ RTM + 0100h * 15 F_PDAddr equ RTM + 0100h * 16 F_PAbort equ RTM + 0100h * 17 F_Sleep equ RTM + 0100h * 18 F_Wakeup equ RTM + 0100h * 19 F_FindPDName equ RTM + 0100h * 20 F_SetFlags equ RTM + 0100h * 21 F_EndOfInterrupt equ RTM + 0100h * 22 ; Register PIC end of interrupt F_NoAbort equ RTM + 0100h * 23 F_OkAbort equ RTM + 0100h * 24 F_FlagStatus equ RTM + 0100h * 25 F_QRdMX equ RTM + 0100h * 26 F_QWrMX equ RTM + 0100h * 27 F_FlgAlloc equ RTM + 0100h * 28 F_FlgFree equ RTM + 0100h * 29 F_NumFlags equ RTM + 0100h * 30 F_NDQRead equ RTM + 0100h * 31 F_FlgWWTO equ RTM + 0100h * 32 F_UdaAlloc equ RTM + 0100h * 33 F_UdaFree equ RTM + 0100h * 34 F_PFreeze equ RTM + 0100h * 35 F_PThaw equ RTM + 0100h * 36 F_CritEnter equ RTM + 0100h * 37 F_CritExit equ RTM + 0100h * 38 F_PCreate equ RTM + 0100h * 39 F_PDList equ RTM + 0100h * 40 F_PDToName equ RTM + 0100h * 41 F_PDToStatus equ RTM + 0100h * 42 F_PDToDomain equ RTM + 0100h * 43 F_GetPrior equ RTM + 0100h * 44 F_QDList equ RTM + 0100h * 45 F_QDToName equ RTM + 0100h * 46 F_QDToMsgLen equ RTM + 0100h * 47 F_QDToMaxMsgs equ RTM + 0100h * 48 F_QDToNqPD equ RTM + 0100h * 49 F_QDToDqPD equ RTM + 0100h * 50 F_QDToNumMsgs equ RTM + 0100h * 51 F_QDToFlags equ RTM + 0100h * 52 F_NameToQD equ RTM + 0100h * 53 F_NameToPD equ RTM + 0100h * 54 F_MutexAlloc equ RTM + 0100h * 55 F_MutexFree equ RTM + 0100h * 56 F_MutexEnter equ RTM + 0100h * 57 F_MutexCEnter equ RTM + 0100h * 58 F_MutexExit equ RTM + 0100h * 59 F_Slice equ RTM + 0100h * 60 F_TickLength equ RTM + 0100h * 61 F_ProcessID equ RTM + 0100h * 62 F_QClose equ RTM + 0100h * 63 F_QDispose equ RTM + 0100h * 64 F_PDToFlags equ RTM + 0100h * 65 F_PDToDParam equ RTM + 0100h * 66 F_ReleaseMX equ RTM + 0100h * 67 F_SimulateInt equ RTM + 0100h * 68 F_SetQFlags equ RTM + 0100h * 69 F_TickRate equ RTM + 0100h * 70 ; Internal MEMORY functions F_PdirGet equ MEM + 0100h * 01 F_PdirSet equ MEM + 0100h * 02 F_PageAlloc equ MEM + 0100h * 03 F_RealAllocG equ MEM + 0100h * 04 F_RealAllocI equ MEM + 0100h * 05 F_PtblRead equ MEM + 0100h * 06 F_PtblWrite equ MEM + 0100h * 07 F_PageGet equ MEM + 0100h * 08 F_PageSet equ MEM + 0100h * 09 F_PagesAlloc equ MEM + 0100h * 10 F_PageFree equ MEM + 0100h * 11 F_MemAlloc equ MEM + 0100h * 12 F_MemFree equ MEM + 0100h * 13 F_MemSize equ MEM + 0100h * 14 F_MemResize equ MEM + 0100h * 15 F_DescAlloc equ MEM + 0100h * 16 F_DescFree equ MEM + 0100h * 17 F_DescGet equ MEM + 0100h * 18 F_DescSet equ MEM + 0100h * 19 F_DescMemAlloc equ MEM + 0100h * 20 F_DescMemFree equ MEM + 0100h * 21 F_DescMemSize equ MEM + 0100h * 22 F_DescMemResize equ MEM + 0100h * 23 F_PageLock equ MEM + 0100h * 24 F_PageUnlock equ MEM + 0100h * 25 F_PageLockAny equ MEM + 0100h * 26 F_PageUnlockReuse equ MEM + 0100h * 27 F_PageLockNone equ MEM + 0100h * 28 F_PageUnlockNone equ MEM + 0100h * 29 F_CallRealRaw equ MEM + 0100h * 30 ; Call real mode (SS:ESP supplied) F_IntRealRaw equ MEM + 0100h * 31 ; Do real mode interrupt (SS:ESP supplied) F_CallReal equ MEM + 0100h * 32 ; Call real mode with RETF frame F_IntReal equ MEM + 0100h * 33 ; Do real mode interrupt F_PagedCallReal equ MEM + 0100h * 34 ; Paged real mode call F_PagedIntReal equ MEM + 0100h * 35 ; Paged real mode interrupt F_CallIretReal equ MEM + 0100h * 36 ; Call real mode with IRET frame F_CallIretRealRaw equ MEM + 0100h * 37 ; Call real mode with IRET frame (SS:ESP supplied) F_CallProt16 equ MEM + 0100h * 38 ; Call protected mode 16 bit code F_CallProt32 equ MEM + 0100h * 39 ; Call protected mode 32 bit code F_IAddPage equ MEM + 0100h * 40 ; add kernel instance data F_BankPageLock equ MEM + 0100h * 41 F_BankPageUnlock equ MEM + 0100h * 42 F_BankPageLockAny equ MEM + 0100h * 43 F_BankPageUnlockReuse equ MEM+0100h * 44 F_BankPageLockNone equ MEM + 0100h * 45 F_BankPageUnlockNone equ MEM+ 0100h * 46 F_GateAlloc equ MEM + 0100h * 47 F_GateFree equ MEM + 0100h * 48 F_MemTotalFree equ MEM + 0100h * 49 F_AddressSpace equ MEM + 0100h * 50 F_MemTotal equ MEM + 0100h * 51 F_DescRead equ MEM + 0100h * 52 F_DescWrite equ MEM + 0100h * 53 F_GetStack equ MEM + 0100h * 54 F_SetStack equ MEM + 0100h * 55 ; Internal DOMain functions F_DAlloc equ DOM + 0100h * 00 ; create a new domain F_DFree equ DOM + 0100h * 01 ; free up a domain F_DGet equ DOM + 0100h * 02 ; get current domain F_DSet equ DOM + 0100h * 03 ; switch to another domain F_SWIntHandler equ DOM + 0100h * 04 ; Install Software Interrupt handler F_PFaultHandler equ DOM + 0100h * 05 ; Install Page Fault handler F_IOExHandler equ DOM + 0100h * 06 ; Install I/O Exception handler F_GenExHandler equ DOM + 0100h * 07 ; Install General Exception handler F_HWIntHandler equ DOM + 0100h * 08 ; Install HW int handler F_IOBitGet equ DOM + 0100h * 09 ; Get domain IO bitmap F_IOBitSet equ DOM + 0100h * 10 ; Set domain IO bitmap F_BankIOBitGet equ DOM + 0100h * 11 ; Get domain banked IO bitmap F_BankIOBitSet equ DOM + 0100h * 12 ; Set domain banked IO bitmap F_BankMemGet equ DOM + 0100h * 13 ; Read domain banked memory F_BankMemSet equ DOM + 0100h * 14 ; Write domain banked memory F_BankPageGet equ DOM + 0100h * 15 ; Get domain banked page table entry F_BankPageSet equ DOM + 0100h * 16 ; Set domain banked page table entry F_RegInstData equ DOM + 0100h * 17 ; register DOS instance data F_NProcesses equ DOM + 0100h * 18 ; Get number of processes in domain F_DFreeze equ DOM + 0100h * 19 ; Suspend domain F_DThaw equ DOM + 0100h * 20 ; Unsuspend domain F_DFork equ DOM + 0100h * 21 ; Fork domain F_DAbort equ DOM + 0100h * 22 ; Abort all processes in domain F_UnlinkHandler equ DOM + 0100h * 23 ; Uninstall a handler F_HWIntDfltHandler equ DOM + 0100h * 24 ; Install HW int default handler F_VHWIntHandler equ DOM + 0100h * 25 ; Install Virtual HW int handler F_VHWIntDfltHandler equ DOM + 0100h * 26 ; Install Virtual HW int default handler F_SwapInHandler equ DOM + 0100h * 27 ; Install process swap in handler F_SwapOutHandler equ DOM + 0100h * 28 ; Install process swap out handler F_DosStartup equ DOM + 0100h * 29 ; Statup a DOS session F_DosShutdown equ DOM + 0100h * 30 ; Terminate a DOS session F_PCreateHandler equ DOM + 0100h * 31 ; Install process create handler F_PDeleteHandler equ DOM + 0100h * 32 ; Install process terminate handler F_RootPD equ DOM + 0100h * 33 ; Get Domain Root Process F_DForeground equ DOM + 0100h * 34 ; Domain has just switched to foreground F_DBackground equ DOM + 0100h * 35 ; Domain will be switching to background F_MapHMA equ DOM + 0100h * 36 ; Map Domains HMA F_AddInstData equ DOM + 0100h * 37 ; add DOS instance data F_DMemFree equ DOM + 0100h * 38 ; get memory available to this domain F_DMemTotal equ DOM + 0100h * 39 ; get memory allocated to this domain F_DGetMemLimit equ DOM + 0100h * 40 ; get limit on local memory allocations F_DSetMemLimit equ DOM + 0100h * 41 ; set limit on local memory allocations F_ReflectInt21 equ DOM + 0100h * 42 ; support for protected mode Int 21's F_DTestRegion equ DOM + 0100h * 43 ; test region for global/local memory F_Switcher equ DOM + 0100h * 44 ; make task switcher call F_HandlerCleanup equ DOM + 0100h * 45 ; debugger hook - remove all handlers for a selector F_DFlagGet equ DOM + 0100h * 46 ; get Domain Flags F_DFlagSet equ DOM + 0100h * 47 ; set Domain Flags F_DSwitchHandler equ DOM + 0100h * 48 ; Install domain switch handler F_GIOExHandler equ DOM + 0100h * 49 ; Install Global I/O Exception handler ;------------ ; VM Functions F_VMProtInit equ VM + 0100h * 00 ; Protected Mode initialisation internal) F_LoadMT equ VM + 0100h * 01 ; Load MultiTasking F_UnloadMT equ VM + 0100h * 02 ; Unload MultiTasking F_ConsoleFree equ VM + 0100h * 03 ; Save Console if enabled, then free it F_ConsoleGet equ VM + 0100h * 04 ; Get Console, then restore if enabled F_ConsoleSaveEnable equ VM +0100h * 05 ; Enable Console save/restore F_ConsoleSaveDisable equ VM +0100h * 06 ; Disable Console save/restore F_TMInit equ VM + 0100h * 07 ; Task Manager Init F_GetKey equ VM + 0100h * 08 ; Domain Manager to Keyboard Handler F_KeyScanEnable equ VM + 0100h * 09 ; Enable hotkey scanning F_KeyScanDisable equ VM + 0100h * 10 ; Disable hotkey scanning F_ConsoleOwner equ VM + 0100h * 11 ; Get console owner domain id F_DMAHandlerEnable equ VM + 0100h * 12 ; Re-enable DMA address translation F_DMAHandlerDisable equ VM + 0100h * 13 ; Disable DMA address translation F_SetSerialTimeout equ VM + 0100h * 14 ; Set Serial Port Timeout F_SetParallelTimeout equ VM+ 0100h * 15 ; Set Parallel Port Timeout F_VCPIEntry equ VM + 0100h * 16 ; Domain is going into VCPI mode F_VCPIExit equ VM + 0100h * 17 ; Domain has probably come out of VCPI mode F_SetGlobalMsgMode equ VM + 0100h * 18 ; Enter global message display mode F_DisplayGlobalMsg equ VM + 0100h * 19 ; Ditto, plus display message F_ExitGlobalMsgMode equ VM + 0100h * 20 ; Exit global message display mode F_SetDomainMsgMode equ VM + 0100h * 21 ; Enter domain message display mode F_DisplayDomainMsg equ VM + 0100h * 22 ; Ditto, plus display message F_ExitDomainMsgMode equ VM + 0100h * 23 ; Exit domain message display mode F_DisplayFatalMsg equ VM + 0100h * 24 ; Display fatal message F_SetSerialBase equ VM + 0100h * 25 ; Set Serial port base address F_SetParallelBase equ VM + 0100h * 26 ; Set Parallel port base address F_SetSerialIRQ equ VM + 0100h * 27 ; Set Serial port IRQ number F_SetParallelIRQ equ VM + 0100h * 28 ; Set Parallel port IRQ number F_ResetVideo equ VM + 0100h * 29 ; EMERGENCY reset of the video system F_SetMouseIRQ equ VM + 0100h * 30 ; Set mouse IRQ F_CheckNotIdle equ VM + 0100h * 31 ; Check if we are idle or not F_GetMouseInfo equ VM + 0100h * 32 F_GetSerialOwner equ VM + 0100h * 33 F_GetSerialTimeout equ VM + 0100h * 34 F_GetParallelOwner equ VM + 0100h * 35 F_GetParallelTimeout equ VM+ 0100h * 36 LAST_VM_FUNC equ 36 ;------------ ; DPMI Functions ; These "DPMI" functions are those that are provided by the DPMI module via the ; Vladivar interface. True DPMI functions should be accessed via int 31h as per ; the DPMI spec. F_InitDPMI equ DPMI + 0100h * 0 ; used internally by DPMI. Do not call. F_DescAllocLDT equ DPMI + 0100H * 1 ; allocate an LDT descriptor F_DescFreeLDT equ DPMI + 0100H * 2 ; free an LDT descriptor F_DescGetLDT equ DPMI + 0100H * 3 ; same as F_DescGet, but for LDT F_DescSetLDT equ DPMI + 0100H * 4 ; same as F_DescSet, but for LDT F_DescAllocInt21 equ DPMI + 0100H * 5 ; allocate an LDT descriptor for pmode ; int 21 memory allocation. F_WhereIsDPMI equ DPMI + 0100H * 6 ; return address of DPMI global data LAST_DPMI_FUNC equ 6