| 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 |  |