1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _FC_NS_H_ 7 #define _FC_NS_H_ 8 #include <linux/types.h> 9 #define FC_NS_SUBTYPE 2 10 enum fc_ns_req { 11 FC_NS_GA_NXT = 0x0100, 12 FC_NS_GI_A = 0x0101, 13 FC_NS_GPN_ID = 0x0112, 14 FC_NS_GNN_ID = 0x0113, 15 FC_NS_GSPN_ID = 0x0118, 16 FC_NS_GID_PN = 0x0121, 17 FC_NS_GID_NN = 0x0131, 18 FC_NS_GID_FT = 0x0171, 19 FC_NS_GPN_FT = 0x0172, 20 FC_NS_GID_PT = 0x01a1, 21 FC_NS_RPN_ID = 0x0212, 22 FC_NS_RNN_ID = 0x0213, 23 FC_NS_RFT_ID = 0x0217, 24 FC_NS_RSPN_ID = 0x0218, 25 FC_NS_RFF_ID = 0x021f, 26 FC_NS_RSNN_NN = 0x0239, 27 }; 28 enum fc_ns_pt { 29 FC_NS_UNID_PORT = 0x00, 30 FC_NS_N_PORT = 0x01, 31 FC_NS_NL_PORT = 0x02, 32 FC_NS_FNL_PORT = 0x03, 33 FC_NS_NX_PORT = 0x7f, 34 FC_NS_F_PORT = 0x81, 35 FC_NS_FL_PORT = 0x82, 36 FC_NS_E_PORT = 0x84, 37 FC_NS_B_PORT = 0x85, 38 }; 39 struct fc_ns_pt_obj { 40 __u8 pt_type; 41 }; 42 struct fc_ns_fid { 43 __u8 fp_flags; 44 __u8 fp_fid[3]; 45 }; 46 #define FC_NS_FID_LAST 0x80 47 #define FC_NS_TYPES 256 48 #define FC_NS_BPW 32 49 struct fc_ns_fts { 50 __be32 ff_type_map[FC_NS_TYPES / FC_NS_BPW]; 51 }; 52 struct fc_ns_ff { 53 __be32 fd_feat[FC_NS_TYPES * 4 / FC_NS_BPW]; 54 }; 55 struct fc_ns_gid_pt { 56 __u8 fn_pt_type; 57 __u8 fn_domain_id_scope; 58 __u8 fn_area_id_scope; 59 __u8 fn_resvd; 60 }; 61 struct fc_ns_gid_ft { 62 __u8 fn_resvd; 63 __u8 fn_domain_id_scope; 64 __u8 fn_area_id_scope; 65 __u8 fn_fc4_type; 66 }; 67 struct fc_gpn_ft_resp { 68 __u8 fp_flags; 69 __u8 fp_fid[3]; 70 __be32 fp_resvd; 71 __be64 fp_wwpn; 72 }; 73 struct fc_ns_gid_pn { 74 __be64 fn_wwpn; 75 }; 76 struct fc_gid_pn_resp { 77 __u8 fp_resvd; 78 __u8 fp_fid[3]; 79 }; 80 struct fc_gspn_resp { 81 __u8 fp_name_len; 82 char fp_name[]; 83 }; 84 struct fc_ns_rft_id { 85 struct fc_ns_fid fr_fid; 86 struct fc_ns_fts fr_fts; 87 }; 88 struct fc_ns_rn_id { 89 struct fc_ns_fid fr_fid; 90 __be64 fr_wwn; 91 } __attribute__((__packed__)); 92 struct fc_ns_rsnn { 93 __be64 fr_wwn; 94 __u8 fr_name_len; 95 char fr_name[]; 96 } __attribute__((__packed__)); 97 struct fc_ns_rspn { 98 struct fc_ns_fid fr_fid; 99 __u8 fr_name_len; 100 char fr_name[]; 101 } __attribute__((__packed__)); 102 struct fc_ns_rff_id { 103 struct fc_ns_fid fr_fid; 104 __u8 fr_resvd[2]; 105 __u8 fr_feat; 106 __u8 fr_type; 107 } __attribute__((__packed__)); 108 #endif 109