1*7836SJohn.Forte@Sun.COM /* 2*7836SJohn.Forte@Sun.COM * CDDL HEADER START 3*7836SJohn.Forte@Sun.COM * 4*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 5*7836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 6*7836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 7*7836SJohn.Forte@Sun.COM * 8*7836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*7836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*7836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 11*7836SJohn.Forte@Sun.COM * and limitations under the License. 12*7836SJohn.Forte@Sun.COM * 13*7836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*7836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*7836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*7836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*7836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * CDDL HEADER END 20*7836SJohn.Forte@Sun.COM */ 21*7836SJohn.Forte@Sun.COM /* 22*7836SJohn.Forte@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*7836SJohn.Forte@Sun.COM * Use is subject to license terms. 24*7836SJohn.Forte@Sun.COM */ 25*7836SJohn.Forte@Sun.COM 26*7836SJohn.Forte@Sun.COM #ifndef _FC_APPIF_H 27*7836SJohn.Forte@Sun.COM #define _FC_APPIF_H 28*7836SJohn.Forte@Sun.COM 29*7836SJohn.Forte@Sun.COM #include <sys/note.h> 30*7836SJohn.Forte@Sun.COM 31*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 32*7836SJohn.Forte@Sun.COM extern "C" { 33*7836SJohn.Forte@Sun.COM #endif 34*7836SJohn.Forte@Sun.COM 35*7836SJohn.Forte@Sun.COM #if !defined(_BIT_FIELDS_LTOH) && !defined(_BIT_FIELDS_HTOL) 36*7836SJohn.Forte@Sun.COM #error One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined 37*7836SJohn.Forte@Sun.COM #endif /* _BIT_FIELDS_LTOH */ 38*7836SJohn.Forte@Sun.COM 39*7836SJohn.Forte@Sun.COM /* 40*7836SJohn.Forte@Sun.COM * Local port topology definitions 41*7836SJohn.Forte@Sun.COM * 42*7836SJohn.Forte@Sun.COM * fp/fctl use these a lot with the fp_topology field in the fc_port_t struct, 43*7836SJohn.Forte@Sun.COM * but use is not limited to fp_topology. These are also understood by ULPs. 44*7836SJohn.Forte@Sun.COM */ 45*7836SJohn.Forte@Sun.COM #define FC_TOP_UNKNOWN 0 46*7836SJohn.Forte@Sun.COM #define FC_TOP_PRIVATE_LOOP 1 47*7836SJohn.Forte@Sun.COM #define FC_TOP_PUBLIC_LOOP 2 48*7836SJohn.Forte@Sun.COM #define FC_TOP_FABRIC 3 49*7836SJohn.Forte@Sun.COM #define FC_TOP_PT_PT 4 50*7836SJohn.Forte@Sun.COM #define FC_TOP_NO_NS 5 51*7836SJohn.Forte@Sun.COM 52*7836SJohn.Forte@Sun.COM /* 53*7836SJohn.Forte@Sun.COM * Macros used with the preceeding topology #defines. 54*7836SJohn.Forte@Sun.COM * fp/fctl use these a lot with the fp_topology field in the fc_port_t struct, 55*7836SJohn.Forte@Sun.COM * but use is not limited to fp_topology. These are also understood by ULPs. 56*7836SJohn.Forte@Sun.COM */ 57*7836SJohn.Forte@Sun.COM #define FC_TOP_EXTERNAL(t) FC_IS_TOP_SWITCH(t) 58*7836SJohn.Forte@Sun.COM #define FC_IS_TOP_SWITCH(t) (((t) == FC_TOP_FABRIC) ||\ 59*7836SJohn.Forte@Sun.COM ((t) == FC_TOP_PUBLIC_LOOP)) 60*7836SJohn.Forte@Sun.COM 61*7836SJohn.Forte@Sun.COM /* 62*7836SJohn.Forte@Sun.COM * fc_remote_port state (map_state) definitions. 63*7836SJohn.Forte@Sun.COM * 64*7836SJohn.Forte@Sun.COM * Used with the pd_state field in the fc_remote_port_t struct. 65*7836SJohn.Forte@Sun.COM */ 66*7836SJohn.Forte@Sun.COM #define PORT_DEVICE_INVALID 0 /* State when created or login failed */ 67*7836SJohn.Forte@Sun.COM #define PORT_DEVICE_VALID 1 /* Logged out */ 68*7836SJohn.Forte@Sun.COM #define PORT_DEVICE_LOGGED_IN 2 /* Logged in */ 69*7836SJohn.Forte@Sun.COM 70*7836SJohn.Forte@Sun.COM 71*7836SJohn.Forte@Sun.COM /* 72*7836SJohn.Forte@Sun.COM * Firmware, FCode revision field lengths 73*7836SJohn.Forte@Sun.COM */ 74*7836SJohn.Forte@Sun.COM #define FC_FCODE_REV_SIZE 25 75*7836SJohn.Forte@Sun.COM #define FC_FW_REV_SIZE 25 76*7836SJohn.Forte@Sun.COM 77*7836SJohn.Forte@Sun.COM typedef struct ct_header { 78*7836SJohn.Forte@Sun.COM #if defined(_BIT_FIELDS_LTOH) 79*7836SJohn.Forte@Sun.COM uint32_t ct_inid : 24, /* Initial Node ID */ 80*7836SJohn.Forte@Sun.COM ct_rev : 8; /* Revision */ 81*7836SJohn.Forte@Sun.COM 82*7836SJohn.Forte@Sun.COM uint32_t ct_reserved1 : 8, 83*7836SJohn.Forte@Sun.COM ct_options : 8, 84*7836SJohn.Forte@Sun.COM ct_fcssubtype : 8, 85*7836SJohn.Forte@Sun.COM ct_fcstype : 8; 86*7836SJohn.Forte@Sun.COM 87*7836SJohn.Forte@Sun.COM uint32_t ct_aiusize : 16, 88*7836SJohn.Forte@Sun.COM ct_cmdrsp : 16; 89*7836SJohn.Forte@Sun.COM 90*7836SJohn.Forte@Sun.COM uint32_t ct_vendor : 8, 91*7836SJohn.Forte@Sun.COM ct_expln : 8, 92*7836SJohn.Forte@Sun.COM ct_reason : 8, 93*7836SJohn.Forte@Sun.COM ct_reserved2 : 8; 94*7836SJohn.Forte@Sun.COM 95*7836SJohn.Forte@Sun.COM #else 96*7836SJohn.Forte@Sun.COM uint32_t ct_rev : 8, /* revision */ 97*7836SJohn.Forte@Sun.COM ct_inid : 24; /* initial node ID */ 98*7836SJohn.Forte@Sun.COM uint32_t ct_fcstype : 8, /* type of service */ 99*7836SJohn.Forte@Sun.COM ct_fcssubtype : 8, /* subtype of service */ 100*7836SJohn.Forte@Sun.COM ct_options : 8, /* options */ 101*7836SJohn.Forte@Sun.COM ct_reserved1 : 8; /* reserved */ 102*7836SJohn.Forte@Sun.COM 103*7836SJohn.Forte@Sun.COM uint32_t ct_cmdrsp : 16, /* command/response code */ 104*7836SJohn.Forte@Sun.COM ct_aiusize : 16; /* AIU/residual size */ 105*7836SJohn.Forte@Sun.COM 106*7836SJohn.Forte@Sun.COM uint32_t ct_reserved2 : 8, /* reserved */ 107*7836SJohn.Forte@Sun.COM ct_reason : 8, /* reason code */ 108*7836SJohn.Forte@Sun.COM ct_expln : 8, /* reason explanation */ 109*7836SJohn.Forte@Sun.COM ct_vendor : 8; /* vendor unique */ 110*7836SJohn.Forte@Sun.COM 111*7836SJohn.Forte@Sun.COM #endif /* _BIT_FIELDS_LTOH */ 112*7836SJohn.Forte@Sun.COM } fc_ct_header_t; 113*7836SJohn.Forte@Sun.COM 114*7836SJohn.Forte@Sun.COM /* World Wide Name format */ 115*7836SJohn.Forte@Sun.COM typedef union la_wwn { 116*7836SJohn.Forte@Sun.COM uchar_t raw_wwn[8]; 117*7836SJohn.Forte@Sun.COM uint32_t i_wwn[2]; 118*7836SJohn.Forte@Sun.COM 119*7836SJohn.Forte@Sun.COM #if defined(_BIT_FIELDS_LTOH) 120*7836SJohn.Forte@Sun.COM struct { 121*7836SJohn.Forte@Sun.COM uint32_t wwn_hi : 16, 122*7836SJohn.Forte@Sun.COM nport_id : 12, 123*7836SJohn.Forte@Sun.COM naa_id : 4; 124*7836SJohn.Forte@Sun.COM uint32_t wwn_lo; 125*7836SJohn.Forte@Sun.COM }w; 126*7836SJohn.Forte@Sun.COM 127*7836SJohn.Forte@Sun.COM #else 128*7836SJohn.Forte@Sun.COM struct { 129*7836SJohn.Forte@Sun.COM uint32_t naa_id : 4, 130*7836SJohn.Forte@Sun.COM nport_id : 12, 131*7836SJohn.Forte@Sun.COM wwn_hi : 16; 132*7836SJohn.Forte@Sun.COM uint32_t wwn_lo; 133*7836SJohn.Forte@Sun.COM }w; 134*7836SJohn.Forte@Sun.COM #endif /* _BIT_FIELDS_LTOH */ 135*7836SJohn.Forte@Sun.COM } la_wwn_t; 136*7836SJohn.Forte@Sun.COM 137*7836SJohn.Forte@Sun.COM /* 138*7836SJohn.Forte@Sun.COM * Values for naa_id 139*7836SJohn.Forte@Sun.COM */ 140*7836SJohn.Forte@Sun.COM #define NAA_ID_IEEE 1 141*7836SJohn.Forte@Sun.COM #define NAA_ID_IEEE_EXTENDED 2 142*7836SJohn.Forte@Sun.COM 143*7836SJohn.Forte@Sun.COM #ifndef FC_WWN_SIZE 144*7836SJohn.Forte@Sun.COM #define FC_WWN_SIZE (sizeof (la_wwn_t)) 145*7836SJohn.Forte@Sun.COM #endif /* FC_WWN_SIZE */ 146*7836SJohn.Forte@Sun.COM 147*7836SJohn.Forte@Sun.COM typedef struct service_param { 148*7836SJohn.Forte@Sun.COM uint16_t class_opt; 149*7836SJohn.Forte@Sun.COM uint16_t initiator_ctl; 150*7836SJohn.Forte@Sun.COM uint16_t recipient_ctl; 151*7836SJohn.Forte@Sun.COM uint16_t rcv_size; 152*7836SJohn.Forte@Sun.COM uint16_t conc_sequences; 153*7836SJohn.Forte@Sun.COM uint16_t n_port_e_to_e_credit; 154*7836SJohn.Forte@Sun.COM uint16_t open_seq_per_xchng; 155*7836SJohn.Forte@Sun.COM uint16_t rsvd; 156*7836SJohn.Forte@Sun.COM } svc_param_t; 157*7836SJohn.Forte@Sun.COM 158*7836SJohn.Forte@Sun.COM typedef struct common_service { 159*7836SJohn.Forte@Sun.COM uint16_t fcph_version; 160*7836SJohn.Forte@Sun.COM uint16_t btob_credit; 161*7836SJohn.Forte@Sun.COM uint16_t cmn_features; 162*7836SJohn.Forte@Sun.COM uint16_t rx_bufsize; 163*7836SJohn.Forte@Sun.COM uint16_t conc_sequences; 164*7836SJohn.Forte@Sun.COM uint16_t relative_offset; 165*7836SJohn.Forte@Sun.COM uint32_t e_d_tov; 166*7836SJohn.Forte@Sun.COM } com_svc_t; 167*7836SJohn.Forte@Sun.COM 168*7836SJohn.Forte@Sun.COM typedef struct ls_code { 169*7836SJohn.Forte@Sun.COM #if defined(_BIT_FIELDS_LTOH) 170*7836SJohn.Forte@Sun.COM uint32_t mbz : 24, 171*7836SJohn.Forte@Sun.COM ls_code : 8; 172*7836SJohn.Forte@Sun.COM 173*7836SJohn.Forte@Sun.COM #else 174*7836SJohn.Forte@Sun.COM uint32_t ls_code : 8, 175*7836SJohn.Forte@Sun.COM mbz : 24; 176*7836SJohn.Forte@Sun.COM #endif /* _BIT_FIELDS_LTOH */ 177*7836SJohn.Forte@Sun.COM } ls_code_t; 178*7836SJohn.Forte@Sun.COM 179*7836SJohn.Forte@Sun.COM 180*7836SJohn.Forte@Sun.COM /* Login Payload. */ 181*7836SJohn.Forte@Sun.COM typedef struct la_els_logi { 182*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 183*7836SJohn.Forte@Sun.COM com_svc_t common_service; 184*7836SJohn.Forte@Sun.COM 185*7836SJohn.Forte@Sun.COM la_wwn_t nport_ww_name; 186*7836SJohn.Forte@Sun.COM la_wwn_t node_ww_name; 187*7836SJohn.Forte@Sun.COM 188*7836SJohn.Forte@Sun.COM svc_param_t class_1; 189*7836SJohn.Forte@Sun.COM svc_param_t class_2; 190*7836SJohn.Forte@Sun.COM svc_param_t class_3; 191*7836SJohn.Forte@Sun.COM 192*7836SJohn.Forte@Sun.COM uchar_t reserved[16]; 193*7836SJohn.Forte@Sun.COM uchar_t vendor_version[16]; 194*7836SJohn.Forte@Sun.COM } la_els_logi_t; 195*7836SJohn.Forte@Sun.COM 196*7836SJohn.Forte@Sun.COM typedef struct fc_ns_cmd { 197*7836SJohn.Forte@Sun.COM uint32_t ns_flags; /* for future use */ 198*7836SJohn.Forte@Sun.COM uint16_t ns_cmd; /* NS command type */ 199*7836SJohn.Forte@Sun.COM uint16_t ns_req_len; 200*7836SJohn.Forte@Sun.COM caddr_t ns_req_payload; /* No CT header */ 201*7836SJohn.Forte@Sun.COM uint16_t ns_resp_len; 202*7836SJohn.Forte@Sun.COM caddr_t ns_resp_payload; /* no CT header */ 203*7836SJohn.Forte@Sun.COM void *ns_fctl_private; /* Transport private */ 204*7836SJohn.Forte@Sun.COM fc_ct_header_t ns_resp_hdr; /* for the curious */ 205*7836SJohn.Forte@Sun.COM } fc_ns_cmd_t; 206*7836SJohn.Forte@Sun.COM 207*7836SJohn.Forte@Sun.COM #if defined(_SYSCALL32) 208*7836SJohn.Forte@Sun.COM 209*7836SJohn.Forte@Sun.COM #if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4 210*7836SJohn.Forte@Sun.COM #pragma pack(4) 211*7836SJohn.Forte@Sun.COM #endif 212*7836SJohn.Forte@Sun.COM 213*7836SJohn.Forte@Sun.COM typedef struct la_els_logi32 { 214*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 215*7836SJohn.Forte@Sun.COM com_svc_t common_service; 216*7836SJohn.Forte@Sun.COM la_wwn_t nport_ww_name; 217*7836SJohn.Forte@Sun.COM la_wwn_t node_ww_name; 218*7836SJohn.Forte@Sun.COM svc_param_t class_1; 219*7836SJohn.Forte@Sun.COM svc_param_t class_2; 220*7836SJohn.Forte@Sun.COM svc_param_t class_3; 221*7836SJohn.Forte@Sun.COM uchar_t reserved[16]; 222*7836SJohn.Forte@Sun.COM uchar_t vendor_version[16]; 223*7836SJohn.Forte@Sun.COM } la_els_logi32_t; 224*7836SJohn.Forte@Sun.COM 225*7836SJohn.Forte@Sun.COM typedef struct fc_ns_cmd32 { 226*7836SJohn.Forte@Sun.COM uint32_t ns_flags; /* for future use */ 227*7836SJohn.Forte@Sun.COM uint16_t ns_cmd; /* NS command type */ 228*7836SJohn.Forte@Sun.COM uint16_t ns_req_len; 229*7836SJohn.Forte@Sun.COM caddr_t ns_req_payload; /* No CT header */ 230*7836SJohn.Forte@Sun.COM uint16_t ns_resp_len; 231*7836SJohn.Forte@Sun.COM caddr_t ns_resp_payload; /* no CT header */ 232*7836SJohn.Forte@Sun.COM void *ns_fctl_private; /* Transport private */ 233*7836SJohn.Forte@Sun.COM fc_ct_header_t ns_resp_hdr; /* for the curious */ 234*7836SJohn.Forte@Sun.COM } fc_ns_cmd32_t; 235*7836SJohn.Forte@Sun.COM 236*7836SJohn.Forte@Sun.COM #if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4 237*7836SJohn.Forte@Sun.COM #pragma pack() 238*7836SJohn.Forte@Sun.COM #endif 239*7836SJohn.Forte@Sun.COM 240*7836SJohn.Forte@Sun.COM #endif /* _SYSCALL32 */ 241*7836SJohn.Forte@Sun.COM 242*7836SJohn.Forte@Sun.COM /* Link Error Parameters in the RLS Accept payload */ 243*7836SJohn.Forte@Sun.COM typedef struct fc_rls_acc_params { 244*7836SJohn.Forte@Sun.COM uint32_t rls_link_fail; /* link failure count */ 245*7836SJohn.Forte@Sun.COM uint32_t rls_sync_loss; /* loss of sync count */ 246*7836SJohn.Forte@Sun.COM uint32_t rls_sig_loss; /* loss of signal count */ 247*7836SJohn.Forte@Sun.COM uint32_t rls_prim_seq_err; /* primitive seq error */ 248*7836SJohn.Forte@Sun.COM uint32_t rls_invalid_word; /* invalid tx word */ 249*7836SJohn.Forte@Sun.COM uint32_t rls_invalid_crc; /* invalid CRC count */ 250*7836SJohn.Forte@Sun.COM } fc_rls_acc_t; 251*7836SJohn.Forte@Sun.COM 252*7836SJohn.Forte@Sun.COM /* RLS Payload. */ 253*7836SJohn.Forte@Sun.COM typedef struct la_els_rls { 254*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 255*7836SJohn.Forte@Sun.COM fc_portid_t rls_portid; /* port identifier */ 256*7836SJohn.Forte@Sun.COM } la_els_rls_t; 257*7836SJohn.Forte@Sun.COM 258*7836SJohn.Forte@Sun.COM /* RLS accept payload */ 259*7836SJohn.Forte@Sun.COM typedef struct la_els_rls_acc { 260*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 261*7836SJohn.Forte@Sun.COM fc_rls_acc_t rls_link_params; /* link error status block */ 262*7836SJohn.Forte@Sun.COM } la_els_rls_acc_t; 263*7836SJohn.Forte@Sun.COM 264*7836SJohn.Forte@Sun.COM /* Node Id Parameters in the RNID Get/Set Accept/Request payload */ 265*7836SJohn.Forte@Sun.COM typedef struct fc_rnid_params { 266*7836SJohn.Forte@Sun.COM uchar_t global_id[16]; /* global name */ 267*7836SJohn.Forte@Sun.COM uint32_t unit_type; /* unit type */ 268*7836SJohn.Forte@Sun.COM uint32_t port_id; /* port id */ 269*7836SJohn.Forte@Sun.COM uint32_t num_attached; /* number of attached nodes */ 270*7836SJohn.Forte@Sun.COM uint16_t ip_version; /* ip version */ 271*7836SJohn.Forte@Sun.COM uint16_t udp_port; /* udp port number */ 272*7836SJohn.Forte@Sun.COM uchar_t ip_addr[16]; /* ip address */ 273*7836SJohn.Forte@Sun.COM uint16_t specific_id_resv; /* reserved */ 274*7836SJohn.Forte@Sun.COM uint16_t topo_flags; /* topology discovery flags */ 275*7836SJohn.Forte@Sun.COM } fc_rnid_t; 276*7836SJohn.Forte@Sun.COM 277*7836SJohn.Forte@Sun.COM /* RNID get data format flag */ 278*7836SJohn.Forte@Sun.COM #define FCIO_CFLAGS_RNID_GET_GENERAL_TOPOLOGY 0xDF 279*7836SJohn.Forte@Sun.COM #define FCIO_CFLAGS_RNID_GET_VENDOR_SPECIFIC 0xE0 280*7836SJohn.Forte@Sun.COM 281*7836SJohn.Forte@Sun.COM /* RNID maximum data length - common data(16) + specific data(252) */ 282*7836SJohn.Forte@Sun.COM #define FCIO_RNID_MAX_DATA_LEN 268 283*7836SJohn.Forte@Sun.COM 284*7836SJohn.Forte@Sun.COM /* RNID Payload. */ 285*7836SJohn.Forte@Sun.COM typedef struct la_els_rnid { 286*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 287*7836SJohn.Forte@Sun.COM uchar_t data_format; /* data format returned */ 288*7836SJohn.Forte@Sun.COM uchar_t resv[3]; 289*7836SJohn.Forte@Sun.COM } la_els_rnid_t; 290*7836SJohn.Forte@Sun.COM 291*7836SJohn.Forte@Sun.COM /* 292*7836SJohn.Forte@Sun.COM * ELS RNID header 293*7836SJohn.Forte@Sun.COM * - cmn_len can be 0 or 16 - if it is 0 then specific data starts at 294*7836SJohn.Forte@Sun.COM * offset 8 else specific data starts at offset 24 in the RNID els response 295*7836SJohn.Forte@Sun.COM */ 296*7836SJohn.Forte@Sun.COM typedef struct fc_rnid_hdr { 297*7836SJohn.Forte@Sun.COM uchar_t data_format; 298*7836SJohn.Forte@Sun.COM uchar_t cmn_len; 299*7836SJohn.Forte@Sun.COM uchar_t resv; 300*7836SJohn.Forte@Sun.COM uchar_t specific_len; 301*7836SJohn.Forte@Sun.COM }fc_rnid_hdr_t; 302*7836SJohn.Forte@Sun.COM 303*7836SJohn.Forte@Sun.COM typedef struct la_els_rnid_acc { 304*7836SJohn.Forte@Sun.COM ls_code_t ls_code; 305*7836SJohn.Forte@Sun.COM fc_rnid_hdr_t hdr; 306*7836SJohn.Forte@Sun.COM uchar_t data[FCIO_RNID_MAX_DATA_LEN]; 307*7836SJohn.Forte@Sun.COM } la_els_rnid_acc_t; 308*7836SJohn.Forte@Sun.COM 309*7836SJohn.Forte@Sun.COM typedef struct la_npiv_create_entry { 310*7836SJohn.Forte@Sun.COM la_wwn_t VNodeWWN; 311*7836SJohn.Forte@Sun.COM la_wwn_t VPortWWN; 312*7836SJohn.Forte@Sun.COM uint32_t vindex; 313*7836SJohn.Forte@Sun.COM } la_npiv_create_entry_t; 314*7836SJohn.Forte@Sun.COM 315*7836SJohn.Forte@Sun.COM #if !defined(__lint) 316*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", fc_ns_cmd)) 317*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", ct_header)) 318*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_els_logi)) 319*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_wwn)) 320*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", fc_rls_acc_params)) 321*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_els_rls)) 322*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_els_rls_acc)) 323*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", fc_rnid_params)) 324*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_els_rnid)) 325*7836SJohn.Forte@Sun.COM _NOTE(SCHEME_PROTECTS_DATA("unique per request", la_els_rnid_acc)) 326*7836SJohn.Forte@Sun.COM #endif /* __lint */ 327*7836SJohn.Forte@Sun.COM 328*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 329*7836SJohn.Forte@Sun.COM } 330*7836SJohn.Forte@Sun.COM #endif 331*7836SJohn.Forte@Sun.COM 332*7836SJohn.Forte@Sun.COM #endif /* _FC_APPIF_H */ 333