Annotation of pmsdk/include/bsedev.h, revision 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.