| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| *** To edit the content of this header, modify the corresponding |
| *** source file (e.g. under external/kernel-headers/original/) then |
| *** run bionic/libc/kernel/tools/update_all.py |
| *** |
| *** Any manual change here will be lost the next time this script will |
| *** be run. You've been warned! |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef _FC_NS_H_ |
| #define _FC_NS_H_ |
| #include <linux/types.h> |
| #define FC_NS_SUBTYPE 2 |
| enum fc_ns_req { |
| FC_NS_GA_NXT = 0x0100, |
| FC_NS_GI_A = 0x0101, |
| FC_NS_GPN_ID = 0x0112, |
| FC_NS_GNN_ID = 0x0113, |
| FC_NS_GSPN_ID = 0x0118, |
| FC_NS_GID_PN = 0x0121, |
| FC_NS_GID_NN = 0x0131, |
| FC_NS_GID_FT = 0x0171, |
| FC_NS_GPN_FT = 0x0172, |
| FC_NS_GID_PT = 0x01a1, |
| FC_NS_RPN_ID = 0x0212, |
| FC_NS_RNN_ID = 0x0213, |
| FC_NS_RFT_ID = 0x0217, |
| FC_NS_RSPN_ID = 0x0218, |
| FC_NS_RFF_ID = 0x021f, |
| FC_NS_RSNN_NN = 0x0239, |
| }; |
| enum fc_ns_pt { |
| FC_NS_UNID_PORT = 0x00, |
| FC_NS_N_PORT = 0x01, |
| FC_NS_NL_PORT = 0x02, |
| FC_NS_FNL_PORT = 0x03, |
| FC_NS_NX_PORT = 0x7f, |
| FC_NS_F_PORT = 0x81, |
| FC_NS_FL_PORT = 0x82, |
| FC_NS_E_PORT = 0x84, |
| FC_NS_B_PORT = 0x85, |
| }; |
| struct fc_ns_pt_obj { |
| __u8 pt_type; |
| }; |
| struct fc_ns_fid { |
| __u8 fp_flags; |
| __u8 fp_fid[3]; |
| }; |
| #define FC_NS_FID_LAST 0x80 |
| #define FC_NS_TYPES 256 |
| #define FC_NS_BPW 32 |
| struct fc_ns_fts { |
| __be32 ff_type_map[FC_NS_TYPES / FC_NS_BPW]; |
| }; |
| struct fc_ns_ff { |
| __be32 fd_feat[FC_NS_TYPES * 4 / FC_NS_BPW]; |
| }; |
| struct fc_ns_gid_pt { |
| __u8 fn_pt_type; |
| __u8 fn_domain_id_scope; |
| __u8 fn_area_id_scope; |
| __u8 fn_resvd; |
| }; |
| struct fc_ns_gid_ft { |
| __u8 fn_resvd; |
| __u8 fn_domain_id_scope; |
| __u8 fn_area_id_scope; |
| __u8 fn_fc4_type; |
| }; |
| struct fc_gpn_ft_resp { |
| __u8 fp_flags; |
| __u8 fp_fid[3]; |
| __be32 fp_resvd; |
| __be64 fp_wwpn; |
| }; |
| struct fc_ns_gid_pn { |
| __be64 fn_wwpn; |
| }; |
| struct fc_gid_pn_resp { |
| __u8 fp_resvd; |
| __u8 fp_fid[3]; |
| }; |
| struct fc_gspn_resp { |
| __u8 fp_name_len; |
| char fp_name[]; |
| }; |
| struct fc_ns_rft_id { |
| struct fc_ns_fid fr_fid; |
| struct fc_ns_fts fr_fts; |
| }; |
| struct fc_ns_rn_id { |
| struct fc_ns_fid fr_fid; |
| __be64 fr_wwn; |
| } __attribute__((__packed__)); |
| struct fc_ns_rsnn { |
| __be64 fr_wwn; |
| __u8 fr_name_len; |
| char fr_name[]; |
| } __attribute__((__packed__)); |
| struct fc_ns_rspn { |
| struct fc_ns_fid fr_fid; |
| __u8 fr_name_len; |
| char fr_name[]; |
| } __attribute__((__packed__)); |
| struct fc_ns_rff_id { |
| struct fc_ns_fid fr_fid; |
| __u8 fr_resvd[2]; |
| __u8 fr_feat; |
| __u8 fr_type; |
| } __attribute__((__packed__)); |
| #endif |