summaryrefslogblamecommitdiffstats
path: root/private/mvdm/vdmredir/vrdlcdbg.h
blob: 38198f15638aae8ba82c0a5d69f8aa0f5bcd5563 (plain) (tree)


























































































































































































                                                                                                                    
/*++

Copyright (c) 1991  Microsoft Corporation

Module Name:

    vrdlcdbg.h

Abstract:

    contains prototypes etc for DLC dump/diagnostic functions in VrDlcDbg.c

Author:

    Richard L Firth (rfirth) 30-Apr-1992

Revision History:

--*/

//
// CCB return codes valid in DOS mode
// See IBM Local Area Network Tech. Ref. Appendix B
//

#define CCB_COMMAND_IN_PROGRESS     0xff
#define CCB_SUCCESS                 0x00
#define CCB_INVALID_COMMAND         0x01
#define CCB_ALREADY_PENDING         0x02
#define CCB_ADAPTER_NOT_CLOSED      0x03
#define CCB_ADAPTER_NOT_OPEN        0x04
#define CCB_PARAMETERS_MISSING      0x05
#define CCB_INVALID_OPTION          0x06
#define CCB_COMMAND_CANCELLED       0x07
#define CCB_UNAUTHORIZED_ACCESS     0x08
#define CCB_ADAPTER_NOT_INITIALIZED 0x09
#define CCB_CANCELLED_BY_USER       0x0a
#define CCB_CANCELLED_IN_PROGRESS   0x0b
#define CCB_SUCCESS_ADAPTER_NOT_OPEN 0x0c

// hole - 0x0d to 0x0f

#define CCB_NETBIOS_FAILURE         0x10
#define CCB_TIMER_ERROR             0x11
#define CCB_NEED_MORE_WORK_AREA     0x12
#define CCB_INVALID_LOG_ID          0x13
#define CCB_INVALID_SHARED_SEGMENT  0x14
#define CCB_LOST_LOG_DATA           0x15
#define CCB_BUFFER_TOO_BIG          0x16
#define CCB_NETBIOS_CLASH           0x17
#define CCB_INVALID_SAP_BUFFER      0x18
#define CCB_NOT_ENOUGH_BUFFERS      0x19
#define CCB_USER_BUFFER_TOO_BIG     0x1a
#define CCB_INVALID_PARAMETER_POINTER 0x1b
#define CCB_INVALID_TABLE_POINTER   0x1c
#define CCB_INVALID_ADAPTER         0x1d
#define CCB_INVALID_FUNCTION_ADDRESS 0x1e

// hole - 0x1f

#define CCB_DATA_LOST_NO_BUFFERS    0x20
#define CCB_DATA_LOST_NO_SPACE      0x21
#define CCB_TRANSMIT_FS_ERROR       0x22
#define CCB_TRANSMIT_ERROR          0x23
#define CCB_UNAUTHORIZED_MAC_FRAME  0x24
#define CCB_MAX_COMMANDS_EXCEEDED   0x25
#define CCB_UNRECOGNIZED_CORRELATOR 0x26    // Not Used
#define CCB_LINK_NOT_OPEN           0x27
#define CCB_INVALID_FRAME_LENGTH    0x28

// hole - 0x29 to 0x2f

#define CCB_NOT_ENOUGH_BUFFERS_OPEN 0x30

// hole - 0x31

#define CCB_INVALID_NODE_ADDRESS    0x32
#define CCB_INVALID_RECEIVE_LENGTH  0x33
#define CCB_INVALID_TRANSMIT_LENGTH 0x34

// hole - 0x35 to 0x3f

#define CCB_INVALID_STATION_ID      0x40
#define CCB_PROTOCOL_ERROR          0x41
#define CCB_PARAMETER_EXCEEDS_MAX   0x42
#define CCB_INVALID_SAP_VALUE       0x43
#define CCB_INVALID_ROUTING_LENGTH  0x44
#define CCB_INVALID_GROUP_SAP       0x45
#define CCB_NOT_ENOUGH_LINK_STATIONS 0x46
#define CCB_CANNOT_CLOSE_SAP        0x47
#define CCB_CANNOT_CLOSE_GROUP_SAP  0x48
#define CCB_GROUP_SAP_FULL          0x49
#define CCB_SEQUENCE_ERROR          0x4a
#define CCB_STATION_CLOSED_NO_ACK   0x4b
#define CCB_COMMANDS_PENDING        0x4c
#define CCB_CANNOT_CONNECT          0x4d
#define CCB_SAP_NOT_IN_GROUP        0x4e
#define CCB_INVALID_REMOTE_ADDRESS  0x4f

#define MAX_CCB1_ERROR              CCB_INVALID_REMOTE_ADDRESS

#define NUMBER_OF_CCB1_ERRORS       (MAX_CCB1_ERROR + 1)    // including holes

//
// Error macros
//

#define IS_VALID_CCB1_COMMAND(command)  (command <= MAX_CCB1_COMMAND)
#define IS_VALID_CCB1_ERROR(error)      (error <= MAX_CCB1_ERROR)

//
// prototypes
//

VOID
DumpCcb(
    IN PVOID Ccb,
    IN BOOL DumpAll,
    IN BOOL CcbIsInput,
    IN BOOL IsDos,
    IN WORD Segment OPTIONAL,
    IN WORD Offset OPTIONAL
    );

VOID
DumpDosDlcBufferPool(
    IN PDOS_DLC_BUFFER_POOL PoolDescriptor
    );

VOID
DumpDosDlcBufferChain(
    IN DOS_ADDRESS DosAddress,
    IN DWORD BufferCount
    );

VOID
DumpReceiveDataBuffer(
    IN PVOID Buffer,
    IN BOOL IsDos,
    IN WORD Segment,
    IN WORD Offset
    );

LPSTR
MapCcbRetcode(
    IN BYTE Retcode
    );

BOOL
IsCcbErrorCodeAllowable(
    IN BYTE CcbCommand,
    IN BYTE CcbErrorCode
    );

BOOL
IsCcbErrorCodeValid(
    IN BYTE CcbErrorCode
    );

BOOL
IsCcbCommandValid(
    IN BYTE CcbCommand
    );

LPSTR
MapCcbCommandToName(
    IN BYTE CcbCommand
    );

VOID
DumpDosAdapter(
    IN DOS_ADAPTER* pDosAdapter
    );

//
// debug conditional macros
//

#if DBG
#define CHECK_CCB_COMMAND(pccb) \
            ASSERT(IsCcbCommandValid(((PLLC_DOS_CCB)pccb)->uchDlcCommand))
#define CHECK_CCB_RETCODE(pccb) \
            ASSERT(IsCcbErrorCodeAllowable(((PLLC_DOS_CCB)pccb)->uchDlcCommand, ((PLLC_DOS_CCB)pccb)->uchDlcStatus))
#else
#define CHECK_CCB_COMMAND(pccb)
#define CHECK_CCB_RETCODE(pccb)
#endif