278 nulldev, /* power */
279 ddi_quiesce_not_needed, /* quiesce */
280 };
281
282 /* Module linkage information for the kernel. */
283 static struct modldrv modldrv = {
284 &mod_driverops, /* Driver module */
285 "IB nexus", /* Driver name and version */
286 &ibnex_ops, /* driver ops */
287 };
288
289 static struct modlinkage modlinkage = {
290 MODREV_1, (void *)&modldrv, NULL
291 };
292
293 /*
294 * Global per-instance IB Nexus data.
295 * There is only one instance of IB Nexus supported.
296 */
297 ibnex_t ibnex;
298 #ifdef __lock_lint
299 extern ibdm_t ibdm;
300 #endif
301 _NOTE(MUTEX_PROTECTS_DATA(ibnex.ibnex_mutex, ibnex_s))
302 _NOTE(DATA_READABLE_WITHOUT_LOCK(ibnex.ibnex_num_comm_svcs
303 ibnex.ibnex_comm_svc_names ibnex.ibnex_nvppa_comm_svcs
304 ibnex.ibnex_vppa_comm_svc_names ibnex.ibnex_nhcasvc_comm_svcs
305 ibnex.ibnex_hcasvc_comm_svc_names ibnex.ibnex_ioc_list))
306 _NOTE(MUTEX_PROTECTS_DATA(ibnex.ibnex_mutex, ibnex_node_data_s))
307 _NOTE(LOCK_ORDER(ibdm.ibdm_hl_mutex ibnex.ibnex_mutex))
308
309 /* The port settling time in seconds */
310 int ibnex_port_settling_time = 8;
311
312 /* create an array of properties supported, easier to add new ones here */
313 static struct ibnex_property {
314 char *name;
315 ibnex_node_type_t type;
316 } ibnex_properties[] = {
317 { "port-svc-list", IBNEX_PORT_COMMSVC_NODE},
318 { "vppa-svc-list", IBNEX_VPPA_COMMSVC_NODE},
319 { "hca-svc-list", IBNEX_HCASVC_COMMSVC_NODE}
320 };
321
322 #define N_IBNEX_PROPS (sizeof (ibnex_properties))/ \
323 (sizeof (struct ibnex_property))
324
325 /*
326 * Event Definition
327 * Single event, event name defined in ibti_common.h.
|
278 nulldev, /* power */
279 ddi_quiesce_not_needed, /* quiesce */
280 };
281
282 /* Module linkage information for the kernel. */
283 static struct modldrv modldrv = {
284 &mod_driverops, /* Driver module */
285 "IB nexus", /* Driver name and version */
286 &ibnex_ops, /* driver ops */
287 };
288
289 static struct modlinkage modlinkage = {
290 MODREV_1, (void *)&modldrv, NULL
291 };
292
293 /*
294 * Global per-instance IB Nexus data.
295 * There is only one instance of IB Nexus supported.
296 */
297 ibnex_t ibnex;
298
299 /* The port settling time in seconds */
300 int ibnex_port_settling_time = 8;
301
302 /* create an array of properties supported, easier to add new ones here */
303 static struct ibnex_property {
304 char *name;
305 ibnex_node_type_t type;
306 } ibnex_properties[] = {
307 { "port-svc-list", IBNEX_PORT_COMMSVC_NODE},
308 { "vppa-svc-list", IBNEX_VPPA_COMMSVC_NODE},
309 { "hca-svc-list", IBNEX_HCASVC_COMMSVC_NODE}
310 };
311
312 #define N_IBNEX_PROPS (sizeof (ibnex_properties))/ \
313 (sizeof (struct ibnex_property))
314
315 /*
316 * Event Definition
317 * Single event, event name defined in ibti_common.h.
|