You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1009 B
44 lines
1009 B
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
xlathlp.h
|
|
|
|
Abstract:
|
|
|
|
This module contains helper macros for the api translation
|
|
|
|
Author:
|
|
|
|
Dave Hastings (daveh) 24-Nov-1992
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#define DPMI_EXEC_INT(x) SWITCH_TO_DOSX_RMSTACK(); \
|
|
DpmiPushRmInt(x); \
|
|
host_simulate(); \
|
|
SWITCH_FROM_DOSX_RMSTACK();
|
|
|
|
//
|
|
// VOID
|
|
// DPMI_FLAT_TO_SEGMENTED(
|
|
// PUCHAR buffer,
|
|
// PUSHORT seg,
|
|
// PUSHORT off
|
|
// )
|
|
|
|
#define DPMI_FLAT_TO_SEGMENTED(buffer, seg, off) { \
|
|
*seg = (USHORT)(((ULONG)buffer-IntelBase) >> 4); \
|
|
*off = (USHORT)(((ULONG)buffer-IntelBase) & 0xf); \
|
|
}
|
|
|
|
//
|
|
// Cast sel to USHORT such that we will never go beyond FlatAddress array.
|
|
//
|
|
|
|
#define SELECTOR_TO_INTEL_LINEAR_ADDRESS(sel) \
|
|
(FlatAddress[((USHORT)(sel) & ~7) / sizeof(LDT_ENTRY)] - IntelBase)
|