Annotation of pmsdk/include/bsedev.h, revision 1.1.1.1

1.1       root        1: /***************************************************************************\
                      2: *
                      3: * Module Name: BSEDEV.H
                      4: *
                      5: * OS/2 Structures and constants for use with DosDevIOCtl
                      6: *
                      7: * Copyright (c) 1989  Microsoft Corporation
                      8: *
                      9: \***************************************************************************/
                     10: 
                     11: /* Input and Output Control Categories */
                     12: 
                     13: #define IOCTL_ASYNC            0x0001
                     14: #define IOCTL_SCR_AND_PTRDRAW  0x0003
                     15: #define IOCTL_KEYBOARD         0x0004
                     16: #define IOCTL_PRINTER          0x0005
                     17: #define IOCTL_LIGHTPEN         0x0006
                     18: #define IOCTL_POINTINGDEVICE   0x0007
                     19: #define IOCTL_DISK             0x0008
                     20: #define IOCTL_PHYSICALDISK     0x0009
                     21: #define IOCTL_MONITOR          0x000A
                     22: #define IOCTL_GENERAL          0x000B
                     23: 
                     24: /* Serial-Device Control */
                     25: 
                     26: #define ASYNC_SETBAUDRATE     0x0041
                     27: #define ASYNC_SETLINECTRL     0x0042
                     28: #define ASYNC_TRANSMITIMM     0x0044
                     29: #define ASYNC_SETBREAKOFF     0x0045
                     30: #define ASYNC_SETMODEMCTRL    0x0046
                     31: #define ASYNC_SETBREAKON      0x004B
                     32: #define ASYNC_STOPTRANSMIT    0x0047
                     33: #define ASYNC_STARTTRANSMIT   0x0048
                     34: #define ASYNC_SETDCBINFO      0x0053
                     35: #define ASYNC_GETBAUDRATE     0x0061
                     36: #define ASYNC_GETLINECTRL     0x0062
                     37: #define ASYNC_GETCOMMSTATUS   0x0064
                     38: #define ASYNC_GETLINESTATUS   0x0065
                     39: #define ASYNC_GETMODEMOUTPUT  0x0066
                     40: #define ASYNC_GETMODEMINPUT   0x0067
                     41: #define ASYNC_GETINQUECOUNT   0x0068
                     42: #define ASYNC_GETOUTQUECOUNT  0x0069
                     43: #define ASYNC_GETCOMMERROR    0x006D
                     44: #define ASYNC_GETCOMMEVENT    0x0072
                     45: #define ASYNC_GETDCBINFO      0x0073
                     46: 
                     47: /* Screen/Pointer-Draw Control */
                     48: 
                     49: #define   PTR_GETPTRDRAWADDRESS  0x0072
                     50: 
                     51: /* Keyboard Control */
                     52: 
                     53: #define KBD_SETTRANSTABLE     0x0050
                     54: #define KBD_SETINPUTMODE      0x0051
                     55: #define KBD_SETINTERIMFLAG    0x0052
                     56: #define KBD_SETSHIFTSTATE     0x0053
                     57: #define KBD_SETTYPAMATICRATE  0x0054
                     58: #define KBD_SETFGNDSCREENGRP  0x0055
                     59: #define KBD_SETSESMGRHOTKEY   0x0056
                     60: #define KBD_SETFOCUS          0x0057
                     61: #define KBD_SETKCB            0x0058
                     62: #define KBD_SETNLS            0x005C
                     63: #define KBD_CREATE            0x005D
                     64: #define KBD_DESTROY           0x005E
                     65: #define KBD_GETINPUTMODE      0x0071
                     66: #define KBD_GETINTERIMFLAG    0x0072
                     67: #define KBD_GETSHIFTSTATE     0x0073
                     68: #define KBD_READCHAR          0x0074
                     69: #define KBD_PEEKCHAR          0x0075
                     70: #define KBD_GETSESMGRHOTKEY   0x0076
                     71: #define KBD_GETKEYBDTYPE      0x0077
                     72: #define KBD_GETCODEPAGEID     0x0078
                     73: #define KBD_XLATESCAN         0x0079
                     74: 
                     75: /* Printer Control */
                     76: 
                     77: #define PRT_SETFRAMECTL       0x0042
                     78: #define PRT_SETINFINITERETRY  0x0044
                     79: #define PRT_INITPRINTER       0x0046
                     80: #define PRT_ACTIVATEFONT      0x0048
                     81: #define PRT_GETFRAMECTL       0x0062
                     82: #define PRT_GETINFINITERETRY  0x0064
                     83: #define PRT_GETPRINTERSTATUS  0x0066
                     84: #define PRT_QUTRYACTIVEFONT   0x0069
                     85: #define PRT_VERIFYFONT        0x006A
                     86: 
                     87: /* Pointing-Device (Mouse) Control */
                     88: 
                     89: #define MOU_ALLOWPTRDRAW        0x0050
                     90: #define MOU_UPDATEDISPLAYMODE   0x0051
                     91: #define MOU_SCREENSWITCH        0x0052
                     92: #define MOU_SETSCALEFACTORS     0x0053
                     93: #define MOU_SETEVENTMASK        0x0054
                     94: #define MOU_SETHOTKEYBUTTON     0x0055
                     95: #define MOU_SETPTRSHAPE         0x0056
                     96: #define MOU_DRAWPTR             0x0057
                     97: #define MOU_REMOVEPTR           0x0058
                     98: #define MOU_SETPTRPOS           0x0059
                     99: #define MOU_SETPROTDRAWADDRESS  0x005A
                    100: #define MOU_SETREALDRAWADDRESS  0x005B
                    101: #define MOU_SETMOUSTATUS        0x005C
                    102: #define MOU_GETBUTTONCOUNT      0x0060
                    103: #define MOU_GETMICKEYCOUNT      0x0061
                    104: #define MOU_GETMOUSTATUS        0x0062
                    105: #define MOU_READEVENTQUE        0x0063
                    106: #define MOU_GETQUESTATUS        0x0064
                    107: #define MOU_GETEVENTMASK        0x0065
                    108: #define MOU_GETSCALEFACTORS     0x0066
                    109: #define MOU_GETPTRPOS           0x0067
                    110: #define MOU_GETPTRSHAPE         0x0068
                    111: #define MOU_GETHOTKEYBUTTON     0x0069
                    112: 
                    113: /* Disk/Diskette Control */
                    114: 
                    115: #define DSK_LOCKDRIVE         0x0000
                    116: #define DSK_UNLOCKDRIVE       0x0001
                    117: #define DSK_REDETERMINEMEDIA  0x0002
                    118: #define DSK_SETLOGICALMAP     0x0003
                    119: #define DSK_BLOCKREMOVABLE    0x0020
                    120: #define DSK_GETLOGICALMAP     0x0021
                    121: #define DSK_SETDEVICEPARAMS   0x0043
                    122: #define DSK_WRITETRACK        0x0044
                    123: #define DSK_FORMATVERIFY      0x0045
                    124: #define DSK_GETDEVICEPARAMS   0x0063
                    125: #define DSK_READTRACK         0x0064
                    126: #define DSK_VERIFYTRACK       0x0065
                    127: 
                    128: /* Physical-Disk Control */
                    129: 
                    130: #define PDSK_LOCKPHYSDRIVE        0x0000
                    131: #define PDSK_UNLOCKPHYSDRIVE      0x0001
                    132: #define PDSK_WRITEPHYSTRACK       0x0044
                    133: #define PDSK_GETPHYSDEVICEPARAMS  0x0063
                    134: #define PDSK_READPHYSTRACK        0x0064
                    135: #define PDSK_VERIFYPHYSTRACK      0x0065
                    136: 
                    137: /* Character-Monitor Control */
                    138: 
                    139: #define MON_REGISTERMONITOR   0x0040
                    140: 
                    141: /* General Device Control */
                    142: 
                    143: #define DEV_FLUSHINPUT       0x0001
                    144: #define DEV_FLUSHOUTPUT      0x0002
                    145: #define DEV_QUERYMONSUPPORT  0x0060
                    146: 
                    147: 
                    148: /* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON, ASYNC_SETMODEMCTRL */
                    149: 
                    150: #define RX_QUE_OVERRUN       0x0001
                    151: #define RX_HARDWARE_OVERRUN  0x0002
                    152: #define PARITY_ERROR         0x0004
                    153: #define FRAMING_ERROR        0x0008
                    154: 
                    155: /* ASYNC_GETCOMMEVENT */
                    156: 
                    157: #define CHAR_RECEIVED   0x0001
                    158: #define LAST_CHAR_SENT  0x0004
                    159: #define CTS_CHANGED     0x0008
                    160: #define DSR_CHANGED     0x0010
                    161: #define DCD_CHANGED     0x0020
                    162: #define BREAK_DETECTED  0x0040
                    163: #define ERROR_OCCURRED  0x0080
                    164: #define RI_DETECTED     0x0100
                    165: 
                    166: /* ASYNC_GETCOMMSTATUS */
                    167: 
                    168: #define TX_WAITING_FOR_CTS        0x0001
                    169: #define TX_WAITING_FOR_DSR        0x0002
                    170: #define TX_WAITING_FOR_DCD        0x0004
                    171: #define TX_WAITING_FOR_XON        0x0008
                    172: #define TX_WAITING_TO_SEND_XON    0x0010
                    173: #define TX_WAITING_WHILE_BREAK_ON  0x0020
                    174: #define TX_WAITING_TO_SEND_IMM    0x0040
                    175: #define RX_WAITING_FOR_DSR        0x0080
                    176: 
                    177: /* ASYNC_GETLINESTATUS */
                    178: 
                    179: #define WRITE_REQUEST_QUEUED   0x0001
                    180: #define DATA_IN_TX_QUE         0x0002
                    181: #define HARDWARE_TRANSMITTING  0x0004
                    182: #define CHAR_READY_TO_SEND_IMM 0x0008
                    183: #define WAITING_TO_SEND_XON    0x0010
                    184: #define WAITING_TO_SEND_XOFF   0x0020
                    185: 
                    186: /* ASYNC_GETMODEMINPUT */
                    187: 
                    188: #define CTS_ON 0x10
                    189: #define DSR_ON 0x20
                    190: #define RI_ON  0x40
                    191: #define DCD_ON 0x80
                    192: 
                    193: /* DSK_SETDEVICEPARAMS */
                    194: 
                    195: #define BUILD_BPB_FROM_MEDIUM  0x00
                    196: #define REPLACE_BPB_FOR_DEVICE 0x01
                    197: #define REPLACE_BPB_FOR_MEDIUM 0x02
                    198: 
                    199: /* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*/
                    200: 
                    201: #define ASCII_MODE  0x00
                    202: #define BINARY_MODE 0x80
                    203: 
                    204: /* KBD_GETINTERIMFLAG */
                    205: 
                    206: #define CONVERSION_REQUEST  0x20
                    207: #define INTERIM_CHAR        0x80
                    208: 
                    209: /* KBD_GETSESMGRHOTKEY */
                    210: 
                    211: #define HOTKEY_MAX_COUNT      0x0000
                    212: #define HOTKEY_CURRENT_COUNT  0x0001
                    213: 
                    214: /* KBD_PEEKCHAR */
                    215: 
                    216: #define KBD_DATA_RECEIVED  0x0001
                    217: #define KBD_DATA_BINARY    0x8000
                    218: 
                    219: /* KBD_READCHAR */
                    220: 
                    221: #define KBD_READ_WAIT    0x0000
                    222: #define KBD_READ_NOWAIT  0x8000
                    223: 
                    224: /* KBD_SETINPUTMODE */
                    225: 
                    226: #define SHIFT_REPORT_MODE  0x01
                    227: 
                    228: #ifndef INCL_MOU
                    229: 
                    230: #define MOUSE_MOTION                0x0001
                    231: #define MOUSE_MOTION_WITH_BN1_DOWN  0x0002
                    232: #define MOUSE_BN1_DOWN              0x0004
                    233: #define MOUSE_MOTION_WITH_BN2_DOWN  0x0008
                    234: #define MOUSE_BN2_DOWN              0x0010
                    235: #define MOUSE_MOTION_WITH_BN3_DOWN  0x0020
                    236: #define MOUSE_BN3_DOWN              0x0040
                    237: 
                    238: #define MHK_BUTTON1    0x0001
                    239: #define MHK_BUTTON2    0x0002
                    240: #define MHK_BUTTON3    0x0004
                    241: 
                    242: #define MOU_NOWAIT  0x0000
                    243: #define MOU_WAIT    0x0001
                    244: 
                    245: #endif /* #ifndef INCL_MOU */
                    246: 
                    247: /* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON */
                    248: 
                    249: #define MHK_NO_HOTKEY  0x0000
                    250: 
                    251: /* MOU_GETMOUSTATUS */
                    252: 
                    253: #define MOUSE_QUEUEBUSY         0x0001
                    254: #define MOUSE_BLOCKREAD         0x0002
                    255: #define MOUSE_FLUSH             0x0004
                    256: #define MOUSE_UNSUPPORTED_MODE  0x0008
                    257: #define MOUSE_DISABLED          0x0100
                    258: #define MOUSE_MICKEYS           0x0200
                    259: 
                    260: /* PRT_GETPRINTERSTATUS */
                    261: 
                    262: #define PRINTER_TIMEOUT       0x0001
                    263: #define PRINTER_IO_ERROR      0x0008
                    264: #define PRINTER_SELECTED      0x0010
                    265: #define PRINTER_OUT_OF_PAPER  0x0020
                    266: #define PRINTER_ACKNOWLEDGED  0x0040
                    267: #define PRINTER_NOT_BUSY      0x0080
                    268: 
                    269: /* fbCtlHndShake */
                    270: 
                    271: #define MODE_DTR_CONTROL      0x01
                    272: #define MODE_DTR_HANDSHAKE    0x02
                    273: #define MODE_CTS_HANDSHAKE    0x08
                    274: #define MODE_DSR_HANDSHAKE    0x10
                    275: #define MODE_DCD_HANDSHAKE    0x20
                    276: #define MODE_DSR_SENSITIVITY  0x40
                    277: 
                    278: /* fbFlowReplace */
                    279: 
                    280: #define MODE_AUTO_TRANSMIT    0x01
                    281: #define MODE_AUTO_RECEIVE     0x02
                    282: #define MODE_ERROR_CHAR       0x04
                    283: #define MODE_NULL_STRIPPING   0x08
                    284: #define MODE_BREAK_CHAR       0x10
                    285: #define MODE_RTS_CONTROL      0x40
                    286: #define MODE_RTS_HANDSHAKE    0x80
                    287: #define MODE_TRANSMIT_TOGGLE  0xC0
                    288: 
                    289: /* fbTimeout */
                    290: 
                    291: #define MODE_NO_WRITE_TIMEOUT     0x01
                    292: #define MODE_READ_TIMEOUT         0x02
                    293: #define MODE_WAIT_READ_TIMEOUT    0x04
                    294: #define MODE_NOWAIT_READ_TIMEOUT  0x06
                    295: 
                    296: typedef struct _DCBINFO {    /* dcbinf */
                    297:     USHORT usWriteTimeout;
                    298:     USHORT usReadTimeout;
                    299:     BYTE   fbCtlHndShake;
                    300:     BYTE   fbFlowReplace;
                    301:     BYTE   fbTimeout;
                    302:     BYTE   bErrorReplacementChar;
                    303:     BYTE   bBreakReplacementChar;
                    304:     BYTE   bXONChar;
                    305:     BYTE   bXOFFChar;
                    306: } DCBINFO;
                    307: typedef DCBINFO FAR *PDCBINFO;
                    308: 
                    309: typedef struct _TRACKLAYOUT {    /* trckl */
                    310:     BYTE   bCommand;
                    311:     USHORT usHead;
                    312:     USHORT usCylinder;
                    313:     USHORT usFirstSector;
                    314:     USHORT cSectors;
                    315:     struct {
                    316:         USHORT usSectorNumber;
                    317:         USHORT usSectorSize;
                    318:     } TrackTable[1];
                    319: } TRACKLAYOUT;
                    320: typedef TRACKLAYOUT FAR *PTRACKLAYOUT;
                    321: 
                    322: #define DEVTYPE_48TPI    0x0000
                    323: #define DEVTYPE_96TPI    0x0001
                    324: #define DEVTYPE_35       0x0002
                    325: #define DEVTYPE_8SD      0x0003
                    326: #define DEVTYPE_8DD      0x0004
                    327: #define DEVTYPE_FIXED    0x0005
                    328: #define DEVTYPE_TAPE     0x0006
                    329: #define DEVTYPE_UNKNOWN  0x0007
                    330: 
                    331: typedef struct _BIOSPARAMETERBLOCK {    /* bspblk */
                    332:     USHORT usBytesPerSector;
                    333:     BYTE   bSectorsPerCluster;
                    334:     USHORT usReservedSectors;
                    335:     BYTE   cFATs;
                    336:     USHORT cRootEntries;
                    337:     USHORT cSectors;
                    338:     BYTE   bMedia;
                    339:     USHORT usSectorsPerFAT;
                    340:     USHORT usSectorsPerTrack;
                    341:     USHORT cHeads;
                    342:     ULONG  cHiddenSectors;
                    343:     ULONG  cLargeSectors;
                    344:     USHORT cCylinders;
                    345:     BYTE   bDeviceType;
                    346:     USHORT fsDeviceAttr;
                    347: } BIOSPARAMETERBLOCK;
                    348: typedef BIOSPARAMETERBLOCK FAR *PBIOSPARAMETERBLOCK;
                    349: 
                    350: typedef struct _SCREENGROUP {    /* scrgrp */
                    351:     USHORT idScreenGrp;
                    352:     USHORT fTerminate;
                    353: } SCREENGROUP;
                    354: typedef SCREENGROUP FAR *PSCREENGROUP;
                    355: 
                    356: typedef struct _FRAME {    /* frm */
                    357:     BYTE bCharsPerLine;
                    358:     BYTE bLinesPerInch;
                    359: } FRAME;
                    360: typedef FRAME FAR *PFRAME;
                    361: 
                    362: typedef struct _KBDTYPE {    /* kbdtyp */
                    363:     USHORT usType;
                    364:     USHORT reserved1;
                    365:     USHORT reserved2;
                    366: } KBDTYPE;
                    367: typedef KBDTYPE FAR *PKBDTYPE;
                    368: 
                    369: typedef struct _LINECONTROL {    /* lnctl */
                    370:     BYTE bDataBits;
                    371:     BYTE bParity;
                    372:     BYTE bStopBits;
                    373:     BYTE fTransBreak;
                    374: } LINECONTROL;
                    375: typedef LINECONTROL FAR *PLINECONTROL;
                    376: 
                    377: /* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT */
                    378: 
                    379: #define DTR_ON  0x01
                    380: #define RTS_ON  0x02
                    381: 
                    382: /* MODEMSTATUS.fbModemOff */
                    383: 
                    384: #define DTR_OFF  0xFE
                    385: #define RTS_OFF  0xFD
                    386: 
                    387: typedef struct _MODEMSTATUS {    /* mdmst */
                    388:     BYTE fbModemOn;
                    389:     BYTE fbModemOff;
                    390: } MODEMSTATUS;
                    391: typedef MODEMSTATUS FAR *PMODEMSTATUS;
                    392: 
                    393: typedef struct _TRACKFORMAT {    /* trckfmt */
                    394:     BYTE bCommand;
                    395:     USHORT usHead;
                    396:     USHORT usCylinder;
                    397:     USHORT usReserved;
                    398:     USHORT cSectors;
                    399:     struct {
                    400:         BYTE bCylinder;
                    401:         BYTE bHead;
                    402:         BYTE idSector;
                    403:         BYTE bBytesSector;
                    404:     } FormatTable[1];
                    405: } TRACKFORMAT;
                    406: typedef TRACKFORMAT FAR *PTRACKFORMAT;
                    407: 
                    408: typedef struct _RXQUEUE {    /* rxq */
                    409:     USHORT cch;
                    410:     USHORT cb;
                    411: } RXQUEUE;
                    412: typedef RXQUEUE FAR *PRXQUEUE;
                    413: 
                    414: typedef struct _DEVICEPARAMETERBLOCK {    /* dvpblck */
                    415:     USHORT reserved1;
                    416:     USHORT cCylinders;
                    417:     USHORT cHeads;
                    418:     USHORT cSectorsPerTrack;
                    419:     USHORT reserved2;
                    420:     USHORT reserved3;
                    421:     USHORT reserved4;
                    422:     USHORT reserved5;
                    423: } DEVICEPARAMETERBLOCK;
                    424: typedef DEVICEPARAMETERBLOCK FAR *PDEVICEPARAMETERBLOCK;
                    425: 
                    426: typedef struct _PTRDRAWFUNCTION {    /* ptrdfnc */
                    427:     USHORT usReturnCode;
                    428:     PFN pfnDraw;
                    429:     PCH pchDataSeg;
                    430: } PTRDRAWFUNCTION;
                    431: typedef PTRDRAWFUNCTION FAR *PPTRDRAWFUNCTION;
                    432: 
                    433: typedef struct _SHIFTSTATE {    /* shftst */
                    434:     USHORT fsState;
                    435:     BYTE   fNLS;
                    436: } SHIFTSTATE;
                    437: typedef SHIFTSTATE FAR *PSHIFTSTATE;
                    438: 
                    439: /* HOTKEY.fsHotKey/SHIFTSTATE.fsState */
                    440: 
                    441: #define RIGHTSHIFT     0x0001
                    442: #define LEFTSHIFT      0x0002
                    443: #define CONTROL        0x0004
                    444: #define ALT            0x0008
                    445: #define SCROLLLOCK_ON  0x0010
                    446: #define NUMLOCK_ON     0x0020
                    447: #define CAPSLOCK_ON    0x0040
                    448: #define INSERT_ON      0x0080
                    449: #define LEFTCONTROL    0x0100
                    450: #define LEFTALT        0x0200
                    451: #define RIGHTCONTROL   0x0400
                    452: #define RIGHTALT       0x0800
                    453: #define SCROLLLOCK     0x1000
                    454: #define NUMLOCK        0x2000
                    455: #define CAPSLOCK       0x4000
                    456: #define SYSREQ         0x8000
                    457: 
                    458: typedef struct _HOTKEY {    /* htky */
                    459:     USHORT fsHotKey;
                    460:     UCHAR  uchScancodeMake;
                    461:     UCHAR  uchScancodeBreak;
                    462:     USHORT idHotKey;
                    463: } HOTKEY;
                    464: typedef HOTKEY FAR *PHOTKEY;
                    465: 
                    466: typedef struct _MONITORPOSITION {    /* mnpos */
                    467:     USHORT fPosition;
                    468:     USHORT index;
                    469:     ULONG  pbInBuf;
                    470:     USHORT offOutBuf;
                    471: } MONITORPOSITION;
                    472: typedef MONITORPOSITION FAR *PMONITORPOSITION;
                    473: 
                    474: typedef struct _RATEDELAY {    /* rtdly */
                    475:     USHORT usDelay;
                    476:     USHORT usRate;
                    477: } RATEDELAY;
                    478: 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.