| James Smart | 84314fd | 2006-08-18 17:30:09 -0400 | [diff] [blame] | 1 | /* | 
 | 2 |  *  FC Transport Netlink Interface | 
 | 3 |  * | 
 | 4 |  *  Copyright (C) 2006   James Smart, Emulex Corporation | 
 | 5 |  * | 
 | 6 |  *  This program is free software; you can redistribute it and/or modify | 
 | 7 |  *  it under the terms of the GNU General Public License as published by | 
 | 8 |  *  the Free Software Foundation; either version 2 of the License, or | 
 | 9 |  *  (at your option) any later version. | 
 | 10 |  * | 
 | 11 |  *  This program is distributed in the hope that it will be useful, | 
 | 12 |  *  but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | 13 |  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 | 14 |  *  GNU General Public License for more details. | 
 | 15 |  * | 
 | 16 |  *  You should have received a copy of the GNU General Public License | 
 | 17 |  *  along with this program; if not, write to the Free Software | 
 | 18 |  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
 | 19 |  * | 
 | 20 |  */ | 
 | 21 | #ifndef SCSI_NETLINK_FC_H | 
 | 22 | #define SCSI_NETLINK_FC_H | 
 | 23 |  | 
 | 24 | #include <scsi/scsi_netlink.h> | 
 | 25 |  | 
 | 26 | /* | 
 | 27 |  * This file intended to be included by both kernel and user space | 
 | 28 |  */ | 
 | 29 |  | 
 | 30 | /* | 
 | 31 |  * FC Transport Message Types | 
 | 32 |  */ | 
 | 33 | 	/* kernel -> user */ | 
 | 34 | #define FC_NL_ASYNC_EVENT			0x0100 | 
 | 35 | 	/* user -> kernel */ | 
 | 36 | /* none */ | 
 | 37 |  | 
 | 38 |  | 
 | 39 | /* | 
 | 40 |  * Message Structures : | 
 | 41 |  */ | 
 | 42 |  | 
 | 43 | /* macro to round up message lengths to 8byte boundary */ | 
 | 44 | #define FC_NL_MSGALIGN(len)		(((len) + 7) & ~7) | 
 | 45 |  | 
 | 46 |  | 
 | 47 | /* | 
 | 48 |  * FC Transport Broadcast Event Message : | 
 | 49 |  *   FC_NL_ASYNC_EVENT | 
 | 50 |  * | 
 | 51 |  * Note: if Vendor Unique message, &event_data will be  start of | 
 | 52 |  * 	 vendor unique payload, and the length of the payload is | 
 | 53 |  *       per event_datalen | 
 | 54 |  * | 
 | 55 |  * Note: When specifying vendor_id, be sure to read the Vendor Type and ID | 
 | 56 |  *   formatting requirements specified in scsi_netlink.h | 
 | 57 |  */ | 
 | 58 | struct fc_nl_event { | 
 | 59 | 	struct scsi_nl_hdr snlh;		/* must be 1st element ! */ | 
 | 60 | 	uint64_t seconds; | 
| James Smart | f14e2e2 | 2006-08-22 09:55:23 -0400 | [diff] [blame] | 61 | 	uint64_t vendor_id; | 
| James Smart | 84314fd | 2006-08-18 17:30:09 -0400 | [diff] [blame] | 62 | 	uint16_t host_no; | 
 | 63 | 	uint16_t event_datalen; | 
 | 64 | 	uint32_t event_num; | 
 | 65 | 	uint32_t event_code; | 
 | 66 | 	uint32_t event_data; | 
 | 67 | } __attribute__((aligned(sizeof(uint64_t)))); | 
 | 68 |  | 
 | 69 |  | 
 | 70 | #endif /* SCSI_NETLINK_FC_H */ | 
 | 71 |  |