Pointers

      TCB field TCBReqPkt points to the Request Packet pre-allocated to a thread.
    Locations
      Allocated from the Request Packet Pool in the System Arena.
    VM Owner
      reqpkt1 (0xff40).

    Format

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │Packet          │+0    │20    │S   │Device Driver Request Packet            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktLen          │+0    │1     │B   │length in bytes of packet               │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktUnit         │+1    │1     │B   │subunit number of block device          │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktCmd          │+2    │1     │B   │command code                            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktStatus       │+3    │2     │W   │status word                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktFlag         │+5    │1     │B   │disk driver internal flags              │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+6    │3     │B   │reserved                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktDOSLink      │+5    │4     │D   │                                        │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktDevLink      │+9    │4     │D   │device multiple-request link            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktData         │+d    │18    │S   │data pertaining to specific packet      │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │10    │S   │Generic IOCTL                           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIOCategory     │+d    │1     │B   │Category Code                           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIOFunction     │+e    │1     │B   │Function code                           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIOParaPack     │+f    │4     │D   │pointer to parameter packet             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIODataPack     │+13   │4     │D   │pointer to data packet                  │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIOSFN          │+17   │2     │W   │(used by Spooler?)                      │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIOParaLen      │+19   │2     │w   │length of parameter packet              │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │GIODataLen      │+1b   │2     │W   │length of data packet                   │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │c     │S   │INIT Command for Base DDs (0 and 27)    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitcUnit       │+d    │1     │B   │number of units returned                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitpEnd        │+e    │4     │D   │pointer to free mem after dev           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitDevHlp      │+e    │4     │D   │address of Device Helper router         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitEcode       │+e    │2     │W   │size of code segment                    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitEdata       │+10   │2     │W   │size of data segment                    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitParms       │+12   │4     │D   │pointer parameters                      │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitpBPB        │+12   │4     │D   │pointer to BPBs                         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │Initdrv         │+16   │1     │B   │drive no. assigned to unit 0            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+17   │1     │B   │reserved                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │InitSysiData    │+18   │1     │B   │SysInit's DOSALIAS selector             │
    │(for resident   │      │      │    │                                        │
    │drivers only)   │      │      │    │                                        │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │d     │S   │query for extended capability command   │
    │                │      │      │    │(0x1d)                                  │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │3     │B   │reserved                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │DCS_Addr        │+10   │4     │W   │16                                      │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │VCS_Addr        │+14   │4     │W   │16                                      │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │6     │B   │Media Check command 1                   │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │MedChkmedia     │+d    │1     │B   │last media byte seen                    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │MedChkflaga     │+e    │1     │B   │-1=change 0=dont know 1=no change       │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │MedChkpVIDa     │+f    │4     │D   │pointer to VID                          │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │9     │S   │build BPB command 2                     │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │BldBPBmedia     │+d    │1     │B   │media byte                              │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │BldBPBbuffer    │+e    │4     │D   │scratch buffer                          │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │f     │S   │Read/Write IO commands 3, 4, 8, 9, 12,  │
    │                │      │      │    │24, 25, 26                              │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOmedia         │+d    │1     │B   │media byte                              │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOpData         │+e    │4     │D   │transfer address                        │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOcount         │+12   │2     │W   │count of bytes/sectors                  │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOstart         │+14   │2     │W   │starting sector (block)                 │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOPhysRBA       │+14   │4     │D   │physical starting sector                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │IOSFNsRBA       │+18   │2     │W   │for device only                         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │PktAdvise       │+1a   │2     │W   │for >= v12 only                         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │4     │S   │Device Open/Close commands 13 and 14    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │OCSFN           │+d    │2     │W   │sfn of open instance for virtualization │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │1     │S   │Start/Stop console commands (98, 99)    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │CStpSKG         │+d    │1     │B   │Screen/Keyboard number                  │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │                │+d    │6     │S   │De-install driver command 20            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │DINEndLocn      │+d    │4     │D   │                                        │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │DINLengthn      │+11   │2     │W   │                                        │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    

    PktStatus word masks

    ┌────────────┬────────┬────────────────────────────────────────┐
    │Name        │Bit Mask│Description                             │
    ├────────────┼────────┼────────────────────────────────────────┤
    │STERR       │0x8000  │Bit 15 - Error                          │
    ├────────────┼────────┼────────────────────────────────────────┤
    │STINTER     │0x0400  │Bit 10 - Interim character              │
    ├────────────┼────────┼────────────────────────────────────────┤
    │STBUI       │0x0200  │Bit  9 - Busy                           │
    ├────────────┼────────┼────────────────────────────────────────┤
    │STDON       │0x0100  │Bit  8 - Done                           │
    ├────────────┼────────┼────────────────────────────────────────┤
    │STECODE     │0x00ff  │Error code                              │
    ├────────────┼────────┼────────────────────────────────────────┤
    │WRECODE     │0       │                                        │
    └────────────┴────────┴────────────────────────────────────────┘
    

    PktFlag flags

    ┌────────────────┬────────┬────────────────────────────────────────┐
    │Name            │Flag    │Description                             │
    │                │value   │                                        │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │fPktInt13RP     │0x01    │Int 13 Request Packet                   │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │fPktCallOutDone │0x02    │Int 13 Callout completed                │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │fPktDiskIOTchd  │0x04    │Disk_IO has touched this packet         │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │STDON           │0x0100  │Bit  8 - Done                           │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │STECODE         │0x00ff  │Error code                              │
    ├────────────────┼────────┼────────────────────────────────────────┤
    │WRECODE         │0       │                                        │
    └────────────────┴────────┴────────────────────────────────────────┘
    

    See Device Driver Strategy Commands for a cross-reference of PktCmd command codes.


    [Back] [Next]