summaryrefslogtreecommitdiffstats
path: root/private/os2/inc/os2dev.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/os2/inc/os2dev.h522
1 files changed, 522 insertions, 0 deletions
diff --git a/private/os2/inc/os2dev.h b/private/os2/inc/os2dev.h
new file mode 100644
index 000000000..bdff65026
--- /dev/null
+++ b/private/os2/inc/os2dev.h
@@ -0,0 +1,522 @@
+/**************************************************************************\
+*
+* Module Name: BSEDEV.H
+*
+* OS/2 Structures and constants for use with DosDevIOCtl
+*
+* Copyright (c) 1989-1990, Microsoft Corporation. All rights reserved.
+*
+\**************************************************************************/
+
+#define BSEDEV_INCLUDED
+
+/* Input and Output Control Categories */
+
+#define IOCTL_ASYNC 0x0001
+#define IOCTL_SCR_AND_PTRDRAW 0x0003
+#define IOCTL_KEYBOARD 0x0004
+#define IOCTL_PRINTER 0x0005
+#define IOCTL_LIGHTPEN 0x0006
+#define IOCTL_POINTINGDEVICE 0x0007
+#define IOCTL_DISK 0x0008
+#define IOCTL_PHYSICALDISK 0x0009
+#define IOCTL_MONITOR 0x000A
+#define IOCTL_GENERAL 0x000B
+
+/* Serial-Device Control */
+
+#define ASYNC_SETBAUDRATE 0x0041
+#define ASYNC_SETLINECTRL 0x0042
+#define ASYNC_TRANSMITIMM 0x0044
+#define ASYNC_SETBREAKOFF 0x0045
+#define ASYNC_SETMODEMCTRL 0x0046
+#define ASYNC_SETBREAKON 0x004B
+#define ASYNC_STOPTRANSMIT 0x0047
+#define ASYNC_STARTTRANSMIT 0x0048
+#define ASYNC_SETDCBINFO 0x0053
+#define ASYNC_GETBAUDRATE 0x0061
+#define ASYNC_GETLINECTRL 0x0062
+#define ASYNC_GETCOMMSTATUS 0x0064
+#define ASYNC_GETLINESTATUS 0x0065
+#define ASYNC_GETMODEMOUTPUT 0x0066
+#define ASYNC_GETMODEMINPUT 0x0067
+#define ASYNC_GETINQUECOUNT 0x0068
+#define ASYNC_GETOUTQUECOUNT 0x0069
+#define ASYNC_GETCOMMERROR 0x006D
+#define ASYNC_GETCOMMEVENT 0x0072
+#define ASYNC_GETDCBINFO 0x0073
+
+/* Screen/Pointer-Draw Control */
+
+#define SCR_ALLOCLDT 0x0070
+#define SCR_DEALLOCLDT 0x0071
+#define PTR_GETPTRDRAWADDRESS 0x0072
+#define SCR_ALLOCLDTOFF 0x0075
+
+/* Keyboard Control */
+
+#define KBD_SETTRANSTABLE 0x0050
+#define KBD_SETINPUTMODE 0x0051
+#define KBD_SETINTERIMFLAG 0x0052
+#define KBD_SETSHIFTSTATE 0x0053
+#define KBD_SETTYPAMATICRATE 0x0054
+#define KBD_SETFGNDSCREENGRP 0x0055
+#define KBD_SETSESMGRHOTKEY 0x0056
+#define KBD_SETFOCUS 0x0057
+#define KBD_SETKCB 0x0058
+#define KBD_SETNLS 0x005C
+#define KBD_CREATE 0x005D
+#define KBD_DESTROY 0x005E
+#define KBD_GETINPUTMODE 0x0071
+#define KBD_GETINTERIMFLAG 0x0072
+#define KBD_GETSHIFTSTATE 0x0073
+#define KBD_READCHAR 0x0074
+#define KBD_PEEKCHAR 0x0075
+#define KBD_GETSESMGRHOTKEY 0x0076
+#define KBD_GETKEYBDTYPE 0x0077
+#define KBD_GETCODEPAGEID 0x0078
+#define KBD_XLATESCAN 0x0079
+#if PMNT
+#define KBD_GETHARDWAREID 0x007A // Called by InitKeyboard(), PMWIN
+#define KBD_GETCPANDCOUNTRY 0x007B // Called by InitKeyboard(), PMWIN
+ // (the name is my invention - PatrickQ)
+#endif
+
+/* Printer Control */
+
+#define PRT_SETFRAMECTL 0x0042
+#define PRT_SETINFINITERETRY 0x0044
+#define PRT_INITPRINTER 0x0046
+#define PRT_ACTIVATEFONT 0x0048
+#define PRT_GETFRAMECTL 0x0062
+#define PRT_GETINFINITERETRY 0x0064
+#define PRT_GETPRINTERSTATUS 0x0066
+#define PRT_QUERYACTIVEFONT 0x0069
+#define PRT_VERIFYFONT 0x006A
+
+/* Pointing-Device (Mouse) Control */
+
+#define MOU_ALLOWPTRDRAW 0x0050
+#define MOU_UPDATEDISPLAYMODE 0x0051
+#define MOU_SCREENSWITCH 0x0052
+#define MOU_SETSCALEFACTORS 0x0053
+#define MOU_SETEVENTMASK 0x0054
+#define MOU_SETHOTKEYBUTTON 0x0055
+#define MOU_SETPTRSHAPE 0x0056
+#define MOU_DRAWPTR 0x0057
+#define MOU_REMOVEPTR 0x0058
+#define MOU_SETPTRPOS 0x0059
+#define MOU_SETPROTDRAWADDRESS 0x005A
+#define MOU_SETREALDRAWADDRESS 0x005B
+#define MOU_SETMOUSTATUS 0x005C
+#define MOU_DISPLAYMODECHANGE 0x005D
+#define MOU_GETBUTTONCOUNT 0x0060
+#define MOU_GETMICKEYCOUNT 0x0061
+#define MOU_GETMOUSTATUS 0x0062
+#define MOU_READEVENTQUE 0x0063
+#define MOU_GETQUESTATUS 0x0064
+#define MOU_GETEVENTMASK 0x0065
+#define MOU_GETSCALEFACTORS 0x0066
+#define MOU_GETPTRPOS 0x0067
+#define MOU_GETPTRSHAPE 0x0068
+#define MOU_GETHOTKEYBUTTON 0x0069
+#define MOU_VER 0x006A
+
+/* Disk/Diskette Control */
+
+#define DSK_LOCKDRIVE 0x0000
+#define DSK_UNLOCKDRIVE 0x0001
+#define DSK_REDETERMINEMEDIA 0x0002
+#define DSK_SETLOGICALMAP 0x0003
+#define DSK_BLOCKREMOVABLE 0x0020
+#define DSK_GETLOGICALMAP 0x0021
+#define DSK_SETDEVICEPARAMS 0x0043
+#define DSK_WRITETRACK 0x0044
+#define DSK_FORMATVERIFY 0x0045
+#define DSK_GETDEVICEPARAMS 0x0063
+#define DSK_READTRACK 0x0064
+#define DSK_VERIFYTRACK 0x0065
+
+/* Physical-Disk Control */
+
+#define PDSK_LOCKPHYSDRIVE 0x0000
+#define PDSK_UNLOCKPHYSDRIVE 0x0001
+#define PDSK_WRITEPHYSTRACK 0x0044
+#define PDSK_GETPHYSDEVICEPARAMS 0x0063
+#define PDSK_READPHYSTRACK 0x0064
+#define PDSK_VERIFYPHYSTRACK 0x0065
+
+/* Character-Monitor Control */
+
+#define MON_REGISTERMONITOR 0x0040
+
+/* General Device Control */
+
+#define DEV_FLUSHINPUT 0x0001
+#define DEV_FLUSHOUTPUT 0x0002
+#define DEV_QUERYMONSUPPORT 0x0060
+
+
+/* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
+ * ASYNC_SETMODEMCTRL
+ */
+
+#define RX_QUE_OVERRUN 0x0001
+#define RX_HARDWARE_OVERRUN 0x0002
+#define PARITY_ERROR 0x0004
+#define FRAMING_ERROR 0x0008
+
+/* ASYNC_GETCOMMEVENT */
+
+#define CHAR_RECEIVED 0x0001
+#define LAST_CHAR_SENT 0x0004
+#define CTS_CHANGED 0x0008
+#define DSR_CHANGED 0x0010
+#define DCD_CHANGED 0x0020
+#define BREAK_DETECTED 0x0040
+#define ERROR_OCCURRED 0x0080
+#define RI_DETECTED 0x0100
+
+/* ASYNC_GETCOMMSTATUS */
+
+#define TX_WAITING_FOR_CTS 0x0001
+#define TX_WAITING_FOR_DSR 0x0002
+#define TX_WAITING_FOR_DCD 0x0004
+#define TX_WAITING_FOR_XON 0x0008
+#define TX_WAITING_TO_SEND_XON 0x0010
+#define TX_WAITING_WHILE_BREAK_ON 0x0020
+#define TX_WAITING_TO_SEND_IMM 0x0040
+#define RX_WAITING_FOR_DSR 0x0080
+
+/* ASYNC_GETLINESTATUS */
+
+#define WRITE_REQUEST_QUEUED 0x0001
+#define DATA_IN_TX_QUE 0x0002
+#define HARDWARE_TRANSMITTING 0x0004
+#define CHAR_READY_TO_SEND_IMM 0x0008
+#define WAITING_TO_SEND_XON 0x0010
+#define WAITING_TO_SEND_XOFF 0x0020
+
+/* ASYNC_GETMODEMINPUT */
+
+#define CTS_ON 0x10
+#define DSR_ON 0x20
+#define RI_ON 0x40
+#define DCD_ON 0x80
+
+/* DSK_SETDEVICEPARAMS */
+
+#define BUILD_BPB_FROM_MEDIUM 0x00
+#define REPLACE_BPB_FOR_DEVICE 0x01
+#define REPLACE_BPB_FOR_MEDIUM 0x02
+
+/* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*/
+
+#define ASCII_MODE 0x00
+#define BINARY_MODE 0x80
+
+/* KBD_GETINTERIMFLAG */
+
+#define CONVERSION_REQUEST 0x20
+#define INTERIM_CHAR 0x80
+
+/* KBD_GETSESMGRHOTKEY */
+
+#define HOTKEY_MAX_COUNT 0x0000
+#define HOTKEY_CURRENT_COUNT 0x0001
+
+/* KBD_PEEKCHAR */
+
+#define KBD_DATA_RECEIVED 0x0001
+#define KBD_DATA_BINARY 0x8000
+
+/* KBD_READCHAR */
+
+#define KBD_READ_WAIT 0x0000
+#define KBD_READ_NOWAIT 0x8000
+
+/* KBD_SETINPUTMODE */
+
+#define SHIFT_REPORT_MODE 0x01
+
+#ifndef INCL_MOU
+
+#define MOUSE_MOTION 0x0001
+#define MOUSE_MOTION_WITH_BN1_DOWN 0x0002
+#define MOUSE_BN1_DOWN 0x0004
+#define MOUSE_MOTION_WITH_BN2_DOWN 0x0008
+#define MOUSE_BN2_DOWN 0x0010
+#define MOUSE_MOTION_WITH_BN3_DOWN 0x0020
+#define MOUSE_BN3_DOWN 0x0040
+
+#define MHK_BUTTON1 0x0001
+#define MHK_BUTTON2 0x0002
+#define MHK_BUTTON3 0x0004
+
+#ifndef MOU_NOWAIT
+#define MOU_NOWAIT 0x0000
+#endif
+#ifndef MOU_WAIT
+#define MOU_WAIT 0x0001
+#endif
+
+#endif /* #ifndef INCL_MOU */
+
+/* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON */
+
+#define MHK_NO_HOTKEY 0x0000
+
+/* MOU_GETMOUSTATUS */
+
+#define MOUSE_QUEUEBUSY 0x0001
+#define MOUSE_BLOCKREAD 0x0002
+#define MOUSE_FLUSH 0x0004
+#define MOUSE_UNSUPPORTED_MODE 0x0008
+#define MOUSE_DISABLED 0x0100
+#define MOUSE_MICKEYS 0x0200
+
+/* PRT_GETPRINTERSTATUS */
+
+#define PRINTER_TIMEOUT 0x0001
+#define PRINTER_IO_ERROR 0x0008
+#define PRINTER_SELECTED 0x0010
+#define PRINTER_OUT_OF_PAPER 0x0020
+#define PRINTER_ACKNOWLEDGED 0x0040
+#define PRINTER_NOT_BUSY 0x0080
+
+/* fbCtlHndShake */
+
+#define MODE_DTR_CONTROL 0x01
+#define MODE_DTR_HANDSHAKE 0x02
+#define MODE_CTS_HANDSHAKE 0x08
+#define MODE_DSR_HANDSHAKE 0x10
+#define MODE_DCD_HANDSHAKE 0x20
+#define MODE_DSR_SENSITIVITY 0x40
+
+/* fbFlowReplace */
+
+#define MODE_AUTO_TRANSMIT 0x01
+#define MODE_AUTO_RECEIVE 0x02
+#define MODE_ERROR_CHAR 0x04
+#define MODE_NULL_STRIPPING 0x08
+#define MODE_BREAK_CHAR 0x10
+#define MODE_RTS_CONTROL 0x40
+#define MODE_RTS_HANDSHAKE 0x80
+#define MODE_TRANSMIT_TOGGLE 0xC0
+
+/* fbTimeout */
+
+#define MODE_NO_WRITE_TIMEOUT 0x01
+#define MODE_READ_TIMEOUT 0x02
+#define MODE_WAIT_READ_TIMEOUT 0x04
+#define MODE_NOWAIT_READ_TIMEOUT 0x06
+
+#pragma pack(1)
+
+typedef struct _DCBINFO { /* dcbinf */
+ USHORT usWriteTimeout;
+ USHORT usReadTimeout;
+ BYTE fbCtlHndShake;
+ BYTE fbFlowReplace;
+ BYTE fbTimeout;
+ BYTE bErrorReplacementChar;
+ BYTE bBreakReplacementChar;
+ BYTE bXONChar;
+ BYTE bXOFFChar;
+} DCBINFO, *PDCBINFO;
+
+typedef struct _TRACKLAYOUT { /* trckl */
+ BYTE bCommand;
+ USHORT usHead;
+ USHORT usCylinder;
+ USHORT usFirstSector;
+ USHORT cSectors;
+ struct {
+ USHORT usSectorNumber;
+ USHORT usSectorSize;
+ } TrackTable[1];
+} TRACKLAYOUT, *PTRACKLAYOUT;
+
+#define DEVTYPE_48TPI 0x0000
+#define DEVTYPE_96TPI 0x0001
+#define DEVTYPE_35 0x0002
+#define DEVTYPE_8SD 0x0003
+#define DEVTYPE_8DD 0x0004
+#define DEVTYPE_FIXED 0x0005
+#define DEVTYPE_TAPE 0x0006
+#define DEVTYPE_UNKNOWN 0x0007
+
+typedef struct _BIOSPARAMETERBLOCK { /* bspblk */
+ USHORT usBytesPerSector;
+ BYTE bSectorsPerCluster;
+ USHORT usReservedSectors;
+ BYTE cFATs;
+ USHORT cRootEntries;
+ USHORT cSectors;
+ BYTE bMedia;
+ USHORT usSectorsPerFAT;
+ USHORT usSectorsPerTrack;
+ USHORT cHeads;
+ ULONG cHiddenSectors;
+ ULONG cLargeSectors;
+ BYTE abReserved[6];
+ USHORT cCylinders;
+ BYTE bDeviceType;
+ USHORT fsDeviceAttr;
+} BIOSPARAMETERBLOCK, *PBIOSPARAMETERBLOCK;
+
+typedef struct _SCREENGROUP { /* scrgrp */
+ USHORT idScreenGrp;
+ USHORT fTerminate;
+} SCREENGROUP, *PSCREENGROUP;
+
+typedef struct _FRAME { /* frm */
+ BYTE bCharsPerLine;
+ BYTE bLinesPerInch;
+} FRAME, *PFRAME;
+
+typedef struct _KBDTYPE { /* kbdtyp */
+ USHORT usType;
+ USHORT reserved1;
+ USHORT reserved2;
+} KBDTYPE, *PKBDTYPE;
+
+typedef struct _LINECONTROL { /* lnctl */
+ BYTE bDataBits;
+ BYTE bParity;
+ BYTE bStopBits;
+ BYTE fTransBreak;
+} LINECONTROL, *PLINECONTROL;
+
+/* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT */
+
+#define DTR_ON 0x01
+#define RTS_ON 0x02
+
+/* MODEMSTATUS.fbModemOff */
+
+#define DTR_OFF 0xFE
+#define RTS_OFF 0xFD
+
+typedef struct _MODEMSTATUS { /* mdmst */
+ BYTE fbModemOn;
+ BYTE fbModemOff;
+} MODEMSTATUS, *PMODEMSTATUS;
+
+typedef struct _TRACKFORMAT { /* trckfmt */
+ BYTE bCommand;
+ USHORT usHead;
+ USHORT usCylinder;
+ USHORT usReserved;
+ USHORT cSectors;
+ struct {
+ BYTE bCylinder;
+ BYTE bHead;
+ BYTE idSector;
+ BYTE bBytesSector;
+ } FormatTable[1];
+} TRACKFORMAT, *PTRACKFORMAT;
+
+typedef struct _RXQUEUE { /* rxq */
+ USHORT cch;
+ USHORT cb;
+} RXQUEUE, *PRXQUEUE;
+
+typedef struct _DEVICEPARAMETERBLOCK { /* dvpblck */
+ USHORT reserved1;
+ USHORT cCylinders;
+ USHORT cHeads;
+ USHORT cSectorsPerTrack;
+ USHORT reserved2;
+ USHORT reserved3;
+ USHORT reserved4;
+ USHORT reserved5;
+} DEVICEPARAMETERBLOCK, *PDEVICEPARAMETERBLOCK;
+
+#ifndef PFN
+typedef int (*PFN)();
+#endif
+
+typedef struct _PTRDRAWFUNCTION { /* ptrdfnc */
+ USHORT usReturnCode;
+ PFN pfnDraw;
+ CHAR* pchDataSeg;
+} PTRDRAWFUNCTION, *PPTRDRAWFUNCTION;
+
+typedef struct _PTRDRAWADDRESS { /* ptrdaddr */
+ USHORT reserved;
+ PTRDRAWFUNCTION ptrdfnc;
+} PTRDRAWADDRESS, *PPTRDRAWADDRESS;
+
+typedef struct _SHIFTSTATE { /* shftst */
+ USHORT fsState;
+ BYTE fNLS;
+} SHIFTSTATE, *PSHIFTSTATE;
+
+/* HOTKEY.fsHotKey/SHIFTSTATE.fsState */
+
+//#define RIGHTSHIFT 0x0001
+//#define LEFTSHIFT 0x0002
+//#define CONTROL 0x0004
+//#define ALT 0x0008
+//#define SCROLLLOCK_ON 0x0010
+//#define NUMLOCK_ON 0x0020
+//#define CAPSLOCK_ON 0x0040
+//#define INSERT_ON 0x0080
+//#define LEFTCONTROL 0x0100
+//#define LEFTALT 0x0200
+//#define RIGHTCONTROL 0x0400
+//#define RIGHTALT 0x0800
+//#define SCROLLLOCK 0x1000
+//#define NUMLOCK 0x2000
+//#define CAPSLOCK 0x4000
+//#define SYSREQ 0x8000
+
+typedef struct _HOTKEY { /* htky */
+ USHORT fsHotKey;
+ UCHAR uchScancodeMake;
+ UCHAR uchScancodeBreak;
+ USHORT idHotKey;
+} HOTKEY, *PHOTKEY;
+
+typedef struct _MONITORPOSITION { /* mnpos */
+ USHORT fPosition;
+ USHORT index;
+ ULONG pbInBuf;
+ USHORT offOutBuf;
+} MONITORPOSITION, *PMONITORPOSITION;
+
+typedef struct _RATEDELAY { /* rtdly */
+ USHORT usDelay;
+ USHORT usRate;
+} RATEDELAY, *PRATEDELAY;
+
+typedef struct _CODEPAGEINFO { /* cpi */
+ PBYTE pbTransTable;
+ USHORT idCodePage;
+ USHORT idTable;
+} CODEPAGEINFO, *PCODEPAGEINFO;
+
+typedef struct _CPID { /* cpid */
+ USHORT idCodePage;
+ USHORT Reserved;
+} CPID, *PCPID;
+
+typedef struct _LDTADDRINFO { /* ldtaddr */
+ PULONG pulPhysAddr;
+ USHORT cb;
+} LDTADDRINFO, *PLDTADDRINFO;
+
+typedef struct _PTRDRAWDATA { /* ptrdd */
+ USHORT cb;
+ USHORT usConfig;
+ USHORT usFlag;
+} PTRDRAWDATA, *PPTRDRAWDATA;
+
+typedef struct _FONTINFO {
+ USHORT idCodePage;
+ USHORT idFont;
+} FONTINFO, *PFONTINFO;
+
+#pragma pack()
+