📄 ciport.h
字号:
#define CIXCD_PMCS_PRIBPE 0X00004000 /* error */ /* CIDASH/SHAC Port Maint Control */#define CISHC_PMCS_SIMP 0x00000008 /* Simple Shac mode diag only */#define CISHC_PMCS_HC 0x00000010 /* Host access diag only */ /* Port Maintenance Control and */ /* Status Register Mask Bits */#define PMCSR_MIN 0x00000001 /* Maintenance timer initialize */#define PMCSR_MTD 0x00000002 /* Maintenance timer disable */#define PMCSR_MIE 0x00000004 /* Maintence interrupt enable */ /* Port Parameter Register Mask Bits */#define PPR_LPORT_ADDR 0x000000FF /* Local port station address */#define PPR_DIAG_INFO 0x00007F00 /* Diagnostic information */#define PPR_PPE_BIT 0X00008000 /* Port Parameter Extention Reg. Bit */#define PPR_L0100_CSZ 0x80000000 /* Cluster size( L0100 link module ) */#define PPR_CSZ 0xE0000000 /* Cluster size( new format ) */#define PPR_IBUF_LEN 0x1FFF0000 /* IBUF_LEN of port */ /* Port Parameter Extention Register */ /* Mask Bits */#define PPER_EAF 0x00000080 /* Explicit address format */#define PPER_MEM_NO 0x0000FF00 /* Member number for local port */#define PPER_NADP 0x00010000 /* NADP field supported in VCD */#define PPER_RDPS 0x00020000 /* RDP adapter support */#define PPER_ESS 0x00040000 /* Explicit state supported in VCD */ /* Port Parameter Extention-2 Register*/ /* Mask Bits */#define PPE2R_ASB_LEN 0x0000FFFF /* Requested adapter state block len.*/ /* CI750/CI780/CIBCI Port Status */ /* Register Mask Bits */#define CI7B_PS_MTE 0x80000000 /* Maintenance error */#define CI7B_PS_ERRS 0xFFFFFFFE /* PSR error bits */ /* CIBCA/CIXCD Port Status Register */ /* Mask Bits */#define CIBX_PS_MTE 0x00000100 /* Maintenance error */#define CIBX_PS_MIF 0x00000200 /* Maintenance interrupt flag */#define CIBX_PS_UNIN 0x00000400 /* CIBCA/CIXCD uninitialized */#define CIBX_PS_NRSPE 0x00008000 /* CIBCA No response error */#define CIXCD_PS_NRSPE 0x80000000 /* CIXCD No response error */#define CIBX_PS_ERRS 0xFFFFFDFE /* PSR error bits */ /* CIKMF Port Status Register */#define CIKMF_PS_CRDE 0x00000100 /* Corrected read data error detected */#define CIKMF_PS_MTE 0x80000000 /* Maintenance error */ /* Shac Port Status Register */#define CISHC_PS_SHME 0x00010000 /* Shared host memory error */#define CISHC_PS_SMPE 0x00020000 /* Slave mode parity error */#define CISHC_PS_ISNE 0x00040000 /* Illegal segment number error */#define CISHC_PS_DE 0x00080000 /* Diagnostic error */#define CISHC_PS_QDE 0x00100000 /* Quip Detected error */#define CISHC_PS_IIE 0x00200000 /* Illegal interrupt error */#define CISHC_PS_MTE 0x80000000 /* Maintenance error */#define CISHC_PS_ERRS 0xFFFFFFFE /* PSR error bits */ /* Port Status Register Mask Bits */#define PSR_RQA 0x00000001 /* Response queue available */#define PSR_MFQE 0x00000002 /* Message free queue empty */#define PSR_PDC 0x00000004 /* Port disablement complete */#define PSR_PIC 0x00000008 /* Port initialization complete */#define PSR_DSE 0x00000010 /* Data structure error */#define PSR_MSE 0x00000020 /* Memory structure error */#define PSR_SE 0x00000040 /* Sanity timer expiration */#define PSR_MISC 0x00000080 /* Miscellaneous errors */ /* XMI Error Register Bit Masks */#define CIXCD_XBE_TTO 0x00000004 /* CIXCD XBE disable TTO */#define CIXCD_XBE_ERRS 0x88F7B400 /* CIXCD XBE errors mask */#define CIXCD_XBE_HARDE 0x00F7B400 /* CIXCD XBE hard errors mask */#define CIXCD_XBE_SOFTE 0x08000000 /* CIXCD XBE soft errors mask */#define CIKMF_XBE_ERRS 0x09E01400 /* CIKMF XBE errors mask */#define CIKMF_XBE_PERRS 0x01800000 /* CIKMF XBE parity errors mask */#define CIKMF_XBE_HERRS 0x00601400 /* CIKMF XBE port errors mask */#define CIKMF_PSER_ERRS 0x801EA000 /* CIKMF port specific hard err mask */#define CIKMF_PSER_HERRS 0x0017A000 /* CIKMF port specific hard err mask */#define CIKMF_PSER_SERRS 0x00080000 /* CIKMF port specific soft err mask */#define FCN_EXT2_MMV 0x80000000 /* Member map valid */#define FCN_EXT2_EAS 0x00008000 /* Explicit address support */#define FCN_EXT2_FSN 0x00004000 /* Full sequence numbers */#define FCN_EXT2_RDP 0x00002000 /* Resequence dual path */#define FCN_EXT2_NADP 0x00001000 /* Non-adp adapter support */#define FCN_EXT2_ONI 0x00000800 /* Order not important support */#define FCN_EXT2_NMEMS 0x000000FF /* Number of members in pgrp <= 64 */#define FCN_EXT2_EFR 0x0000E000 /* MASK EAS,FSN,RDP */#define FCN_EXT2_FR 0x00006000 /* MASK FSN,RDP *//* CI Data Structure Definitions. */typedef struct { /* Loopback CRC Table */ u_char : 8; /* MBZ */ u_char lblen7; /* Loopback data size plus 7 */ u_char port_num; /* Local port number */ u_char not_port_num; /* One's complement( local port num )*/ u_char lport_addr; /* Local port station address */ u_char opcode; /* Value of SNDLB opcode */ u_char : 8; /* MBZ */ u_char lbdata[ LBDSIZE ]; /* Loopback data */} LBCRC; /* Microcode Revision Level Table */typedef struct _mrltab { /* Entry */ u_char ram; /* RAM revision level */ u_char rom; /* PROM/EEPROM revision level */ u_short warn; /* Warning message flag */#define UCODE_NOWARNING 0 /* No warning message required */#define UCODE_WARNING 1 /* Warning message required */} MRLTAB;typedef struct _vcd { /* Virtual Circuit Descriptor */ union { struct { u_long : 9; /* MBZ */ u_long pstatus : 2; /* Cable status */#define VCD_BAD 0 /* Both cables are bad */#define VCD_CABLE0 1 /* Cable 0 is good */#define VCD_CABLE1 2 /* Cable 1 is good */#define VCD_GOOD 3 /* Both cables are good */ u_long nadp : 1; /* NADP */ u_long dqi : 1; /* DFREEQ inhibit */ u_long sseq_num : 1; /* Sending sequence number */ u_long rseq_num : 1; /* Receiving sequence number */ u_long vcstate : 1; /* Virtual circuit state */#define VC_OFF 0 /* Virtual circuit is off */#define VC_ON 1 /* Virtual circuit is on */ u_long snd_st : 3; /* Send states */ u_long : 5; /* RSV */ u_long rcv_st : 2; /* Receive states */ u_long : 6; /* RSV */ } ssn; struct { u_long sseq_num : 3; /* Sending sequence number */ u_long rseq_num : 3; /* Sending sequence number */ u_long rdp : 1; /* Resequence dual path */ u_long fsn : 1; /* Full sequence numbers */ u_long eas : 1; /* Subnode Addressing */ u_long pstatus : 2; /* Cable status */ u_long nadp : 1; /* NADP */ u_long dqi : 1; /* DFREEQ inhibit */ u_long : 2; /* MBZ */ u_long vcstate : 1; /* Virtual circuit state */ u_long snd_st : 3; /* Send states */ u_long : 5; /* RSV */ u_long rcv_st : 2; /* Receive states */ u_long : 6; /* RSV */ } fsn; } vcd_ov;} VCD;/* CI Port Specific Data Structure Definitions. */typedef struct { /* CI750/CI780/CIBCI Microcode Header*/ u_char unused[ 8 ]; /* Fields unused by CI port driver */ u_long port_type; /* Microcode port type indicator */#define CI7B_ALLRAM 0x5F6A00A1 /* All RAM port indicator */} CI7B_UCODEH;typedef struct { /* CIBCA Microcode Header */ u_char name[ CIBCA_AA_NAMSIZ ];/* Name of microcode file */ u_char unused1[ 254 ]; /* Fields unused by CI port driver */ u_long ucode_lbn_off; /* LBN offset to CIBCA ucode */ u_char unused[ 244 ]; /* Fields unused by CI port driver */} CIBCA_UCODEH;/* CI Port Command Definitions. */typedef struct { /* Packet Header Cable Status Bits */ u_char : 1; u_char cable0 : 2; /* Cable 0 status */ u_char cable1 : 2; /* Cable 1 status */#define CABLE_ACK 0 /* ACK on cable or cable not use */#define CABLE_NAK 1 /* NAK on cable */#define CABLE_NORSP 2 /* No response on cable */#define CABLE_TIMEOUT 3 /* CI arbitration timeout */ u_char : 3;} CABLE_STATUS;typedef struct { /* Packet Header Opcode Modifiers */ u_char rsp : 1; /* Response requested when set */ u_char cable_select : 2; /* Cable select */#define CS_AUTO 0 /* Automatic cable selection */#define CS_CABLE0 1 /* Select cable 0 */#define CS_CABLE1 2 /* Select cable 1 */ u_char : 1; u_char pkt_multiple : 3; /* Packet multiple */ u_char pkt_size : 1; /* Data packet base size */#define Pack_format pkt_size /* Packing format */#define Force_reset pkt_size /* Force reset */#define Default_start pkt_size /* Default start address */} OPCODE_MODS;typedef struct { /* Packet Header Cable Flags */ u_char : 1; u_char rcable : 2; /* Receive cable */ u_char : 1; u_char scable : 2; /* Send cable */ u_char : 2;} CABLE_FLAGS;typedef struct { /* CKTSET/SETCKT Packet Header Format*/ struct _vcd mask; /* Mask controlling VCD modification */#define Imp_mask 0x0000E000 /* Implicit Mask - CST, NR, NS */#define Kmf_mask 0x000080BF /* KMF Mask - CST, FSN, NR0:2, NS0:2 */#define Kmf_mvalue 0x00000080 /* KMF Mvalue - FSN */#define Exp_mask 0x000089FF /* Explicit Mask - CST,NADP,EAS,FSN, */ /* RDP, NR0:2, NS0:2 */#define Exp_mask_eas 0x00008100 /* Explicit Mask Close - CST, EAS */ struct _vcd mvalue; /* VCD modification values */ struct _vcd ivalue; /* VCD prior to modification */ u_short vcd_res; /* VCD resources remaining lower bound*/ u_short reseq_res; /* Reseq. resources remaining lower bo*/} CKTSETH, SETCKTH;typedef struct { /* IDREC Packet Header Format */ struct _tid xctid; /* Transaction identifier */ u_long port_type; /* Port type */ u_long ucode_rev; /* Port microcode revision level */ u_long port_fcn; /* Port functionality mask */ u_long reset_port : 8; /* Port which caused last reset */ u_long port_state : 3; /* Port state */ u_long sys_state : 21; /* Implementation specific state */ u_long port_fcn_ext; /* Port functionality extension */ u_long port_fcn_ext2; /* Port functionality extension #2 */ u_long : 32; /* Sub_map field */ u_long : 32; /* Sub_map field */ u_long : 32; /* RSV field */ u_long : 32; /* RSV field */} IDRECH; /* IDREQ/REQID/SNDRST/CNFREC/DATREC */typedef struct { /* Packet Header Format */ struct _tid xctid; /* Transaction identifier */} CNFRECH, REQIDH, IDREQH, SNDRSTH, DATRECH;typedef struct { /* LBREC Packet Header Format */ u_short lblength; /* Size of loopback data */ u_char lbdata[ LBDSIZE ]; /* Loopback data */} LBRECH;typedef struct {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -