📄 qeth_mpc.h
字号:
__u8 seq_no;} __attribute__((packed));struct qeth_arp_query_data { __u16 request_bits; __u16 reply_bits; __u32 no_entries; char data;} __attribute__((packed));/* used as parameter for arp_query reply */struct qeth_arp_query_info { __u32 udata_len; __u16 mask_bits; __u32 udata_offset; __u32 no_entries; char *udata;};/* SETASSPARMS IPA Command: */struct qeth_ipacmd_setassparms { struct qeth_ipacmd_setassparms_hdr hdr; union { __u32 flags_32bit; struct qeth_arp_cache_entry add_arp_entry; struct qeth_arp_query_data query_arp; __u8 ip[16]; } data;} __attribute__ ((packed));/* SETRTG IPA Command: ****************************************************/struct qeth_set_routing { __u8 type;};/* SETADAPTERPARMS IPA Command: *******************************************/struct qeth_query_cmds_supp { __u32 no_lantypes_supp; __u8 lan_type; __u8 reserved1[3]; __u32 supported_cmds; __u8 reserved2[8];} __attribute__ ((packed));struct qeth_change_addr { __u32 cmd; __u32 addr_size; __u32 no_macs; __u8 addr[OSA_ADDR_LEN];} __attribute__ ((packed));struct qeth_snmp_cmd { __u8 token[16]; __u32 request; __u32 interface; __u32 returncode; __u32 firmwarelevel; __u32 seqno; __u8 data;} __attribute__ ((packed));struct qeth_snmp_ureq_hdr { __u32 data_len; __u32 req_len; __u32 reserved1; __u32 reserved2;} __attribute__ ((packed));struct qeth_snmp_ureq { struct qeth_snmp_ureq_hdr hdr; struct qeth_snmp_cmd cmd;} __attribute__((packed));struct qeth_ipacmd_setadpparms_hdr { __u32 supp_hw_cmds; __u32 reserved1; __u16 cmdlength; __u16 reserved2; __u32 command_code; __u16 return_code; __u8 used_total; __u8 seq_no; __u32 reserved3;} __attribute__ ((packed));struct qeth_ipacmd_setadpparms { struct qeth_ipacmd_setadpparms_hdr hdr; union { struct qeth_query_cmds_supp query_cmds_supp; struct qeth_change_addr change_addr; struct qeth_snmp_cmd snmp; __u32 mode; } data;} __attribute__ ((packed));/* IPFRAME IPA Command: ***************************************************//* TODO: define in analogy to commands define above *//* ADD_ADDR_ENTRY IPA Command: ********************************************//* TODO: define in analogy to commands define above *//* DELETE_ADDR_ENTRY IPA Command: *****************************************//* TODO: define in analogy to commands define above *//* CREATE_ADDR IPA Command: ***********************************************/struct qeth_create_destroy_address { __u8 unique_id[8];} __attribute__ ((packed));/* REGISTER_LOCAL_ADDR IPA Command: ***************************************//* TODO: define in analogy to commands define above *//* UNREGISTER_LOCAL_ADDR IPA Command: *************************************//* TODO: define in analogy to commands define above *//* Header for each IPA command */struct qeth_ipacmd_hdr { __u8 command; __u8 initiator; __u16 seqno; __u16 return_code; __u8 adapter_type; __u8 rel_adapter_no; __u8 prim_version_no; __u8 param_count; __u16 prot_version; __u32 ipa_supported; __u32 ipa_enabled;} __attribute__ ((packed));/* The IPA command itself */struct qeth_ipa_cmd { struct qeth_ipacmd_hdr hdr; union { struct qeth_ipacmd_setdelip4 setdelip4; struct qeth_ipacmd_setdelip6 setdelip6; struct qeth_ipacmd_setdelipm setdelipm; struct qeth_ipacmd_setassparms setassparms; struct qeth_ipacmd_layer2setdelmac setdelmac; struct qeth_ipacmd_layer2setdelvlan setdelvlan; struct qeth_create_destroy_address create_destroy_addr; struct qeth_ipacmd_setadpparms setadapterparms; struct qeth_set_routing setrtg; } data;} __attribute__ ((packed));/* * special command for ARP processing. * this is not included in setassparms command before, because we get * problem with the size of struct qeth_ipacmd_setassparms otherwise */enum qeth_ipa_arp_return_codes { QETH_IPA_ARP_RC_SUCCESS = 0x0000, QETH_IPA_ARP_RC_FAILED = 0x0001, QETH_IPA_ARP_RC_NOTSUPP = 0x0002, QETH_IPA_ARP_RC_OUT_OF_RANGE = 0x0003, QETH_IPA_ARP_RC_Q_NOTSUPP = 0x0004, QETH_IPA_ARP_RC_Q_NO_DATA = 0x0008,};#define QETH_SETASS_BASE_LEN (sizeof(struct qeth_ipacmd_hdr) + \ sizeof(struct qeth_ipacmd_setassparms_hdr))#define QETH_IPA_ARP_DATA_POS(buffer) (buffer + IPA_PDU_HEADER_SIZE + \ QETH_SETASS_BASE_LEN)#define QETH_SETADP_BASE_LEN (sizeof(struct qeth_ipacmd_hdr) + \ sizeof(struct qeth_ipacmd_setadpparms_hdr))#define QETH_SNMP_SETADP_CMDLENGTH 16#define QETH_ARP_DATA_SIZE 3968#define QETH_ARP_CMD_LEN (QETH_ARP_DATA_SIZE + 8)/* Helper functions */#define IS_IPA_REPLY(cmd) ((cmd->hdr.initiator == IPA_CMD_INITIATOR_HOST) || \ (cmd->hdr.initiator == IPA_CMD_INITIATOR_OSA_REPLY)) /*****************************************************************************//* END OF IP Assist related definitions *//*****************************************************************************/extern unsigned char WRITE_CCW[];extern unsigned char READ_CCW[];extern unsigned char CM_ENABLE[];#define CM_ENABLE_SIZE 0x63#define QETH_CM_ENABLE_ISSUER_RM_TOKEN(buffer) (buffer+0x2c)#define QETH_CM_ENABLE_FILTER_TOKEN(buffer) (buffer+0x53)#define QETH_CM_ENABLE_USER_DATA(buffer) (buffer+0x5b)#define QETH_CM_ENABLE_RESP_FILTER_TOKEN(buffer) \ (PDU_ENCAPSULATION(buffer)+ 0x13)extern unsigned char CM_SETUP[];#define CM_SETUP_SIZE 0x64#define QETH_CM_SETUP_DEST_ADDR(buffer) (buffer+0x2c)#define QETH_CM_SETUP_CONNECTION_TOKEN(buffer) (buffer+0x51)#define QETH_CM_SETUP_FILTER_TOKEN(buffer) (buffer+0x5a)#define QETH_CM_SETUP_RESP_DEST_ADDR(buffer) \ (PDU_ENCAPSULATION(buffer) + 0x1a)extern unsigned char ULP_ENABLE[];#define ULP_ENABLE_SIZE 0x6b#define QETH_ULP_ENABLE_LINKNUM(buffer) (buffer+0x61)#define QETH_ULP_ENABLE_DEST_ADDR(buffer) (buffer+0x2c)#define QETH_ULP_ENABLE_FILTER_TOKEN(buffer) (buffer+0x53)#define QETH_ULP_ENABLE_PORTNAME_AND_LL(buffer) (buffer+0x62)#define QETH_ULP_ENABLE_RESP_FILTER_TOKEN(buffer) \ (PDU_ENCAPSULATION(buffer) + 0x13)#define QETH_ULP_ENABLE_RESP_MAX_MTU(buffer) \ (PDU_ENCAPSULATION(buffer)+ 0x1f)#define QETH_ULP_ENABLE_RESP_DIFINFO_LEN(buffer) \ (PDU_ENCAPSULATION(buffer) + 0x17)#define QETH_ULP_ENABLE_RESP_LINK_TYPE(buffer) \ (PDU_ENCAPSULATION(buffer)+ 0x2b)/* Layer 2 defintions */#define QETH_PROT_LAYER2 0x08#define QETH_PROT_TCPIP 0x03#define QETH_PROT_OSN2 0x0a #define QETH_ULP_ENABLE_PROT_TYPE(buffer) (buffer+0x50)#define QETH_IPA_CMD_PROT_TYPE(buffer) (buffer+0x19)extern unsigned char ULP_SETUP[];#define ULP_SETUP_SIZE 0x6c#define QETH_ULP_SETUP_DEST_ADDR(buffer) (buffer+0x2c)#define QETH_ULP_SETUP_CONNECTION_TOKEN(buffer) (buffer+0x51)#define QETH_ULP_SETUP_FILTER_TOKEN(buffer) (buffer+0x5a)#define QETH_ULP_SETUP_CUA(buffer) (buffer+0x68)#define QETH_ULP_SETUP_REAL_DEVADDR(buffer) (buffer+0x6a)#define QETH_ULP_SETUP_RESP_CONNECTION_TOKEN(buffer) \ (PDU_ENCAPSULATION(buffer)+0x1a)extern unsigned char DM_ACT[];#define DM_ACT_SIZE 0x55#define QETH_DM_ACT_DEST_ADDR(buffer) (buffer+0x2c)#define QETH_DM_ACT_CONNECTION_TOKEN(buffer) (buffer+0x51)#define QETH_TRANSPORT_HEADER_SEQ_NO(buffer) (buffer+4)#define QETH_PDU_HEADER_SEQ_NO(buffer) (buffer+0x1c)#define QETH_PDU_HEADER_ACK_SEQ_NO(buffer) (buffer+0x20)extern unsigned char IDX_ACTIVATE_READ[];extern unsigned char IDX_ACTIVATE_WRITE[];#define IDX_ACTIVATE_SIZE 0x22#define QETH_IDX_ACT_ISSUER_RM_TOKEN(buffer) (buffer+0x0c)#define QETH_IDX_NO_PORTNAME_REQUIRED(buffer) ((buffer)[0x0b]&0x80)#define QETH_IDX_ACT_FUNC_LEVEL(buffer) (buffer+0x10)#define QETH_IDX_ACT_DATASET_NAME(buffer) (buffer+0x16)#define QETH_IDX_ACT_QDIO_DEV_CUA(buffer) (buffer+0x1e)#define QETH_IDX_ACT_QDIO_DEV_REALADDR(buffer) (buffer+0x20)#define QETH_IS_IDX_ACT_POS_REPLY(buffer) (((buffer)[0x08]&3)==2)#define QETH_IDX_REPLY_LEVEL(buffer) (buffer+0x12)#define PDU_ENCAPSULATION(buffer) \ (buffer + *(buffer + (*(buffer+0x0b)) + \ *(buffer + *(buffer+0x0b)+0x11) +0x07))#define IS_IPA(buffer) \ ((buffer) && \ ( *(buffer + ((*(buffer+0x0b))+4) )==0xc1) )#define ADDR_FRAME_TYPE_DIX 1#define ADDR_FRAME_TYPE_802_3 2#define ADDR_FRAME_TYPE_TR_WITHOUT_SR 0x10#define ADDR_FRAME_TYPE_TR_WITH_SR 0x20#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -