Linux Audio
Check our new training course
Embedded Linux Audio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442
/* * linux/drivers/s390/net/qeth_mpc.h * * Linux on zSeries OSA Express and HiperSockets support * * Copyright 2000,2003 IBM Corporation * Author(s): Utz Bacher <utz.bacher@de.ibm.com> * */ #ifndef __QETH_MPC_H__ #define __QETH_MPC_H__ #define VERSION_QETH_MPC_H "$Revision: 1.16 $" #define QETH_IPA_TIMEOUT (card->ipa_timeout) #define QETH_MPC_TIMEOUT 2000 #define QETH_ADDR_TIMEOUT 1000 #define QETH_SETIP_RETRIES 2 #define IDX_ACTIVATE_SIZE 0x22 #define CM_ENABLE_SIZE 0x63 #define CM_SETUP_SIZE 0x64 #define ULP_ENABLE_SIZE 0x6b #define ULP_SETUP_SIZE 0x6c #define DM_ACT_SIZE 0x55 #define QETH_MPC_TOKEN_LENGTH 4 #define QETH_SEQ_NO_LENGTH 4 #define QETH_IPA_SEQ_NO_LENGTH 2 #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 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 QETH_MCL_LENGTH 4 extern unsigned char CM_ENABLE[]; #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 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 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) extern unsigned char ULP_SETUP[]; #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 QETH_DM_ACT_DEST_ADDR(buffer) (buffer+0x2c) #define QETH_DM_ACT_CONNECTION_TOKEN(buffer) (buffer+0x51) #define IPA_CMD_STARTLAN 0x01 #define IPA_CMD_STOPLAN 0x02 #define IPA_CMD_SETIP 0xb1 #define IPA_CMD_DELIP 0xb7 #define IPA_CMD_QIPASSIST 0xb2 #define IPA_CMD_SETASSPARMS 0xb3 #define IPA_CMD_SETIPM 0xb4 #define IPA_CMD_DELIPM 0xb5 #define IPA_CMD_SETRTG 0xb6 #define IPA_CMD_SETADAPTERPARMS 0xb8 #define IPA_CMD_ADD_ADDR_ENTRY 0xc1 #define IPA_CMD_DELETE_ADDR_ENTRY 0xc2 #define IPA_CMD_CREATE_ADDR 0xc3 #define IPA_CMD_DESTROY_ADDR 0xc4 #define IPA_CMD_REGISTER_LOCAL_ADDR 0xd1 #define IPA_CMD_UNREGISTER_LOCAL_ADDR 0xd2 #define INITIATOR_HOST 0 #define INITIATOR_HYDRA 1 #define PRIM_VERSION_IPA 1 #define PROT_VERSION_SNA 1 /* hahaha */ #define PROT_VERSION_IPv4 4 #define PROT_VERSION_IPv6 6 #define OSA_ADDR_LEN 6 #define IPA_SETADAPTERPARMS_IP_VERSION PROT_VERSION_IPv4 #define SR_INFO_LEN 16 #define IPA_ARP_PROCESSING 0x00000001L #define IPA_INBOUND_CHECKSUM 0x00000002L #define IPA_OUTBOUND_CHECKSUM 0x00000004L #define IPA_IP_FRAGMENTATION 0x00000008L #define IPA_FILTERING 0x00000010L #define IPA_IPv6 0x00000020L #define IPA_MULTICASTING 0x00000040L #define IPA_IP_REASSEMBLY 0x00000080L #define IPA_QUERY_ARP_COUNTERS 0x00000100L #define IPA_QUERY_ARP_ADDR_INFO 0x00000200L #define IPA_SETADAPTERPARMS 0x00000400L #define IPA_VLAN_PRIO 0x00000800L #define IPA_PASSTHRU 0x00001000L #define IPA_FULL_VLAN 0x00004000L #define IPA_SOURCE_MAC_AVAIL 0x00010000L #define IPA_SETADP_QUERY_COMMANDS_SUPPORTED 0x01 #define IPA_SETADP_ALTER_MAC_ADDRESS 0x02 #define IPA_SETADP_ADD_DELETE_GROUP_ADDRESS 0x04 #define IPA_SETADP_ADD_DELETE_FUNCTIONAL_ADDR 0x08 #define IPA_SETADP_SET_ADDRESSING_MODE 0x10 #define IPA_SETADP_SET_CONFIG_PARMS 0x20 #define IPA_SETADP_SET_CONFIG_PARMS_EXTENDED 0x40 #define IPA_SETADP_SET_BROADCAST_MODE 0x80 #define IPA_SETADP_SEND_OSA_MESSAGE 0x0100 #define IPA_SETADP_SET_SNMP_CONTROL 0x0200 #define IPA_SETADP_READ_SNMP_PARMS 0x0400 #define IPA_SETADP_WRITE_SNMP_PARMS 0x0800 #define IPA_SETADP_QUERY_CARD_INFO 0x1000 #define CHANGE_ADDR_READ_MAC 0 #define CHANGE_ADDR_REPLACE_MAC 1 #define CHANGE_ADDR_ADD_MAC 2 #define CHANGE_ADDR_DEL_MAC 4 #define CHANGE_ADDR_RESET_MAC 8 #define CHANGE_ADDR_READ_ADDR 0 #define CHANGE_ADDR_ADD_ADDR 1 #define CHANGE_ADDR_DEL_ADDR 2 #define CHANGE_ADDR_FLUSH_ADDR_TABLE 4 /* we assumed, that the card is named card */ #define qeth_is_supported(str) (card->ipa_supported&str) #define qeth_is_supported6(str) (card->ipa6_supported&str) #define qeth_is_adp_supported(str) (card->adp_supported&str) /* the same for all assist parms: */ #define IPA_CMD_ASS_START 0x0001 #define IPA_CMD_ASS_STOP 0x0002 #define IPA_CMD_ASS_CONFIGURE 0x0003 #define IPA_CMD_ASS_ENABLE 0x0004 #define IPA_CMD_ASS_ARP_SET_NO_ENTRIES 0x0003 #define IPA_CMD_ASS_ARP_QUERY_CACHE 0x0004 #define IPA_CMD_ASS_ARP_ADD_ENTRY 0x0005 #define IPA_CMD_ASS_ARP_REMOVE_ENTRY 0x0006 #define IPA_CMD_ASS_ARP_FLUSH_CACHE 0x0007 #define IPA_CMD_ASS_ARP_QUERY_INFO 0x0104 #define IPA_CMD_ASS_ARP_QUERY_STATS 0x0204 #define IPA_CHECKSUM_DEFAULT_ENABLE_MASK 0x001a #define IPA_CMD_ASS_FILTER_SET_TYPES 0x0003 #define IPA_CMD_ASS_IPv6_SET_FUNCTIONS 0x0003 #define IPA_REPLY_SUCCESS 0 #define IPA_REPLY_FAILED 1 #define IPA_REPLY_OPNOTSUPP 2 #define IPA_REPLY_OPNOTSUPP2 4 #define IPA_REPLY_NOINFO 8 #define IPA_SETIP_FLAGS 0 #define IPA_SETIP_VIPA_FLAGS 1 #define IPA_SETIP_TAKEOVER_FLAGS 2 #define VIPA_2_B_ADDED 0 #define VIPA_ESTABLISHED 1 #define VIPA_2_B_REMOVED 2 #define IPA_DELIP_FLAGS 0 #define IPA_SETADP_CMDSIZE 40 struct ipa_setadp_cmd { __u32 supp_hw_cmds; __u32 reserved1; __u16 cmdlength; __u16 reserved2; __u32 command_code; __u16 return_code; __u8 frames_used_total; __u8 frame_seq_no; __u32 reserved3; union { struct { __u32 no_lantypes_supp; __u8 lan_type; __u8 reserved1[3]; __u32 supported_cmds; __u8 reserved2[8]; } query_cmds_supp; struct { __u32 cmd; __u32 addr_size; __u32 no_macs; __u8 addr[OSA_ADDR_LEN]; } change_addr; __u32 mode; } data; }; struct ipa_cmd{ __u8 command; __u8 initiator; __u16 seq_no; __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; union { struct { __u8 ip[4]; __u8 netmask[4]; __u32 flags; } setdelip4; struct { __u8 ip[16]; __u8 netmask[16]; __u32 flags; } setdelip6; struct { __u32 assist_no; __u16 length; __u16 command_code; __u16 return_code; __u8 number_of_replies; __u8 seq_no; union { __u32 flags_32bit; struct { __u8 mac[6]; __u8 reserved[2]; __u8 ip[16]; __u8 reserved2[32]; } add_arp_entry; __u8 ip[16]; } data; } setassparms; struct { __u8 mac[6]; __u8 padding[2]; __u8 ip6[12]; __u8 ip4_6[4]; } setdelipm; struct { __u8 type; } setrtg; struct ipa_setadp_cmd setadapterparms; struct { __u32 command; #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 __u32 frame_type; __u32 cmd_flags; __u8 ip_addr[16]; __u32 tag_field; __u8 mac_addr[6]; __u8 reserved[10]; __u32 sr_len; __u8 sr_info[SR_INFO_LEN]; } add_addr_entry; struct { __u32 command; __u32 cmd_flags; __u8 ip_addr[16]; __u32 tag_field; } delete_addr_entry; struct { __u8 unique_id[8]; } create_destroy_addr; } data; }__attribute__ ((packed)); #define QETH_IOC_MAGIC 0x22 #define QETH_IOCPROC_OSAEINTERFACES _IOWR(QETH_IOC_MAGIC, 1, arg) #define QETH_IOCPROC_INTERFACECHANGES _IOWR(QETH_IOC_MAGIC, 2, arg) #define SNMP_QUERY_CARD_INFO 0x00000002L #define SNMP_REGISETER_MIB 0x00000004L #define SNMP_GET_OID 0x00000010L #define SNMP_SET_OID 0x00000011L #define SNMP_GET_NEXT_OID 0x00000012L #define SNMP_QUERY_ALERTS 0x00000020L #define SNMP_SET_TRAP 0x00000021L #define ARP_DATA_SIZE 3968 #define ARP_FLUSH -3 #define ARP_RETURNCODE_NOARPDATA -2 #define ARP_RETURNCODE_ERROR -1 #define ARP_RETURNCODE_SUCCESS 0 #define ARP_RETURNCODE_LASTREPLY 1 #define SNMP_BASE_CMDLENGTH 44 #define SNMP_SETADP_CMDLENGTH 16 #define SNMP_REQUEST_DATA_OFFSET 16 struct snmp_ipa_setadp_cmd { __u32 supp_hw_cmds; __u32 reserved1; __u16 cmdlength; __u16 reserved2; __u32 command_code; __u16 return_code; __u8 frames_used_total; __u8 frame_seq_no; __u32 reserved3; __u8 snmp_token[16]; union { struct { __u32 snmp_request; __u32 snmp_interface; __u32 snmp_returncode; __u32 snmp_firmwarelevel; __u32 snmp_seqno; __u8 snmp_data[ARP_DATA_SIZE]; } snmp_subcommand; } data; }__attribute__ ((packed)); struct arp_cmd { __u8 command; __u8 initiator; __u16 seq_no; __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; union { struct { __u32 assist_no; __u16 length; __u16 command_code; __u16 return_code; __u8 number_of_replies; __u8 seq_no; union { struct { __u16 tcpip_requestbitmask; __u16 osa_setbitmask; __u32 number_of_entries; __u8 arp_data[ARP_DATA_SIZE]; } queryarp_data; } data; } setassparms; struct snmp_ipa_setadp_cmd setadapterparms; } data; }__attribute__ ((packed)); #define IPA_PDU_HEADER_SIZE 0x40 #define QETH_IPA_PDU_LEN_TOTAL(buffer) (buffer+0x0e) #define QETH_IPA_PDU_LEN_PDU1(buffer) (buffer+0x26) #define QETH_IPA_PDU_LEN_PDU2(buffer) (buffer+0x2a) #define QETH_IPA_PDU_LEN_PDU3(buffer) (buffer+0x3a) extern unsigned char IPA_PDU_HEADER[]; #define QETH_IPA_CMD_DEST_ADDR(buffer) (buffer+0x2c) #define PDU_ENCAPSULATION(buffer) \ (buffer+ \ *(buffer+ (*(buffer+0x0b))+ *(buffer+*(buffer+0x0b)+0x11) +0x07)) #define IS_IPA(buffer) ((buffer) && ( *(buffer+ ((*(buffer+0x0b))+4) )==0xc1) ) #define IS_IPA_REPLY(buffer) ( (buffer) && ( (*(PDU_ENCAPSULATION(buffer)+1))==INITIATOR_HOST ) ) #define CCW_NOP_CMD 0x03 #define CCW_NOP_COUNT 1 extern unsigned char WRITE_CCW[]; extern unsigned char READ_CCW[]; #endif /* __QETH_MPC_H__ */