1*82527734SSukumar Swaminathan /* 2*82527734SSukumar Swaminathan * CDDL HEADER START 3*82527734SSukumar Swaminathan * 4*82527734SSukumar Swaminathan * The contents of this file are subject to the terms of the 5*82527734SSukumar Swaminathan * Common Development and Distribution License (the "License"). 6*82527734SSukumar Swaminathan * You may not use this file except in compliance with the License. 7*82527734SSukumar Swaminathan * 8*82527734SSukumar Swaminathan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*82527734SSukumar Swaminathan * or http://www.opensolaris.org/os/licensing. 10*82527734SSukumar Swaminathan * See the License for the specific language governing permissions 11*82527734SSukumar Swaminathan * and limitations under the License. 12*82527734SSukumar Swaminathan * 13*82527734SSukumar Swaminathan * When distributing Covered Code, include this CDDL HEADER in each 14*82527734SSukumar Swaminathan * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*82527734SSukumar Swaminathan * If applicable, add the following below this CDDL HEADER, with the 16*82527734SSukumar Swaminathan * fields enclosed by brackets "[]" replaced with your own identifying 17*82527734SSukumar Swaminathan * information: Portions Copyright [yyyy] [name of copyright owner] 18*82527734SSukumar Swaminathan * 19*82527734SSukumar Swaminathan * CDDL HEADER END 20*82527734SSukumar Swaminathan */ 21*82527734SSukumar Swaminathan 22*82527734SSukumar Swaminathan /* 23*82527734SSukumar Swaminathan * Copyright 2009 Emulex. All rights reserved. 24*82527734SSukumar Swaminathan * Use is subject to license terms. 25*82527734SSukumar Swaminathan */ 26*82527734SSukumar Swaminathan 27*82527734SSukumar Swaminathan #ifndef _EMLXS_EVENTS_H 28*82527734SSukumar Swaminathan #define _EMLXS_EVENTS_H 29*82527734SSukumar Swaminathan 30*82527734SSukumar Swaminathan #ifdef __cplusplus 31*82527734SSukumar Swaminathan extern "C" { 32*82527734SSukumar Swaminathan #endif 33*82527734SSukumar Swaminathan 34*82527734SSukumar Swaminathan extern void emlxs_null_func(); 35*82527734SSukumar Swaminathan 36*82527734SSukumar Swaminathan #ifdef DEF_EVENT_STRUCT 37*82527734SSukumar Swaminathan 38*82527734SSukumar Swaminathan #define DEFINE_EVT(_name, _label, _mask, _timeout, _destroy) \ 39*82527734SSukumar Swaminathan extern void _destroy(); \ 40*82527734SSukumar Swaminathan emlxs_event_t _name = {_mask, _label, _timeout, _destroy}; 41*82527734SSukumar Swaminathan 42*82527734SSukumar Swaminathan #else 43*82527734SSukumar Swaminathan 44*82527734SSukumar Swaminathan #define DEFINE_EVT(_name, _label, _mask, _timeout, _destroy) \ 45*82527734SSukumar Swaminathan extern void _destroy(); \ 46*82527734SSukumar Swaminathan extern emlxs_event_t _name; 47*82527734SSukumar Swaminathan 48*82527734SSukumar Swaminathan #endif /* DEF_EVENT_STRUCT */ 49*82527734SSukumar Swaminathan 50*82527734SSukumar Swaminathan 51*82527734SSukumar Swaminathan /* Event Mask Bits */ 52*82527734SSukumar Swaminathan #define EVT_LINK 0x00000001 /* FC_REG_LINK_EVENT */ 53*82527734SSukumar Swaminathan #define EVT_RSCN 0x00000002 /* FC_REG_RSCN_EVENT */ 54*82527734SSukumar Swaminathan #define EVT_CT 0x00000004 /* FC_REG_CT_EVENT */ 55*82527734SSukumar Swaminathan #define EVT_MPULSE 0x00000008 /* FC_REG_MULTIPULSE_EVENT */ 56*82527734SSukumar Swaminathan #define EVT_DUMP 0x00000010 /* FC_REG_DUMP_EVENT */ 57*82527734SSukumar Swaminathan #define EVT_TEMP 0x00000020 /* FC_REG_TEMP_EVENT */ 58*82527734SSukumar Swaminathan #define EVT_VPORTRSCN 0x00000040 /* FC_REG_VPORTRSCN_EVENT */ 59*82527734SSukumar Swaminathan #define EVT_ASYNC 0x00000080 /* FC_REG_ASYNC_EVENT */ 60*82527734SSukumar Swaminathan 61*82527734SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 62*82527734SSukumar Swaminathan #define EVT_SD_ELS 0x00001000 /* FC_REG_SD_ELS_EVENT */ 63*82527734SSukumar Swaminathan #define EVT_SD_FABRIC 0x00002000 /* FC_REG_SD_FABRIC_EVENT */ 64*82527734SSukumar Swaminathan #define EVT_SD_SCSI 0x00004000 /* FC_REG_SD_SCSI_EVENT */ 65*82527734SSukumar Swaminathan #define EVT_SD_BOARD 0x00008000 /* FC_REG_SD_BOARD_EVENT */ 66*82527734SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 67*82527734SSukumar Swaminathan 68*82527734SSukumar Swaminathan #define EVT_FCOE 0x80000000 /* FC_REG_FCOE_EVENT */ 69*82527734SSukumar Swaminathan 70*82527734SSukumar Swaminathan 71*82527734SSukumar Swaminathan typedef struct emlxs_event 72*82527734SSukumar Swaminathan { 73*82527734SSukumar Swaminathan uint32_t mask; 74*82527734SSukumar Swaminathan char label[64]; 75*82527734SSukumar Swaminathan uint32_t timeout; 76*82527734SSukumar Swaminathan void (*destroy)(); 77*82527734SSukumar Swaminathan 78*82527734SSukumar Swaminathan } emlxs_event_t; 79*82527734SSukumar Swaminathan 80*82527734SSukumar Swaminathan 81*82527734SSukumar Swaminathan #define EMLXS_EVENT_PERIOD 5 82*82527734SSukumar Swaminathan #define EVT_TIMEOUT_DEFAULT 60 83*82527734SSukumar Swaminathan #define EVT_TIMEOUT_NEVER 0 84*82527734SSukumar Swaminathan #define EVT_DESTROY_DEFAULT emlxs_null_func 85*82527734SSukumar Swaminathan 86*82527734SSukumar Swaminathan 87*82527734SSukumar Swaminathan /* EVENT defines */ 88*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_link_event, \ 89*82527734SSukumar Swaminathan "LINK", \ 90*82527734SSukumar Swaminathan EVT_LINK, 91*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 92*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 93*82527734SSukumar Swaminathan 94*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_rscn_event, \ 95*82527734SSukumar Swaminathan "RSCN", \ 96*82527734SSukumar Swaminathan EVT_RSCN, 97*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 98*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 99*82527734SSukumar Swaminathan 100*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_vportrscn_event, \ 101*82527734SSukumar Swaminathan "VPORT RSCN", \ 102*82527734SSukumar Swaminathan EVT_VPORTRSCN, 103*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 104*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 105*82527734SSukumar Swaminathan 106*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_ct_event, \ 107*82527734SSukumar Swaminathan "CT", \ 108*82527734SSukumar Swaminathan EVT_CT, 109*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 110*82527734SSukumar Swaminathan emlxs_ct_event_destroy) 111*82527734SSukumar Swaminathan 112*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_dump_event, \ 113*82527734SSukumar Swaminathan "DUMP", \ 114*82527734SSukumar Swaminathan EVT_DUMP, 115*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 116*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 117*82527734SSukumar Swaminathan 118*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_temp_event, \ 119*82527734SSukumar Swaminathan "TEMP", \ 120*82527734SSukumar Swaminathan EVT_TEMP, 121*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 122*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 123*82527734SSukumar Swaminathan 124*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_fcoe_event, \ 125*82527734SSukumar Swaminathan "FCOE", \ 126*82527734SSukumar Swaminathan EVT_FCOE, 127*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 128*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 129*82527734SSukumar Swaminathan 130*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_async_event, \ 131*82527734SSukumar Swaminathan "ASYNC", \ 132*82527734SSukumar Swaminathan EVT_ASYNC, 133*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 134*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 135*82527734SSukumar Swaminathan 136*82527734SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 137*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_sd_els_event, \ 138*82527734SSukumar Swaminathan "SD_ELS", \ 139*82527734SSukumar Swaminathan EVT_SD_ELS, 140*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 141*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 142*82527734SSukumar Swaminathan 143*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_sd_fabric_event, \ 144*82527734SSukumar Swaminathan "SD_FC", \ 145*82527734SSukumar Swaminathan EVT_SD_FABRIC, 146*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 147*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 148*82527734SSukumar Swaminathan 149*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_sd_scsi_event, \ 150*82527734SSukumar Swaminathan "SD_SCSI", \ 151*82527734SSukumar Swaminathan EVT_SD_SCSI, 152*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 153*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 154*82527734SSukumar Swaminathan 155*82527734SSukumar Swaminathan DEFINE_EVT(emlxs_sd_board_event, \ 156*82527734SSukumar Swaminathan "SD_BOARD", \ 157*82527734SSukumar Swaminathan EVT_SD_BOARD, 158*82527734SSukumar Swaminathan EVT_TIMEOUT_DEFAULT, 159*82527734SSukumar Swaminathan EVT_DESTROY_DEFAULT) 160*82527734SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 161*82527734SSukumar Swaminathan 162*82527734SSukumar Swaminathan #ifdef __cplusplus 163*82527734SSukumar Swaminathan } 164*82527734SSukumar Swaminathan #endif 165*82527734SSukumar Swaminathan 166*82527734SSukumar Swaminathan #endif /* _EMLXS_EVENTS_H */ 167