17836SJohn.Forte@Sun.COM /* 27836SJohn.Forte@Sun.COM * CDDL HEADER START 37836SJohn.Forte@Sun.COM * 47836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 57836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 67836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 77836SJohn.Forte@Sun.COM * 87836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 107836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 117836SJohn.Forte@Sun.COM * and limitations under the License. 127836SJohn.Forte@Sun.COM * 137836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 147836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 167836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 177836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 187836SJohn.Forte@Sun.COM * 197836SJohn.Forte@Sun.COM * CDDL HEADER END 207836SJohn.Forte@Sun.COM */ 217836SJohn.Forte@Sun.COM /* 22*10264SZhong.Wang@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 237836SJohn.Forte@Sun.COM * Use is subject to license terms. 247836SJohn.Forte@Sun.COM */ 257836SJohn.Forte@Sun.COM 267836SJohn.Forte@Sun.COM #ifndef _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H 277836SJohn.Forte@Sun.COM #define _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H 287836SJohn.Forte@Sun.COM 297836SJohn.Forte@Sun.COM 307836SJohn.Forte@Sun.COM #include <sys/note.h> 317836SJohn.Forte@Sun.COM 327836SJohn.Forte@Sun.COM #ifdef __cplusplus 337836SJohn.Forte@Sun.COM extern "C" { 347836SJohn.Forte@Sun.COM #endif 357836SJohn.Forte@Sun.COM 367836SJohn.Forte@Sun.COM /* 377836SJohn.Forte@Sun.COM * A device handle describes the characterics of a device 387836SJohn.Forte@Sun.COM * Node. Each device handle also contains information 397836SJohn.Forte@Sun.COM * on the serveral different ports it is discovered on. 407836SJohn.Forte@Sun.COM * 417836SJohn.Forte@Sun.COM * Classification of Name Server Objects 427836SJohn.Forte@Sun.COM * 437836SJohn.Forte@Sun.COM * +-----------------------------------+---------------------------+ 447836SJohn.Forte@Sun.COM * | Device (node) Specific | Port Specific | 457836SJohn.Forte@Sun.COM * +-----------------------------------+---------------------------+ 467836SJohn.Forte@Sun.COM * | Node Name (NN) | Port type (PT) | 477836SJohn.Forte@Sun.COM * | Symbolic Node Name Length | Port Id (ID) | 487836SJohn.Forte@Sun.COM * | Symbloic Node Name(SNN) | Symbolic Port Name length | 497836SJohn.Forte@Sun.COM * | Initial Process associator(IPA) | Symbolic Port Name (SPN) | 507836SJohn.Forte@Sun.COM * | | Class of Service (CS) | 517836SJohn.Forte@Sun.COM * | | fc4 types (FT) | 527836SJohn.Forte@Sun.COM * | | IP Address (IP) | 537836SJohn.Forte@Sun.COM * +-----------------------------------+---------------------------+ 547836SJohn.Forte@Sun.COM * 557836SJohn.Forte@Sun.COM * The above classification causes some inconvenience in not having 567836SJohn.Forte@Sun.COM * the ability to directly copy all the nameserver objects into a 577836SJohn.Forte@Sun.COM * contiguous piece of memory. But we'll live with it. 587836SJohn.Forte@Sun.COM */ 597836SJohn.Forte@Sun.COM 607836SJohn.Forte@Sun.COM #define CT_REV 0x01 /* Common Transport revision */ 617836SJohn.Forte@Sun.COM 627836SJohn.Forte@Sun.COM /* FCS types */ 637836SJohn.Forte@Sun.COM #define FCSTYPE_KEYSERVICE 0xF7 647836SJohn.Forte@Sun.COM #define FCSTYPE_ALIAS 0xF8 657836SJohn.Forte@Sun.COM #define FCSTYPE_MGMTSERVICE 0xFA 667836SJohn.Forte@Sun.COM #define FCSTYPE_TIMESERVICE 0xFB 677836SJohn.Forte@Sun.COM #define FCSTYPE_DIRECTORY 0xFC 687836SJohn.Forte@Sun.COM #define FCSTYEP_FABRIC 0xFD 697836SJohn.Forte@Sun.COM 707836SJohn.Forte@Sun.COM /* 717836SJohn.Forte@Sun.COM * FCS subtypes for Directory Service 727836SJohn.Forte@Sun.COM */ 737836SJohn.Forte@Sun.COM #define FCSSUB_DS_NAME_SERVER 0x02 /* Zoned Name Server */ 747836SJohn.Forte@Sun.COM #define FCSSUB_DS_IPADDR_SERVER 0x03 /* IP Address Server */ 757836SJohn.Forte@Sun.COM 767836SJohn.Forte@Sun.COM /* 777836SJohn.Forte@Sun.COM * FCS subtypes for Management Service 787836SJohn.Forte@Sun.COM */ 797836SJohn.Forte@Sun.COM #define FCSSUB_MS_CONFIG_SERVER 0x01 /* Fabric Config Server */ 807836SJohn.Forte@Sun.COM #define FCSSUB_MS_UNZONED_NAME_SERVER 0x02 /* Unzoned Name Server */ 817836SJohn.Forte@Sun.COM #define FCSSUB_MS_ZONE_SERVER 0x03 /* Fabric Zone Server */ 827836SJohn.Forte@Sun.COM 837836SJohn.Forte@Sun.COM /* 847836SJohn.Forte@Sun.COM * FCS subtypes for Time Service 857836SJohn.Forte@Sun.COM */ 867836SJohn.Forte@Sun.COM #define FCSSUB_TS_TIME_SERVER 0x01 /* Time Server */ 877836SJohn.Forte@Sun.COM 887836SJohn.Forte@Sun.COM /* 897836SJohn.Forte@Sun.COM * FCS subtypes for Alias Service 907836SJohn.Forte@Sun.COM */ 917836SJohn.Forte@Sun.COM #define FCSSUB_AS_ALIAS_SERVER 0x01 /* Alias Server */ 927836SJohn.Forte@Sun.COM 937836SJohn.Forte@Sun.COM /* 947836SJohn.Forte@Sun.COM * FCS subtypes for Key Service 957836SJohn.Forte@Sun.COM */ 967836SJohn.Forte@Sun.COM #define FCSSUB_KS_KEY_SERVER 0x00 /* Key Distribution Server */ 977836SJohn.Forte@Sun.COM 987836SJohn.Forte@Sun.COM /* FC-CT response codes */ 997836SJohn.Forte@Sun.COM #define FS_RJT_IU 0x8001 1007836SJohn.Forte@Sun.COM #define FS_ACC_IU 0x8002 1017836SJohn.Forte@Sun.COM 1027836SJohn.Forte@Sun.COM /* FS_RJT Reason Codes */ 1037836SJohn.Forte@Sun.COM #define FSRJT_BADCMD 0x01 /* Invalid command code */ 1047836SJohn.Forte@Sun.COM #define FSRJT_BADVER 0x02 /* Invalid version level */ 1057836SJohn.Forte@Sun.COM #define FSRJT_LOGICALERR 0x03 /* Logical error */ 1067836SJohn.Forte@Sun.COM #define FSRJT_BADSIZE 0x04 /* Invalid IU size */ 1077836SJohn.Forte@Sun.COM #define FSRJT_BUSY 0x05 /* Logical busy */ 1087836SJohn.Forte@Sun.COM #define FSRJT_PROTOCOLERR 0x07 /* Protocol error */ 1097836SJohn.Forte@Sun.COM #define FSRJT_CMDFAILED 0x08 /* Unable to perform command */ 1107836SJohn.Forte@Sun.COM #define FSRJT_UNSUPP 0x0b /* Command not supported */ 1117836SJohn.Forte@Sun.COM #define FSRJT_VENDOR 0xff /* vendor unique error */ 1127836SJohn.Forte@Sun.COM 1137836SJohn.Forte@Sun.COM /* Name Service Command Codes */ 1147836SJohn.Forte@Sun.COM #define NS_GA_NXT 0x0100 /* Get All next */ 1157836SJohn.Forte@Sun.COM #define NS_GPN_ID 0x0112 /* Get Port Name */ 1167836SJohn.Forte@Sun.COM #define NS_GNN_ID 0x0113 /* Get Node Name */ 1177836SJohn.Forte@Sun.COM #define NS_GCS_ID 0x0114 /* Get Class Of service */ 1187836SJohn.Forte@Sun.COM #define NS_GFT_ID 0x0117 /* Get FC-4 Types */ 1197836SJohn.Forte@Sun.COM #define NS_GSPN_ID 0x0118 /* Get Sym Port name */ 1207836SJohn.Forte@Sun.COM #define NS_GPT_ID 0x011A /* Get Port Type */ 1217836SJohn.Forte@Sun.COM #define NS_GID_PN 0x0121 /* Get port id for PN */ 1227836SJohn.Forte@Sun.COM #define NS_GID_NN 0x0131 /* Get port id for NN */ 1237836SJohn.Forte@Sun.COM #define NS_GIP_NN 0x0135 /* Get IP address */ 1247836SJohn.Forte@Sun.COM #define NS_GIPA_NN 0x0136 /* Get I.P.A */ 1257836SJohn.Forte@Sun.COM #define NS_GSNN_NN 0x0139 /* Get Sym Node name */ 1267836SJohn.Forte@Sun.COM #define NS_GNN_IP 0x0153 /* Get Node name for IP */ 1277836SJohn.Forte@Sun.COM #define NS_GIPA_IP 0x0156 /* Get I.P.A for IP */ 1287836SJohn.Forte@Sun.COM #define NS_GID_FT 0x0171 /* Get port Id for FC-4 type */ 1297836SJohn.Forte@Sun.COM #define NS_GID_PT 0x01A1 /* Get port Id for type */ 1307836SJohn.Forte@Sun.COM #define NS_RPN_ID 0x0212 /* Reg port name */ 1317836SJohn.Forte@Sun.COM #define NS_RNN_ID 0x0213 /* Reg node name */ 1327836SJohn.Forte@Sun.COM #define NS_RCS_ID 0x0214 /* Reg C.O.S */ 1337836SJohn.Forte@Sun.COM #define NS_RFT_ID 0x0217 /* Reg FC-4 Types */ 1347836SJohn.Forte@Sun.COM #define NS_RSPN_ID 0x0218 /* Reg Sym Port name */ 1357836SJohn.Forte@Sun.COM #define NS_RPT_ID 0x021A /* Reg Port Type */ 1367836SJohn.Forte@Sun.COM #define NS_RIP_NN 0x0235 /* Reg I.P address */ 1377836SJohn.Forte@Sun.COM #define NS_RIPA_NN 0x0236 /* Reg I.P.A */ 1387836SJohn.Forte@Sun.COM #define NS_RSNN_NN 0x0239 /* Reg Sym Node name */ 1397836SJohn.Forte@Sun.COM #define NS_DA_ID 0x0300 /* De-Register all */ 1407836SJohn.Forte@Sun.COM 1417836SJohn.Forte@Sun.COM /* Name service reject explanation codes */ 1427836SJohn.Forte@Sun.COM #define NSRJTX_NONE 0x00 /* No additional explanation */ 1437836SJohn.Forte@Sun.COM #define NSRJTX_PORTNOTREG 0x01 /* Port ID not registered */ 1447836SJohn.Forte@Sun.COM #define NSRJTX_PWWNNOTREG 0x02 /* Port Name not registered */ 1457836SJohn.Forte@Sun.COM #define NSRJTX_NWWNNOTREG 0x03 /* Node Name not registered */ 1467836SJohn.Forte@Sun.COM #define NSRJTX_CoSNOTREG 0x04 /* Class of Service no registered */ 1477836SJohn.Forte@Sun.COM #define NSRJTX_IPNOTREG 0x05 /* IP Address not registered */ 1487836SJohn.Forte@Sun.COM #define NSRJTX_IPANOTREG 0x06 /* Initial Proc. Assoc not reg. */ 1497836SJohn.Forte@Sun.COM #define NSRJTX_FC4NOTREG 0x07 /* FC$ types not registered */ 1507836SJohn.Forte@Sun.COM #define NSRJTX_SPNNOTREG 0x08 /* Symbolic port name not registered */ 1517836SJohn.Forte@Sun.COM #define NSRJTX_SNNNOTREG 0x09 /* Symbolic node name not registered */ 1527836SJohn.Forte@Sun.COM #define NSRJTX_TYPENOTREG 0x0a /* Port type not registered */ 1537836SJohn.Forte@Sun.COM #define NSRJTX_NOPERM 0x10 /* Access denied */ 1547836SJohn.Forte@Sun.COM #define NSRJTX_BADPORTID 0x11 /* Unacceptable port ID */ 1557836SJohn.Forte@Sun.COM #define NSRJTX_DBEMPTY 0x12 /* Data base empty */ 1567836SJohn.Forte@Sun.COM 157*10264SZhong.Wang@Sun.COM /* Management Service Command Codes */ 158*10264SZhong.Wang@Sun.COM #define MS_GIEL 0x0101 /* Get Interconnect Element List */ 159*10264SZhong.Wang@Sun.COM 1607836SJohn.Forte@Sun.COM #define FC_NS_CLASSF 0x01 1617836SJohn.Forte@Sun.COM #define FC_NS_CLASS1 0x02 1627836SJohn.Forte@Sun.COM #define FC_NS_CLASS2 0x04 1637836SJohn.Forte@Sun.COM #define FC_NS_CLASS3 0x08 1647836SJohn.Forte@Sun.COM #define FC_NS_CLASS4 0x10 1657836SJohn.Forte@Sun.COM #define FC_NS_CLASS5 0x20 1667836SJohn.Forte@Sun.COM #define FC_NS_CLASS6 0x40 1677836SJohn.Forte@Sun.COM 1687836SJohn.Forte@Sun.COM #define FC_NS_PORT_UNKNOWN 0x00 1697836SJohn.Forte@Sun.COM #define FC_NS_PORT_N 0x01 1707836SJohn.Forte@Sun.COM #define FC_NS_PORT_NL 0x02 1717836SJohn.Forte@Sun.COM #define FC_NS_PORT_F_NL 0x03 1727836SJohn.Forte@Sun.COM #define FC_NS_PORT_NX 0x7F 1737836SJohn.Forte@Sun.COM #define FC_NS_PORT_F 0x81 1747836SJohn.Forte@Sun.COM #define FC_NS_PORT_FL 0x82 1757836SJohn.Forte@Sun.COM #define FC_NS_PORT_E 0x84 1767836SJohn.Forte@Sun.COM 1777836SJohn.Forte@Sun.COM #define FC_IS_CMD_A_QUERY(cmd) ((cmd) >= NS_GA_NXT && (cmd) <= NS_GID_PT) 1787836SJohn.Forte@Sun.COM #define FC_IS_CMD_A_REG(cmd) ((cmd) >= NS_RPN_ID && (cmd) <= NS_DA_ID) 1797836SJohn.Forte@Sun.COM #define NS_GAN_RESP_LEN (sizeof (ns_resp_gan_t)) 1807836SJohn.Forte@Sun.COM 1817836SJohn.Forte@Sun.COM /* 1827836SJohn.Forte@Sun.COM * SCR registration function codes 1837836SJohn.Forte@Sun.COM */ 1847836SJohn.Forte@Sun.COM #define FC_SCR_FABRIC_REGISTRATION 0x01 1857836SJohn.Forte@Sun.COM #define FC_SCR_NPORT_REGISTRATION 0x02 1867836SJohn.Forte@Sun.COM #define FC_SCR_FULL_REGISTRATION 0x03 1877836SJohn.Forte@Sun.COM #define FC_SCR_CLEAR_REGISTRATION 0xFF 1887836SJohn.Forte@Sun.COM 1897836SJohn.Forte@Sun.COM /* 1907836SJohn.Forte@Sun.COM * Register port/node name request payload 1917836SJohn.Forte@Sun.COM * 1927836SJohn.Forte@Sun.COM * 'x' means either P (port) or N (node) 1937836SJohn.Forte@Sun.COM */ 1947836SJohn.Forte@Sun.COM typedef struct rxn_id { 1957836SJohn.Forte@Sun.COM fc_portid_t rxn_port_id; /* Port Identfier */ 1967836SJohn.Forte@Sun.COM la_wwn_t rxn_xname; /* Port/Node Name */ 1977836SJohn.Forte@Sun.COM } ns_rxn_req_t; 1987836SJohn.Forte@Sun.COM 1997836SJohn.Forte@Sun.COM /* 2007836SJohn.Forte@Sun.COM * Register Class of service request payload 2017836SJohn.Forte@Sun.COM */ 2027836SJohn.Forte@Sun.COM typedef struct rcos { 2037836SJohn.Forte@Sun.COM fc_portid_t rcos_port_id; 2047836SJohn.Forte@Sun.COM uint32_t rcos_cos; 2057836SJohn.Forte@Sun.COM } ns_rcos_t; 2067836SJohn.Forte@Sun.COM 2077836SJohn.Forte@Sun.COM /* 2087836SJohn.Forte@Sun.COM * Register FC-4 TYPEs request payload 2097836SJohn.Forte@Sun.COM */ 2107836SJohn.Forte@Sun.COM typedef struct rfc_type { 2117836SJohn.Forte@Sun.COM fc_portid_t rfc_port_id; 2127836SJohn.Forte@Sun.COM uchar_t rfc_types[32]; /* bit map of ULP types */ 2137836SJohn.Forte@Sun.COM } ns_rfc_type_t; 2147836SJohn.Forte@Sun.COM 2157836SJohn.Forte@Sun.COM /* 2167836SJohn.Forte@Sun.COM * Register symbolic port name request payload 2177836SJohn.Forte@Sun.COM */ 2187836SJohn.Forte@Sun.COM typedef struct spn { 2197836SJohn.Forte@Sun.COM fc_portid_t spn_port_id; 2207836SJohn.Forte@Sun.COM uchar_t spn_len; 2217836SJohn.Forte@Sun.COM /* 2227836SJohn.Forte@Sun.COM * What follows here is the actual name 2237836SJohn.Forte@Sun.COM * which is allocated on the fly during 2247836SJohn.Forte@Sun.COM * packet allocation. 2257836SJohn.Forte@Sun.COM */ 2267836SJohn.Forte@Sun.COM } ns_spn_t; 2277836SJohn.Forte@Sun.COM 2287836SJohn.Forte@Sun.COM /* 2297836SJohn.Forte@Sun.COM * Register port type request payload 2307836SJohn.Forte@Sun.COM */ 2317836SJohn.Forte@Sun.COM typedef struct rpt { 2327836SJohn.Forte@Sun.COM fc_portid_t rpt_port_id; 2337836SJohn.Forte@Sun.COM fc_porttype_t rpt_type; 2347836SJohn.Forte@Sun.COM } ns_rpt_t; 2357836SJohn.Forte@Sun.COM 2367836SJohn.Forte@Sun.COM /* 2377836SJohn.Forte@Sun.COM * Register IP address request payload 2387836SJohn.Forte@Sun.COM */ 2397836SJohn.Forte@Sun.COM typedef struct rip { 2407836SJohn.Forte@Sun.COM la_wwn_t rip_node_name; 2417836SJohn.Forte@Sun.COM uchar_t rip_ip_addr[16]; 2427836SJohn.Forte@Sun.COM } ns_rip_t; 2437836SJohn.Forte@Sun.COM 2447836SJohn.Forte@Sun.COM /* 2457836SJohn.Forte@Sun.COM * Register Initial Process Associator request payload 2467836SJohn.Forte@Sun.COM */ 2477836SJohn.Forte@Sun.COM typedef struct ipa { 2487836SJohn.Forte@Sun.COM la_wwn_t ipa_node_name; 2497836SJohn.Forte@Sun.COM uchar_t ipa_value[8]; 2507836SJohn.Forte@Sun.COM } ns_ipa_t; 2517836SJohn.Forte@Sun.COM 2527836SJohn.Forte@Sun.COM /* 2537836SJohn.Forte@Sun.COM * Register Symbolic Node Name request payload 2547836SJohn.Forte@Sun.COM */ 2557836SJohn.Forte@Sun.COM typedef struct snn { 2567836SJohn.Forte@Sun.COM la_wwn_t snn_node_name; 2577836SJohn.Forte@Sun.COM uchar_t snn_len; 2587836SJohn.Forte@Sun.COM /* 2597836SJohn.Forte@Sun.COM * What follows here is the actual name 2607836SJohn.Forte@Sun.COM * which is allocated on the fly during 2617836SJohn.Forte@Sun.COM * packet allocation. 2627836SJohn.Forte@Sun.COM */ 2637836SJohn.Forte@Sun.COM } ns_snn_t; 2647836SJohn.Forte@Sun.COM 2657836SJohn.Forte@Sun.COM /* 2667836SJohn.Forte@Sun.COM * Remove all request payload 2677836SJohn.Forte@Sun.COM */ 2687836SJohn.Forte@Sun.COM typedef struct remall { 2697836SJohn.Forte@Sun.COM fc_portid_t rem_port_id; 2707836SJohn.Forte@Sun.COM } ns_remall_t; 2717836SJohn.Forte@Sun.COM 2727836SJohn.Forte@Sun.COM typedef fc_ct_header_t fc_reg_resp_t; 2737836SJohn.Forte@Sun.COM typedef fc_ct_header_t fc_query_resp_t; 2747836SJohn.Forte@Sun.COM 2757836SJohn.Forte@Sun.COM typedef struct ns_req_gid_pt { 2767836SJohn.Forte@Sun.COM fc_porttype_t port_type; 2777836SJohn.Forte@Sun.COM } ns_req_gid_pt_t; 2787836SJohn.Forte@Sun.COM 2797836SJohn.Forte@Sun.COM typedef struct ns_resp_gid_pt { 2807836SJohn.Forte@Sun.COM fc_portid_t gid_port_id; 2817836SJohn.Forte@Sun.COM } ns_resp_gid_pt_t; 2827836SJohn.Forte@Sun.COM 2837836SJohn.Forte@Sun.COM typedef struct ns_req_gan { 2847836SJohn.Forte@Sun.COM fc_portid_t pid; 2857836SJohn.Forte@Sun.COM } ns_req_gan_t; 2867836SJohn.Forte@Sun.COM 2877836SJohn.Forte@Sun.COM typedef struct ns_resp_gan { 2887836SJohn.Forte@Sun.COM fc_porttype_t gan_type_id; /* type and id next */ 2897836SJohn.Forte@Sun.COM la_wwn_t gan_pwwn; /* Port Name */ 2907836SJohn.Forte@Sun.COM uchar_t gan_spnlen; /* Sym P Name Len */ 2917836SJohn.Forte@Sun.COM char gan_spname[255]; /* Sym Port name */ 2927836SJohn.Forte@Sun.COM 2937836SJohn.Forte@Sun.COM la_wwn_t gan_nwwn; /* Node Name */ 2947836SJohn.Forte@Sun.COM uchar_t gan_snnlen; /* Sym N name Len */ 2957836SJohn.Forte@Sun.COM char gan_snname[255]; /* Sym Node name */ 2967836SJohn.Forte@Sun.COM 2977836SJohn.Forte@Sun.COM uchar_t gan_ipa[8]; /* Initial Proc assoc */ 2987836SJohn.Forte@Sun.COM uchar_t gan_ip[16]; /* IP Address */ 2997836SJohn.Forte@Sun.COM uint32_t gan_cos; /* Class of Service */ 3007836SJohn.Forte@Sun.COM 3017836SJohn.Forte@Sun.COM uint32_t gan_fc4types[8]; /* FC-4 Types */ 3027836SJohn.Forte@Sun.COM } ns_resp_gan_t; 3037836SJohn.Forte@Sun.COM 3047836SJohn.Forte@Sun.COM typedef struct ns_req_gid_pn { 3057836SJohn.Forte@Sun.COM la_wwn_t pwwn; 3067836SJohn.Forte@Sun.COM } ns_req_gid_pn_t; 3077836SJohn.Forte@Sun.COM 3087836SJohn.Forte@Sun.COM typedef struct ns_resp_gid_pn { 3097836SJohn.Forte@Sun.COM fc_portid_t pid; 3107836SJohn.Forte@Sun.COM } ns_resp_gid_pn_t; 3117836SJohn.Forte@Sun.COM 3127836SJohn.Forte@Sun.COM typedef struct ns_req_gpn_id { 3137836SJohn.Forte@Sun.COM fc_portid_t pid; 3147836SJohn.Forte@Sun.COM } ns_req_gpn_id_t; 3157836SJohn.Forte@Sun.COM 3167836SJohn.Forte@Sun.COM typedef struct ns_resp_gpn_id { 3177836SJohn.Forte@Sun.COM la_wwn_t pwwn; 3187836SJohn.Forte@Sun.COM } ns_resp_gpn_id_t; 3197836SJohn.Forte@Sun.COM 3207836SJohn.Forte@Sun.COM typedef struct ns_req_gpt_id { 3217836SJohn.Forte@Sun.COM fc_portid_t pid; 3227836SJohn.Forte@Sun.COM } ns_req_gpt_id_t; 3237836SJohn.Forte@Sun.COM 3247836SJohn.Forte@Sun.COM typedef struct ns_resp_gpt_id { 3257836SJohn.Forte@Sun.COM fc_porttype_t port_type; 3267836SJohn.Forte@Sun.COM } ns_resp_gpt_id_t; 3277836SJohn.Forte@Sun.COM 3287836SJohn.Forte@Sun.COM #if !defined(__lint) 3297836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpn_id)) 3307836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", rxn_id)) 3317836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpn_id)) 3327836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gid_pn)) 3337836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pn)) 3347836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gan)) 3357836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gan)) 3367836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pt)) 3377836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpt_id)) 3387836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpt_id)) 3397836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", remall)) 3407836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", snn)) 3417836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ipa)) 3427836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", rip)) 3437836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", rpt)) 3447836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", spn)) 3457836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", rfc_type)) 3467836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", rcos)) 3477836SJohn.Forte@Sun.COM #endif /* __lint */ 3487836SJohn.Forte@Sun.COM 3497836SJohn.Forte@Sun.COM #ifdef __cplusplus 3507836SJohn.Forte@Sun.COM } 3517836SJohn.Forte@Sun.COM #endif 3527836SJohn.Forte@Sun.COM 3537836SJohn.Forte@Sun.COM #endif /* _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H */ 354