123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /*
- * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
- * All rights reserved
- * www.brocade.com
- *
- * Linux driver for Brocade Fibre Channel Host Bus Adapter.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License (GPL) Version 2 as
- * published by the Free Software Foundation
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- */
- #ifndef __FDMI_H__
- #define __FDMI_H__
- #include <protocol/types.h>
- #include <protocol/fc.h>
- #include <protocol/ct.h>
- #pragma pack(1)
- /*
- * FDMI Command Codes
- */
- #define FDMI_GRHL 0x0100
- #define FDMI_GHAT 0x0101
- #define FDMI_GRPL 0x0102
- #define FDMI_GPAT 0x0110
- #define FDMI_RHBA 0x0200
- #define FDMI_RHAT 0x0201
- #define FDMI_RPRT 0x0210
- #define FDMI_RPA 0x0211
- #define FDMI_DHBA 0x0300
- #define FDMI_DPRT 0x0310
- /*
- * FDMI reason codes
- */
- #define FDMI_NO_ADDITIONAL_EXP 0x00
- #define FDMI_HBA_ALREADY_REG 0x10
- #define FDMI_HBA_ATTRIB_NOT_REG 0x11
- #define FDMI_HBA_ATTRIB_MULTIPLE 0x12
- #define FDMI_HBA_ATTRIB_LENGTH_INVALID 0x13
- #define FDMI_HBA_ATTRIB_NOT_PRESENT 0x14
- #define FDMI_PORT_ORIG_NOT_IN_LIST 0x15
- #define FDMI_PORT_HBA_NOT_IN_LIST 0x16
- #define FDMI_PORT_ATTRIB_NOT_REG 0x20
- #define FDMI_PORT_NOT_REG 0x21
- #define FDMI_PORT_ATTRIB_MULTIPLE 0x22
- #define FDMI_PORT_ATTRIB_LENGTH_INVALID 0x23
- #define FDMI_PORT_ALREADY_REGISTEREED 0x24
- /*
- * FDMI Transmission Speed Mask values
- */
- #define FDMI_TRANS_SPEED_1G 0x00000001
- #define FDMI_TRANS_SPEED_2G 0x00000002
- #define FDMI_TRANS_SPEED_10G 0x00000004
- #define FDMI_TRANS_SPEED_4G 0x00000008
- #define FDMI_TRANS_SPEED_8G 0x00000010
- #define FDMI_TRANS_SPEED_16G 0x00000020
- #define FDMI_TRANS_SPEED_UNKNOWN 0x00008000
- /*
- * FDMI HBA attribute types
- */
- enum fdmi_hba_attribute_type {
- FDMI_HBA_ATTRIB_NODENAME = 1, /* 0x0001 */
- FDMI_HBA_ATTRIB_MANUFACTURER, /* 0x0002 */
- FDMI_HBA_ATTRIB_SERIALNUM, /* 0x0003 */
- FDMI_HBA_ATTRIB_MODEL, /* 0x0004 */
- FDMI_HBA_ATTRIB_MODEL_DESC, /* 0x0005 */
- FDMI_HBA_ATTRIB_HW_VERSION, /* 0x0006 */
- FDMI_HBA_ATTRIB_DRIVER_VERSION, /* 0x0007 */
- FDMI_HBA_ATTRIB_ROM_VERSION, /* 0x0008 */
- FDMI_HBA_ATTRIB_FW_VERSION, /* 0x0009 */
- FDMI_HBA_ATTRIB_OS_NAME, /* 0x000A */
- FDMI_HBA_ATTRIB_MAX_CT, /* 0x000B */
- FDMI_HBA_ATTRIB_MAX_TYPE
- };
- /*
- * FDMI Port attribute types
- */
- enum fdmi_port_attribute_type {
- FDMI_PORT_ATTRIB_FC4_TYPES = 1, /* 0x0001 */
- FDMI_PORT_ATTRIB_SUPP_SPEED, /* 0x0002 */
- FDMI_PORT_ATTRIB_PORT_SPEED, /* 0x0003 */
- FDMI_PORT_ATTRIB_FRAME_SIZE, /* 0x0004 */
- FDMI_PORT_ATTRIB_DEV_NAME, /* 0x0005 */
- FDMI_PORT_ATTRIB_HOST_NAME, /* 0x0006 */
- FDMI_PORT_ATTR_MAX_TYPE
- };
- /*
- * FDMI attribute
- */
- struct fdmi_attr_s {
- u16 type;
- u16 len;
- u8 value[1];
- };
- /*
- * HBA Attribute Block
- */
- struct fdmi_hba_attr_s {
- u32 attr_count; /* # of attributes */
- struct fdmi_attr_s hba_attr; /* n attributes */
- };
- /*
- * Registered Port List
- */
- struct fdmi_port_list_s {
- u32 num_ports; /* number Of Port Entries */
- wwn_t port_entry; /* one or more */
- };
- /*
- * Port Attribute Block
- */
- struct fdmi_port_attr_s {
- u32 attr_count; /* # of attributes */
- struct fdmi_attr_s port_attr; /* n attributes */
- };
- /*
- * FDMI Register HBA Attributes
- */
- struct fdmi_rhba_s {
- wwn_t hba_id; /* HBA Identifier */
- struct fdmi_port_list_s port_list; /* Registered Port List */
- struct fdmi_hba_attr_s hba_attr_blk; /* HBA attribute block */
- };
- /*
- * FDMI Register Port
- */
- struct fdmi_rprt_s {
- wwn_t hba_id; /* HBA Identifier */
- wwn_t port_name; /* Port wwn */
- struct fdmi_port_attr_s port_attr_blk; /* Port Attr Block */
- };
- /*
- * FDMI Register Port Attributes
- */
- struct fdmi_rpa_s {
- wwn_t port_name; /* port wwn */
- struct fdmi_port_attr_s port_attr_blk; /* Port Attr Block */
- };
- #pragma pack()
- #endif
|