1a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich/**************************************************************************** 2a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich **************************************************************************** 3a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 4a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** This header was automatically generated from a Linux kernel header 5a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** of the same name, to make information necessary for userspace to 6a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** call into the kernel available to libc. It contains only constants, 7a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** structures, and macros generated from the original header, and thus, 8a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** contains no copyrightable information. 9a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 10a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** To edit the content of this header, modify the corresponding 11a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** source file (e.g. under external/kernel-headers/original/) then 12a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** run bionic/libc/kernel/tools/update_all.py 13a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 14a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** Any manual change here will be lost the next time this script will 15a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** be run. You've been warned! 16a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 17a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich **************************************************************************** 18a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef SCSI_NETLINK_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NETLINK_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/netlink.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_TRANSPORT_MSG NLMSG_MIN_TYPE + 1 24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SCSI_NL_GRP_FC_EVENTS (1 << 2) 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_GRP_CNT 3 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct scsi_nl_hdr { 27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint8_t version; 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint8_t transport; 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint16_t magic; 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint16_t msgtype; 31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint16_t msglen; 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __attribute__((aligned(sizeof(uint64_t)))); 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_VERSION 1 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_MAGIC 0xA1B2 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_TRANSPORT 0 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_TRANSPORT_FC 1 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_MAX_TRANSPORTS 2 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_SHOST_VENDOR 0x0001 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_MSGALIGN(len) (((len) + 7) & ~7) 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct scsi_nl_host_vendor_msg { 41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct scsi_nl_hdr snlh; 42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint64_t vendor_id; 43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint16_t host_no; 44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uint16_t vmsg_datalen; 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __attribute__((aligned(sizeof(uint64_t)))); 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SCSI_NL_VID_TYPE_SHIFT 56 47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SCSI_NL_VID_TYPE_MASK ((__u64) 0xFF << SCSI_NL_VID_TYPE_SHIFT) 48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SCSI_NL_VID_TYPE_PCI ((__u64) 0x01 << SCSI_NL_VID_TYPE_SHIFT) 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SCSI_NL_VID_ID_MASK (~SCSI_NL_VID_TYPE_MASK) 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define INIT_SCSI_NL_HDR(hdr,t,mtype,mlen) { (hdr)->version = SCSI_NL_VERSION; (hdr)->transport = t; (hdr)->magic = SCSI_NL_MAGIC; (hdr)->msgtype = mtype; (hdr)->msglen = mlen; } 51a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich#endif 52