summaryrefslogtreecommitdiffstats
path: root/board/MAI/bios_emulator/scitech/include/pm_help.h
diff options
context:
space:
mode:
Diffstat (limited to 'board/MAI/bios_emulator/scitech/include/pm_help.h')
-rw-r--r--board/MAI/bios_emulator/scitech/include/pm_help.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/board/MAI/bios_emulator/scitech/include/pm_help.h b/board/MAI/bios_emulator/scitech/include/pm_help.h
new file mode 100644
index 0000000000..60a7c25457
--- /dev/null
+++ b/board/MAI/bios_emulator/scitech/include/pm_help.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+*
+* SciTech OS Portability Manager Library
+*
+* ========================================================================
+*
+* The contents of this file are subject to the SciTech MGL Public
+* License Version 1.0 (the "License"); you may not use this file
+* except in compliance with the License. You may obtain a copy of
+* the License at http://www.scitechsoft.com/mgl-license.txt
+*
+* Software distributed under the License is distributed on an
+* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+* implied. See the License for the specific language governing
+* rights and limitations under the License.
+*
+* The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.
+*
+* The Initial Developer of the Original Code is SciTech Software, Inc.
+* All Rights Reserved.
+*
+* ========================================================================
+*
+* Language: ANSI C
+* Environment: Win32, OS/2
+*
+* Description: Include file for the SciTech Portability Manager 32-bit
+* helper VxD for Windows 9x for and the 16-bit ring 0
+* helper device driver for OS/2.
+*
+* This file documents all the public services used by the
+* SciTech Portability Manager library and SciTech Nucleus
+* loader library.
+*
+****************************************************************************/
+
+#ifndef __PMHELP_H
+#define __PMHELP_H
+
+/* Include version information */
+
+#include "sdd/sddver.h"
+#define PMHELP_Major SDD_RELEASE_MAJOR
+#define PMHELP_Minor SDD_RELEASE_MINOR
+#define PMHELP_VERSION ((PMHELP_Major << 8) | PMHELP_Minor)
+
+#ifdef __OS2__
+
+/****************************************************************************
+* Public OS/2 Support functions
+****************************************************************************/
+
+#include "scitech.h"
+#include "nucleus/graphics.h"
+
+/* Name of device driver */
+
+#define PMHELP_NAME (PSZ)"sddhelp$"
+
+/* Main IOCTL function to talk to device driver */
+
+#define PMHELP_IOCTL 0x0080
+
+/* Macro definition for defining IOCTL function control codes for the SDDHELP
+ * device driver for OS/2. Similar to that used for the DOS/Win32 version.
+ */
+
+#define PMHELP_CTL_CODE(name,value) \
+ PMHELP_##name = value
+
+typedef enum {
+ /* Version function used by all drivers */
+ PMHELP_CTL_CODE(GETVER ,0x0001),
+ PMHELP_CTL_CODE(MAPPHYS ,0x0002),
+ PMHELP_CTL_CODE(ALLOCLOCKED ,0x0003),
+ PMHELP_CTL_CODE(FREELOCKED ,0x0004),
+ PMHELP_CTL_CODE(GETGDT32 ,0x0005),
+ PMHELP_CTL_CODE(MALLOCSHARED ,0x0007),
+ PMHELP_CTL_CODE(FREESHARED ,0x0008),
+ PMHELP_CTL_CODE(MAPTOPROCESS ,0x0009),
+ PMHELP_CTL_CODE(FREEPHYS ,0x000A),
+ PMHELP_CTL_CODE(FLUSHTLB ,0x000B),
+ PMHELP_CTL_CODE(SAVECR4 ,0x000C),
+ PMHELP_CTL_CODE(RESTORECR4 ,0x000D),
+ PMHELP_CTL_CODE(READMSR ,0x000E),
+ PMHELP_CTL_CODE(WRITEMSR ,0x000F),
+ PMHELP_CTL_CODE(GETPHYSICALADDR ,0x0010),
+ PMHELP_CTL_CODE(GETPHYSICALADDRRANGE ,0x0011),
+ PMHELP_CTL_CODE(LOCKPAGES ,0x0012),
+ PMHELP_CTL_CODE(UNLOCKPAGES ,0x0013),
+ PMHELP_CTL_CODE(GETSHAREDEXP ,0x0042),
+ PMHELP_CTL_CODE(SETSHAREDEXP ,0x0043),
+ PMHELP_CTL_CODE(GETSTACKSWITCHRTN ,0x0044),
+ PMHELP_CTL_CODE(GETBUILDNO ,0x0050),
+ } PMHELP_ctlCodes;
+
+#else
+
+/****************************************************************************
+* Public DOS/Windows Support functions
+****************************************************************************/
+
+#ifdef DEVICE_MAIN
+#include <vtoolsc.h>
+#define PMHELP_Init_Order (VDD_INIT_ORDER-1)
+#define RETURN_LONGS(n) *p->dioc_bytesret = (n) * sizeof(ulong)
+#endif /* DEVICE_MAIN */
+#include "scitech.h"
+#include "nucleus/graphics.h"
+
+/* We connect to the SDDHELP.VXD module if it is staticly loaded (as part
+ * of SciTech Display Doctor), otherwise we dynamically load the PMHELP.VXD
+ * public helper VxD.
+ */
+
+#define PMHELP_DeviceID 0x0000
+#define SDDHELP_DeviceID 0x3DF8
+#define VXDLDR_DeviceID 0x0027
+#define SDDHELP_MODULE "SDDHELP"
+#define SDDHELP_NAME "SDDHELP.VXD"
+#define PMHELP_MODULE "PMHELP"
+#define PMHELP_NAME "PMHELP.VXD"
+#define PMHELP_DDBNAME "pmhelp "
+#define SDDHELP_MODULE_PATH "\\\\.\\" SDDHELP_MODULE
+#define PMHELP_MODULE_PATH "\\\\.\\" PMHELP_MODULE
+#define PMHELP_VXD_PATH "\\\\.\\" PMHELP_NAME
+
+/* Macro definition for defining IOCTL function control codes for the PMHELP
+ * device drivers for Windows 9x and NT. This macro is basically derived from
+ * the CTL_CODE macro in the Windows 2000 DDK, but we hard code it here to
+ * avoid having to #include any of the Windows 2000 DDK header files. We also
+ * define both a 16-bit and 32-bit version of the control code within the same
+ * macro to simplify future additions.
+ *
+ * Essentially the Win32 macro would normally expand to the following:
+ *
+ * CTL_CODE(FILE_DEVICE_VIDEO,0x800+value,METHOD_BUFFERED,FILE_ANY_ACCESS)
+ */
+
+#define PMHELP_CTL_CODE(name,value) \
+ PMHELP_##name = value, \
+ PMHELP_##name##32 = ((0x23 << 16) | (0 << 14) | ((0x800+value) << 2) | (0))
+
+typedef enum {
+ /* Include all the control codes. We keep them in a separate header
+ * file so we can include them in multiple places to make this
+ * more versatile.
+ */
+ #include "pm_wctl.h"
+ } PMHELP_ctlCodes;
+
+/* For real mode VxD calls, we put the function number into the high
+ * order word of EAX, and a value of 0x4FFF in AX. This allows our
+ * VxD handler which is set up to handle Int 10's to recognise a native
+ * PMHELP API call from a real mode DOS program.
+ */
+
+#ifdef REALMODE
+#define API_NUM(num) (((ulong)(num) << 16) | 0x4FFF)
+#else
+#define API_NUM(num) (num)
+#endif
+
+#endif /* !__OS2__ */
+
+#endif /* __PMHELP_H */
+
OpenPOWER on IntegriCloud