blob: 78a2e5dec44d8cc73b1d65afcb694b013b264b19 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef SCSI_BSG_FC_H
8#define SCSI_BSG_FC_H
Christopher Ferris9584fa42019-12-09 15:36:13 -08009#include <linux/types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070010#define FC_DEFAULT_BSG_TIMEOUT (10 * HZ)
11#define FC_BSG_CLS_MASK 0xF0000000
Ben Cheng655a7c02013-10-16 16:09:24 -070012#define FC_BSG_HST_MASK 0x80000000
13#define FC_BSG_RPT_MASK 0x40000000
14#define FC_BSG_HST_ADD_RPORT (FC_BSG_HST_MASK | 0x00000001)
15#define FC_BSG_HST_DEL_RPORT (FC_BSG_HST_MASK | 0x00000002)
Ben Cheng655a7c02013-10-16 16:09:24 -070016#define FC_BSG_HST_ELS_NOLOGIN (FC_BSG_HST_MASK | 0x00000003)
17#define FC_BSG_HST_CT (FC_BSG_HST_MASK | 0x00000004)
18#define FC_BSG_HST_VENDOR (FC_BSG_HST_MASK | 0x000000FF)
19#define FC_BSG_RPT_ELS (FC_BSG_RPT_MASK | 0x00000001)
Ben Cheng655a7c02013-10-16 16:09:24 -070020#define FC_BSG_RPT_CT (FC_BSG_RPT_MASK | 0x00000002)
21struct fc_bsg_host_add_rport {
Christopher Ferris9584fa42019-12-09 15:36:13 -080022 __u8 reserved;
23 __u8 port_id[3];
Ben Cheng655a7c02013-10-16 16:09:24 -070024};
25struct fc_bsg_host_del_rport {
Christopher Ferris9584fa42019-12-09 15:36:13 -080026 __u8 reserved;
27 __u8 port_id[3];
Ben Cheng655a7c02013-10-16 16:09:24 -070028};
29struct fc_bsg_host_els {
Christopher Ferris9584fa42019-12-09 15:36:13 -080030 __u8 command_code;
31 __u8 port_id[3];
Ben Cheng655a7c02013-10-16 16:09:24 -070032};
33#define FC_CTELS_STATUS_OK 0x00000000
34#define FC_CTELS_STATUS_REJECT 0x00000001
35#define FC_CTELS_STATUS_P_RJT 0x00000002
Ben Cheng655a7c02013-10-16 16:09:24 -070036#define FC_CTELS_STATUS_F_RJT 0x00000003
37#define FC_CTELS_STATUS_P_BSY 0x00000004
38#define FC_CTELS_STATUS_F_BSY 0x00000006
39struct fc_bsg_ctels_reply {
Christopher Ferris9584fa42019-12-09 15:36:13 -080040 __u32 status;
Tao Baod7db5942015-01-28 10:07:51 -080041 struct {
Christopher Ferris9584fa42019-12-09 15:36:13 -080042 __u8 action;
43 __u8 reason_code;
44 __u8 reason_explanation;
45 __u8 vendor_unique;
Tao Baod7db5942015-01-28 10:07:51 -080046 } rjt_data;
Ben Cheng655a7c02013-10-16 16:09:24 -070047};
Ben Cheng655a7c02013-10-16 16:09:24 -070048struct fc_bsg_host_ct {
Christopher Ferris9584fa42019-12-09 15:36:13 -080049 __u8 reserved;
50 __u8 port_id[3];
51 __u32 preamble_word0;
52 __u32 preamble_word1;
53 __u32 preamble_word2;
Ben Cheng655a7c02013-10-16 16:09:24 -070054};
55struct fc_bsg_host_vendor {
Christopher Ferris9584fa42019-12-09 15:36:13 -080056 __u64 vendor_id;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070057 __u32 vendor_cmd[];
Ben Cheng655a7c02013-10-16 16:09:24 -070058};
59struct fc_bsg_host_vendor_reply {
Christopher Ferrisb7cef6d2023-05-09 19:04:15 +000060 __DECLARE_FLEX_ARRAY(__u32, vendor_rsp);
Ben Cheng655a7c02013-10-16 16:09:24 -070061};
62struct fc_bsg_rport_els {
Christopher Ferris9584fa42019-12-09 15:36:13 -080063 __u8 els_code;
Ben Cheng655a7c02013-10-16 16:09:24 -070064};
65struct fc_bsg_rport_ct {
Christopher Ferris9584fa42019-12-09 15:36:13 -080066 __u32 preamble_word0;
67 __u32 preamble_word1;
68 __u32 preamble_word2;
Ben Cheng655a7c02013-10-16 16:09:24 -070069};
70struct fc_bsg_request {
Christopher Ferris9584fa42019-12-09 15:36:13 -080071 __u32 msgcode;
Tao Baod7db5942015-01-28 10:07:51 -080072 union {
73 struct fc_bsg_host_add_rport h_addrport;
74 struct fc_bsg_host_del_rport h_delrport;
75 struct fc_bsg_host_els h_els;
Tao Baod7db5942015-01-28 10:07:51 -080076 struct fc_bsg_host_ct h_ct;
77 struct fc_bsg_host_vendor h_vendor;
78 struct fc_bsg_rport_els r_els;
79 struct fc_bsg_rport_ct r_ct;
Tao Baod7db5942015-01-28 10:07:51 -080080 } rqst_data;
Ben Cheng655a7c02013-10-16 16:09:24 -070081} __attribute__((packed));
82struct fc_bsg_reply {
Christopher Ferris9584fa42019-12-09 15:36:13 -080083 __u32 result;
84 __u32 reply_payload_rcv_len;
Tao Baod7db5942015-01-28 10:07:51 -080085 union {
86 struct fc_bsg_host_vendor_reply vendor_reply;
87 struct fc_bsg_ctels_reply ctels_reply;
Tao Baod7db5942015-01-28 10:07:51 -080088 } reply_data;
Ben Cheng655a7c02013-10-16 16:09:24 -070089};
90#endif