/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/*2* FC Transport Netlink Interface3*4* Copyright (C) 2006 James Smart, Emulex Corporation5*/6#ifndef SCSI_NETLINK_FC_H7#define SCSI_NETLINK_FC_H89#include <linux/types.h>10#include <scsi/scsi_netlink.h>1112/*13* This file intended to be included by both kernel and user space14*/1516/*17* FC Transport Message Types18*/19/* kernel -> user */20#define FC_NL_ASYNC_EVENT 0x010021/* user -> kernel */22/* none */232425/*26* Message Structures :27*/2829/* macro to round up message lengths to 8byte boundary */30#define FC_NL_MSGALIGN(len) (((len) + 7) & ~7)313233/*34* FC Transport Broadcast Event Message :35* FC_NL_ASYNC_EVENT36*37* Note: if Vendor Unique message, event_data_flex will be start of38* vendor unique payload, and the length of the payload is39* per event_datalen40*41* Note: When specifying vendor_id, be sure to read the Vendor Type and ID42* formatting requirements specified in scsi_netlink.h43*/44struct fc_nl_event {45struct scsi_nl_hdr snlh; /* must be 1st element ! */46__u64 seconds;47__u64 vendor_id;48__u16 host_no;49__u16 event_datalen;50__u32 event_num;51__u32 event_code;52union {53__u32 event_data;54__DECLARE_FLEX_ARRAY(__u8, event_data_flex);55};56} __attribute__((aligned(sizeof(__u64))));575859#endif /* SCSI_NETLINK_FC_H */60616263