blob: 7535253f1a96d5617560cef3bfe5f10b6fa40ca0 [file] [log] [blame]
Greg Kroah-Hartmane2be04c2017-11-01 15:09:13 +01001/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
James Smart84314fd2006-08-18 17:30:09 -04002/*
3 * FC Transport Netlink Interface
4 *
5 * Copyright (C) 2006 James Smart, Emulex Corporation
James Smart84314fd2006-08-18 17:30:09 -04006 */
7#ifndef SCSI_NETLINK_FC_H
8#define SCSI_NETLINK_FC_H
9
Masahiro Yamada075c2b62019-07-21 23:25:02 +090010#include <linux/types.h>
James Smart84314fd2006-08-18 17:30:09 -040011#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 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 ! */
Masahiro Yamada075c2b62019-07-21 23:25:02 +090047 __u64 seconds;
48 __u64 vendor_id;
49 __u16 host_no;
50 __u16 event_datalen;
51 __u32 event_num;
52 __u32 event_code;
53 __u32 event_data;
54} __attribute__((aligned(sizeof(__u64))));
James Smart84314fd2006-08-18 17:30:09 -040055
56
57#endif /* SCSI_NETLINK_FC_H */
58