📄 tach.h
字号:
#define DATA_DESCRIPTOR 0x5000000#define UNSOLICITED_COMMAND 0x6000000#define RCTL_ELS_UCTL 0x22000000#define RCTL_ELS_SCTL 0x23000000#define RCTL_BASIC_ABTS 0x81000000#define RCTL_BASIC_ACC 0x84000000#define RCTL_BASIC_RJT 0x85000000/* TYPE */#define TYPE_BLS 0x00000000#define TYPE_ELS 0x01000000#define TYPE_FC_SERVICES 0x20000000#define TYPE_LLC_SNAP 0x05000000#define TYPE_FCP 0x08000000/* F_CTL */#define EXCHANGE_RESPONDER 0x800000#define SEQUENCE_RESPONDER 0x400000#define FIRST_SEQUENCE 0x200000#define LAST_SEQUENCE 0x100000#define SEQUENCE_INITIATIVE 0x10000#define RELATIVE_OFF_PRESENT 0x8#define END_SEQUENCE 0x80000#define TACHYON_HEADER_LEN 32#define NW_HEADER_LEN 16/* Defines for the Outbound Descriptor Block (ODB). */#define ODB_CLASS_3 0xC000#define ODB_NO_COMP 0x400#define ODB_NO_INT 0x200#define ODB_EE_CREDIT 0xF/* Defines for the Extended Descriptor Block (EDB). */#define EDB_LEN ((32*MY_PAGE_SIZE)/8) #define EDB_END 0x8000#define EDB_FREE 0#define EDB_BUSY 1/* Command Codes */#define ELS_LS_RJT 0x01000000#define ELS_ACC 0x02000000#define ELS_PLOGI 0x03000000#define ELS_FLOGI 0x04000000#define ELS_LOGO 0x05000000#define ELS_TPRLO 0x24000000#define ELS_ADISC 0x52000000#define ELS_PDISC 0x50000000#define ELS_PRLI 0x20000000 #define ELS_PRLO 0x21000000#define ELS_SCR 0x62000000#define ELS_RSCN 0x61000000#define ELS_FARP_REQ 0x54000000#define ELS_ABTX 0x06000000#define ELS_ADVC 0x0D000000#define ELS_ECHO 0x10000000#define ELS_ESTC 0x0C000000#define ELS_ESTS 0x0B000000#define ELS_RCS 0x07000000#define ELS_RES 0x08000000#define ELS_RLS 0x0F000000#define ELS_RRQ 0x12000000#define ELS_RSS 0x09000000#define ELS_RTV 0x0E000000#define ELS_RSI 0x0A000000#define ELS_TEST 0x11000000#define ELS_RNC 0x53000000#define ELS_RVCS 0x41000000#define ELS_TPLS 0x23000000#define ELS_GAID 0x30000000#define ELS_FACT 0x31000000#define ELS_FAN 0x60000000#define ELS_FDACT 0x32000000#define ELS_NACT 0x33000000#define ELS_NDACT 0x34000000#define ELS_QoSR 0x40000000#define ELS_FDISC 0x51000000#define ELS_NS_PLOGI 0x03FFFFFC /* LS_RJT reason codes. */#define INV_LS_CMND_CODE 0x0001#define LOGICAL_ERR 0x0003#define LOGICAL_BUSY 0x0005#define PROTOCOL_ERR 0x0007#define UNABLE_TO_PERFORM 0x0009#define CMND_NOT_SUPP 0x000B/* LS_RJT explanation codes. */#define NO_EXPLN 0x0000#define RECV_FIELD_SIZE 0x0700#define CONC_SEQ 0x0900#define REQ_NOT_SUPPORTED 0x2C00#define INV_PAYLOAD_LEN 0x2D00/* Payload Length defines. */#define PLOGI_LEN 116#define CONCURRENT_SEQUENCES 0x01#define RO_INFO_CATEGORY 0xFE#define E_D_TOV 0x07D0 /* 2 Secs */#define AL_TIME 0x0010 /* ~15 msec */#define TOV_VALUES (AL_TIME << 16) | E_D_TOV#define RT_TOV 0x64 /* 100 msec */#define PTP_TOV_VALUES (RT_TOV << 16) | E_D_TOV#define SERVICE_VALID 0x8000#define SEQUENCE_DELIVERY 0x0800#define CLASS3_CONCURRENT_SEQUENCE 0x01#define CLASS3_OPEN_SEQUENCE 0x01/* These are retrieved from the NOVRAM. */#define WORLD_WIDE_NAME_LOW fi->g.my_port_name_low#define WORLD_WIDE_NAME_HIGH fi->g.my_port_name_high#define N_PORT_NAME_HIGH fi->g.my_port_name_high#define N_PORT_NAME_LOW fi->g.my_port_name_low#define NODE_NAME_HIGH fi->g.my_node_name_high#define NODE_NAME_LOW fi->g.my_node_name_low#define PORT_NAME_LEN 8#define NODE_NAME_LEN 8#define PH_VERSION 0x0909#define LOOP_BB_CREDIT 0x00#define PT2PT_BB_CREDIT 0x01#define FLOGI_C_F 0x0800 /* Alternate BB_Credit Mgmnt */ #define PLOGI_C_F 0x8800 /* Continuously Increasing + Alternate BB_Credit Management *//* Fabric defines */#define DIRECTORY_SERVER 0xFFFFFC#define FABRIC_CONTROLLER 0xFFFFFD#define F_PORT 0xFFFFFE#define FLOGI_DID 0xFFFE#define NS_PLOGI_DID 0xFFFC/* Fibre Channel Services defines */#define FCS_RFC_4 0x02170000#define FCS_GP_ID4 0x01A10000#define FCS_ACC 0x8002#define FCS_REJECT 0x8001/* CT Header defines */#define FC_CT_REV 0x01000000#define DIRECTORY_SERVER_APP 0xFC#define NAME_SERVICE 0x02/* Port Type defines */#define PORT_TYPE_IP 0x05000000#define PORT_TYPE_NX_PORTS 0x7F000000/* SCR defines */#define FABRIC_DETECTED_REG 0x00000001#define N_PORT_DETECTED_REG 0x00000002#define FULL_REGISTRATION 0x00000003#define CLEAR_REGISTRATION 0x000000FF/* Command structure has only one byte to address targets */#define MAX_SCSI_TARGETS 0xFF #define FC_SCSI_READ 0x80#define FC_SCSI_WRITE 0x81#define FC_ELS 0x01#define FC_BLS 0x00#define FC_IP 0x05#define FC_BROADCAST 0xFF/* SEST defines. */#define SEST_V 0x80000000 /* V = 1 */#define INB_SEST_VED 0xA0000000 /* V = 1, D = 1 */#define SEST_INV 0x7FFFFFFF #define OUTB_SEST_VED 0x80000000 /* V = 1 */#define INV_SEQ_LEN 0xFFFFFFFF#define OUTB_SEST_LINK 0xFFFF/* PRLI defines. */#define PAGE_LEN 0x100000 /* 3rd byte - 0x10 */#define PRLI_LEN 0x0014 /* 20 bytes */#define FCP_TYPE_CODE 0x0800 /* FCP-SCSI */#define IMAGE_PAIR 0x2000 /* establish image pair */#define INITIATOR_FUNC 0x00000020#define TARGET_FUNC 0x00000010#define READ_XFER_RDY_DISABLED 0x00000002#define NODE_PROCESS_LOGGED_IN 0x3#define NODE_NOT_PRESENT 0x2#define NODE_LOGGED_IN 0x1#define NODE_LOGGED_OUT 0x0/* Defines to determine what should be returned when a SCSI frame * times out. */#define FC_SCSI_BAD_TARGET 0xFFFE0000/* RSCN Address formats */#define PORT_ADDRESS_FORMAT 0x00#define AREA_ADDRESS_FORMAT 0x01#define DOMAIN_ADDRESS_FORMAT 0x02/* Defines used to determine whether a frame transmission should * be indicated by an interrupt or not. */#define NO_COMP_AND_INT 0#define INT_AND_COMP_REQ 1#define NO_INT_COMP_REQ 2/* Other junk... */#define SDB_FREE 0#define SDB_BUSY 1#define MAX_PENDING_FRAMES 15#define RX_ID_FIRST_SEQUENCE 0xFFFF#define OX_ID_FIRST_SEQUENCE 0xFFFF#define NOT_SCSI_XID 0x8000#define MAX_SCSI_XID 0x0FFF /* X_IDs are from 0-4095 */#define SCSI_READ_BIT 0x4000 #define MAX_SCSI_OXID 0x4FFF#define OXID_AVAILABLE 0#define OXID_INUSE 1#define MAX_SEQ_ID 0xFF#define INITIATOR 2#define TARGET 1#define DELETE_ENTRY 1#define ADD_ENTRY 2#endif /* _TACH_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -