File:  [OS/2 SDKs] / pmsdk / include / bsedev.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 12:28:36 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: pmsdk-1989, HEAD
Microsoft OS/2 SDK PM 02-24-1989

/***************************************************************************\
*
* Module Name: BSEDEV.H
*
* OS/2 Structures and constants for use with DosDevIOCtl
*
* Copyright (c) 1989  Microsoft Corporation
*
\***************************************************************************/

/* 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   PTR_GETPTRDRAWADDRESS  0x0072

/* 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

/* 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_QUTRYACTIVEFONT   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_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

/* 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

#define MOU_NOWAIT  0x0000
#define MOU_WAIT    0x0001

#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

typedef struct _DCBINFO {    /* dcbinf */
    USHORT usWriteTimeout;
    USHORT usReadTimeout;
    BYTE   fbCtlHndShake;
    BYTE   fbFlowReplace;
    BYTE   fbTimeout;
    BYTE   bErrorReplacementChar;
    BYTE   bBreakReplacementChar;
    BYTE   bXONChar;
    BYTE   bXOFFChar;
} DCBINFO;
typedef DCBINFO FAR *PDCBINFO;

typedef struct _TRACKLAYOUT {    /* trckl */
    BYTE   bCommand;
    USHORT usHead;
    USHORT usCylinder;
    USHORT usFirstSector;
    USHORT cSectors;
    struct {
        USHORT usSectorNumber;
        USHORT usSectorSize;
    } TrackTable[1];
} TRACKLAYOUT;
typedef TRACKLAYOUT FAR *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;
    USHORT cCylinders;
    BYTE   bDeviceType;
    USHORT fsDeviceAttr;
} BIOSPARAMETERBLOCK;
typedef BIOSPARAMETERBLOCK FAR *PBIOSPARAMETERBLOCK;

typedef struct _SCREENGROUP {    /* scrgrp */
    USHORT idScreenGrp;
    USHORT fTerminate;
} SCREENGROUP;
typedef SCREENGROUP FAR *PSCREENGROUP;

typedef struct _FRAME {    /* frm */
    BYTE bCharsPerLine;
    BYTE bLinesPerInch;
} FRAME;
typedef FRAME FAR *PFRAME;

typedef struct _KBDTYPE {    /* kbdtyp */
    USHORT usType;
    USHORT reserved1;
    USHORT reserved2;
} KBDTYPE;
typedef KBDTYPE FAR *PKBDTYPE;

typedef struct _LINECONTROL {    /* lnctl */
    BYTE bDataBits;
    BYTE bParity;
    BYTE bStopBits;
    BYTE fTransBreak;
} LINECONTROL;
typedef LINECONTROL FAR *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;
typedef MODEMSTATUS FAR *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;
typedef TRACKFORMAT FAR *PTRACKFORMAT;

typedef struct _RXQUEUE {    /* rxq */
    USHORT cch;
    USHORT cb;
} RXQUEUE;
typedef RXQUEUE FAR *PRXQUEUE;

typedef struct _DEVICEPARAMETERBLOCK {    /* dvpblck */
    USHORT reserved1;
    USHORT cCylinders;
    USHORT cHeads;
    USHORT cSectorsPerTrack;
    USHORT reserved2;
    USHORT reserved3;
    USHORT reserved4;
    USHORT reserved5;
} DEVICEPARAMETERBLOCK;
typedef DEVICEPARAMETERBLOCK FAR *PDEVICEPARAMETERBLOCK;

typedef struct _PTRDRAWFUNCTION {    /* ptrdfnc */
    USHORT usReturnCode;
    PFN pfnDraw;
    PCH pchDataSeg;
} PTRDRAWFUNCTION;
typedef PTRDRAWFUNCTION FAR *PPTRDRAWFUNCTION;

typedef struct _SHIFTSTATE {    /* shftst */
    USHORT fsState;
    BYTE   fNLS;
} SHIFTSTATE;
typedef SHIFTSTATE FAR *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;
typedef HOTKEY FAR *PHOTKEY;

typedef struct _MONITORPOSITION {    /* mnpos */
    USHORT fPosition;
    USHORT index;
    ULONG  pbInBuf;
    USHORT offOutBuf;
} MONITORPOSITION;
typedef MONITORPOSITION FAR *PMONITORPOSITION;

typedef struct _RATEDELAY {    /* rtdly */
    USHORT usDelay;
    USHORT usRate;
} RATEDELAY;
typedef RATEDELAY FAR *PRATEDELAY;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.