/*DDK*************************************************************************/
/*                                                                           */
/* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
/*                                                                           */
/*    The following IBM OS/2 WARP source code is provided to you solely for  */
/*    the purpose of assisting you in your development of OS/2 WARP device   */
/*    drivers. You may use this code in accordance with the IBM License      */
/*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
/*    Copyright statement may not be removed.                                */
/*                                                                           */
/*****************************************************************************/
/**************************************************************************
 *
 * SOURCE FILE NAME = DEVUTIL.H
 *
 * DESCRIPTIVE NAME =
 *
 *
 * VERSION = V2.0
 *
 * DATE        07/12/91
 *
 * DESCRIPTION
 *
 *
 * FUNCTIONS
 *
 * ENTRY POINTS:
 *
 * DEPENDENCIES:
 *
 * NOTES
 *
 *
 * STRUCTURES
 *
 * EXTERNAL REFERENCES
 *
 * EXTERNAL FUNCTIONS
 *
*/

enum _DHFUNC
{
  DH_SchedClockAddr, DH_DevDone, DH_Yield, DH_TCYield, DH_Block, DH_Run,
     DH_SemRequest, DH_SemClear, DH_SemHandle, DH_PushReqPacket,
     DH_PullReqPacket, DH_PullParticular, DH_SortReqPacket, DH_AllocReqPacket,
     DH_FreeReqPacket, DH_QueueInit, DH_QueueFlush, DH_QueueWrite, DH_QueueRead,
     DH_Lock, DH_Unlock, DH_PhysToVirt, DH_VirtToPhys, DH_PhysToUVirt,
     DH_AllocPhys, DH_FreePhys, DH_SetROMVector, DH_SetIRQ, DH_UnSetIRQ,
     DH_SetTimer, DH_ResetTimer, DH_MonitorCreate, DH_Register, DH_DeRegister,
     DH_MonWrite, DH_MonFlush, DH_GetDOSVar, DH_SendEvent, DH_ROMCritSection,
     DH_VerifyAccess, DH_RAS, DH_ABIOSGetParms, DH_AttachDD, DH_InternalError,
     DH_ModifyPriority, DH_AllocGDTSelector, DH_PhysToGDTSelector,
     DH_RealToProt, DH_ProtToReal, DH_EOI, DH_UnPhysToVirt, DH_TickCount,
     DH_GetLIDEntry, DH_FreeLIDEntry, DH_ABIOSCall, DH_ABIOSCommonEntry,
     DH_GetDeviceBlock, DH_RegisterProfile, DH_RegisterStackUsage, DH_LogEntry,
     DH_VideoPause, DH_SaveMessage, DH_RegisterPDD, DH_RegisterBeep, DH_Beep,
     DH_FreeGDTSelector, DH_PhysToGDTSel1, DH_VMLock, DH_VMUnlock, DH_VMAlloc,
     DH_VMFree, DH_VMProcessToGlobal, DH_VMGlobalToProcess, DH_VirtToLin,
     DH_LinToGDTSelector, DH_GetDescInfo, DH_LinToPageList, DH_PageListToLin,
     DH_PageListToGDTSelector, DH_RegisterTmrDD, DH_RegisterPerfCtrs,
     DH_AllocateCtxHook, DH_FreeCtxHook, DH_ArmCtxHook
} ;

/*
** Declared NEAR here, assumes ds set to dgroup
*/

extern VOID(FAR *NEAR DevHlp_Entry)();

/*
** 386 assembler fixes
*/

#define  HiEAXtoDX     _asm {           /* mov the hi word of EAX to DX      */\
  _asm _emit 0x66\
  _asm _emit 0x0f\
  _asm _emit 0xa4\
  _asm _emit 0xc2\
  _asm _emit 0x10\
}
#define  OpPrfx         _asm _emit 0x66 /* make data xfer width 32 bits      */

/*
** end
*/
