Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.26-rc2 87 lines 2.7 kB view raw
1/* 2 * SCSI Transport Netlink Interface 3 * Used for the posting of outbound SCSI transport events 4 * 5 * Copyright (C) 2006 James Smart, Emulex Corporation 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * 21 */ 22#ifndef SCSI_NETLINK_H 23#define SCSI_NETLINK_H 24 25/* 26 * This file intended to be included by both kernel and user space 27 */ 28 29/* Single Netlink Message type to send all SCSI Transport messages */ 30#define SCSI_TRANSPORT_MSG NLMSG_MIN_TYPE + 1 31 32/* SCSI Transport Broadcast Groups */ 33 /* leaving groups 0 and 1 unassigned */ 34#define SCSI_NL_GRP_FC_EVENTS (1<<2) /* Group 2 */ 35#define SCSI_NL_GRP_CNT 3 36 37 38/* SCSI_TRANSPORT_MSG event message header */ 39struct scsi_nl_hdr { 40 uint8_t version; 41 uint8_t transport; 42 uint16_t magic; 43 uint16_t msgtype; 44 uint16_t msglen; 45} __attribute__((aligned(sizeof(uint64_t)))); 46 47/* scsi_nl_hdr->version value */ 48#define SCSI_NL_VERSION 1 49 50/* scsi_nl_hdr->magic value */ 51#define SCSI_NL_MAGIC 0xA1B2 52 53/* scsi_nl_hdr->transport value */ 54#define SCSI_NL_TRANSPORT 0 55#define SCSI_NL_TRANSPORT_FC 1 56#define SCSI_NL_MAX_TRANSPORTS 2 57 58/* scsi_nl_hdr->msgtype values are defined in each transport */ 59 60 61/* 62 * Vendor ID: 63 * If transports post vendor-unique events, they must pass a well-known 64 * 32-bit vendor identifier. This identifier consists of 8 bits indicating 65 * the "type" of identifier contained, and 24 bits of id data. 66 * 67 * Identifiers for each type: 68 * PCI : ID data is the 16 bit PCI Registered Vendor ID 69 */ 70#define SCSI_NL_VID_TYPE_SHIFT 56 71#define SCSI_NL_VID_TYPE_MASK ((u64)0xFF << SCSI_NL_VID_TYPE_SHIFT) 72#define SCSI_NL_VID_TYPE_PCI ((u64)0x01 << SCSI_NL_VID_TYPE_SHIFT) 73#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK) 74 75 76#define INIT_SCSI_NL_HDR(hdr, t, mtype, mlen) \ 77 { \ 78 (hdr)->version = SCSI_NL_VERSION; \ 79 (hdr)->transport = t; \ 80 (hdr)->magic = SCSI_NL_MAGIC; \ 81 (hdr)->msgtype = mtype; \ 82 (hdr)->msglen = mlen; \ 83 } 84 85 86#endif /* SCSI_NETLINK_H */ 87