1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*
3 * FC Transport Netlink Interface
4 *
5 * Copyright (C) 2006 James Smart, Emulex Corporation
6 */
7#ifndef SCSI_NETLINK_FC_H
8#define SCSI_NETLINK_FC_H
9
10#include <linux/types.h>
11#include <scsi/scsi_netlink.h>
12
13/*
14 * This file intended to be included by both kernel and user space
15 */
16
17/*
18 * FC Transport Message Types
19 */
20 /* kernel -> user */
21#define FC_NL_ASYNC_EVENT 0x0100
22 /* user -> kernel */
23/* none */
24
25
26/*
27 * Message Structures :
28 */
29
30/* macro to round up message lengths to 8byte boundary */
31#define FC_NL_MSGALIGN(len) (((len) + 7) & ~7)
32
33
34/*
35 * FC Transport Broadcast Event Message :
36 * FC_NL_ASYNC_EVENT
37 *
38 * Note: if Vendor Unique message, event_data_flex will be start of
39 * vendor unique payload, and the length of the payload is
40 * per event_datalen
41 *
42 * Note: When specifying vendor_id, be sure to read the Vendor Type and ID
43 * formatting requirements specified in scsi_netlink.h
44 */
45struct fc_nl_event {
46 struct scsi_nl_hdr snlh; /* must be 1st element ! */
47 __u64 seconds;
48 __u64 vendor_id;
49 __u16 host_no;
50 __u16 event_datalen;
51 __u32 event_num;
52 __u32 event_code;
53 union {
54 __u32 event_data;
55 __DECLARE_FLEX_ARRAY(__u8, event_data_flex);
56 };
57} __attribute__((aligned(sizeof(__u64))));
58
59
60#endif /* SCSI_NETLINK_FC_H */
61
62

source code of linux/include/uapi/scsi/scsi_netlink_fc.h