/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2010 QLogic Corporation. All rights reserved.
* Use is subject to license terms.
*/
/*
* File Name: exioct.h
*
* File is created to adhere to Solaris requirement using 8-space tabs.
*
* !!!!! PLEASE DO NOT REMOVE THE TABS !!!!!
* !!!!! PLEASE NO SINGLE LINE COMMENTS: // !!!!!
* !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!!
*
* ***********************************************************************
* * **
* * NOTICE **
* * COPYRIGHT (C) 2000-2010 QLOGIC CORPORATION **
* * ALL RIGHTS RESERVED **
* * **
* ***********************************************************************
*/
#ifndef _EXIOCT_H
#define _EXIOCT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <exioctso.h>
/*
* NOTE: the following version defines must be updated each time the
* changes made may affect the backward compatibility of the
*/
/*
* OS independent General definitions
*/
/*
* ***********************************************************************
* OS dependent General configuration defines
* ***********************************************************************
*/
/*
* ***********************************************************************
* ***********************************************************************
*/
typedef struct {
typedef union _ext_signature {
} ext_sig_t;
/*
* Addressing mode used by the user application
*/
/*
* Status. These macros are being used for setting Status field in
* EXT_IOCTL structure.
*/
#define EXT_STATUS_OK 0
/*
* Detail Status contains the SCSI bus status codes.
*/
/*
* Detail Status contains the needed Response buffer space(bytes)
* when Status = EXT_STATUS_BUFFER_TOO_SMALL
*/
/*
* Detail Status contains one of the following codes
* when Status = EXT_STATUS_INVALID_PARAM or
* = EXT_STATUS_DEV_NOT_FOUND
*/
/*
* Currently supported DeviceControl / ioctl command codes
*/
/*
* HBA port operations
*/
/*
* The following DeviceControl / ioctl command codes currently are not
* supported.
*/
/*
* ***********************************************************************
* EXT_IOCTL SubCode definition.
* These macros are being used for setting SubCode field in EXT_IOCTL
* structure.
* ***********************************************************************
*/
/*
* Query.
* Uses with EXT_QUERY as the ioctl code.
*/
/*
* Get.
* Uses with EXT_GET_DATA as the ioctl code
*/
/* 1 - 99 Common */
/* 100 - 199 FC_INTF_TYPE */
/* 200 - 299 SCSI_INTF_TYPE */
/*
* Set.
* Uses with EXT_SET_DATA as the ioctl code
*/
/* 1 - 99 Common */
/* special types (non snia) */
/* 100 - 199 FC_INTF_TYPE */
/* 200 - 299 SCSI_INTF_TYPE */
/* SCSI passthrough */
#define EXT_SC_SEND_SCSI_PASSTHRU 0
/* NVRAM */
/*
* Vport functions
* Used with EXT_CC_VPORT_CMD as the ioctl code.
*/
/*
* Flash access sub codes
* Used with EXT_CC_ACCESS_FLASH as the ioctl code.
*/
#define EXT_SC_FLASH_READ 0
/*
* Reset FW subcodes for Schultz
* Used with EXT_CC_RESET_FW as the ioctl code.
*/
/* Read */
/* Write */
/* Reset */
/* Request struct */
/*
* Response struct
*/
typedef struct _EXT_HBA_NODE {
/* HBA node query interface type */
typedef struct _EXT_HBA_PORT {
/* USE_PORT_NAME */
/* FC-4 Instrumentation */
typedef struct _EXT_HBA_FC4Statistics {
typedef struct _EXT_LOOPBACK_REQ {
typedef struct _EXT_LOOPBACK_RSP {
/* used with loopback response CommandSent */
#define INT_DEF_LB_LOOPBACK_CMD 0
/* definition for interpreting CompletionStatus values */
/* port type */
/* HBA port state */
#define EXT_DEF_HBA_OK 0
/* Connection mode */
#define EXT_DEF_UNKNOWN_MODE 0
/* FC4 type values */
/* IIDMA rate values */
/* IIDMA Mode values */
#define IIDMA_MODE_0 0
/* Port Speed values */
typedef struct _EXT_DISC_PORT {
typedef struct _EXT_DISC_TARGET {
/* The following command is not supported */
/* SCSI address */
typedef struct _EXT_SCSI_ADDR {
/* Fibre Channel address */
typedef struct _EXT_FC_ADDR {
union {
} FcAddr;
/* Destination address */
typedef struct _EXT_DEST_ADDR {
union {
struct {
} ScsiAddr;
} DestAddr;
/* Statistic */
typedef struct _EXT_HBA_PORT_STAT {
/* Driver property */
typedef struct _EXT_DRIVER {
/* Firmware property */
typedef struct _EXT_FW {
typedef struct _EXT_CHIP {
/* CNA properties */
typedef struct _EXT_CNA_PORT {
/* Fabric Parameters */
#define FLASH_VERSION 0
typedef struct _EXT_REGIONVERSION {
typedef struct _EXT_ADAPTERREGIONVERSION {
/* Request Buffer for RNID */
typedef struct _EXT_RNID_REQ {
#define EXT_DEF_RNID_DFORMAT_NONE 0
/* Request Buffer for Set RNID */
typedef struct _EXT_SET_RNID_REQ {
/* RNID definition and data struct */
typedef struct _RNID_DATA
{
/* SCSI pass-through */
typedef struct _EXT_SCSI_PASSTHRU {
/* FC SCSI pass-through */
typedef struct _EXT_FC_SCSI_PASSTHRU {
/* SCSI pass-through direction */
/* EXT_REG_AEN Request struct */
typedef struct _EXT_REG_AEN {
/* EXT_GET_AEN Response struct */
typedef struct _EXT_ASYNC_EVENT {
union {
struct {
} RSCN;
} Payload;
/* Asynchronous Event Codes */
/* LED state information */
typedef struct _EXT_BEACON_CONTROL {
/* Required # of entries in the queue buffer allocated. */
/*
* LUN BitMask structure definition, array of 8bit bytes,
* 1 bit per lun. When bit == 1, the lun is masked.
* Most significant bit of mask[0] is lun 0.
* Least significant bit of mask[0] is lun 7.
*/
typedef struct _EXT_LUN_BIT_MASK {
#if ((EXT_DEF_NON_SCSI3_MAX_LUN & 0x7) == 0)
#else
#endif
/* Device type to get for EXT_SC_GET_PORT_SUMMARY */
/* Each entry in device database */
typedef struct _EXT_DEVICEDATAENTRY
{
/* Structure as used in the IOCTL. */
typedef struct _EXT_EXTERNAL_LUN_BITMASK_ENTRY
{
/* Structure as it is stored in the NT registry */
typedef struct _LUN_BITMASK_LIST
{
/* Device database information */
typedef struct _EXT_DEVICEDATA
{
/* returned in list. */
/* Swap Target Device Data structure */
typedef struct _EXT_SWAPTARGETDEVICE
{
#ifdef _WIN64
#else
#define EXT_DEF_LUN_BITMASK_LIST_HEADER_SIZE \
#endif
#define EXT_DEF_LUN_BITMASK_LIST_MIN_SIZE \
(sizeof (EXT_EXTERNAL_LUN_BITMASK_ENTRY) * \
#define EXT_DEF_LUN_BITMASK_LIST_MAX_SIZE \
(sizeof (EXT_EXTERNAL_LUN_BITMASK_ENTRY) * \
/*
* LUN mask bit manipulation macros
*
* P = Pointer to an EXT_LUN_BIT_MASK union.
* L = LUN number.
*/
#define EXT_IS_LUN_BIT_SET(P, L) \
#define EXT_SET_LUN_BIT(P, L) \
#define EXT_CLR_LUN_BIT(P, L) \
typedef struct _EXT_PORT_PARAM {
#define EXT_IIDMA_MODE_GET 0
/*
* PCI header structure definitions.
*/
typedef struct _PCI_HEADER_T {
/*
* PCI data structure definitions.
*/
typedef struct _PCI_DATA_T {
/*
*/
typedef struct _EXT_MENLO_RESET {
typedef struct _EXT_MENLO_GET_FW_VERSION {
/* it must be an fw op */
typedef struct _EXT_MENLO_UPDATE_FW {
/*
* InfoContext defines for INFO_DATA_TYPE_LOG_DATA
*/
#define IC_LOG_DATA_LOG_ID_DEBUG_LOG 0
/*
* InfoContext defines for INFO_DATA_TYPE_PORT_STATISTICS
*/
/*
* InfoContext defines for INFO_DATA_TYPE_LIF_STATISTICS
*/
typedef struct _EXT_MENLO_ACCESS_PARAMETERS {
union {
struct {
struct {
struct {
} ap;
/* Statistics, Configuration) */
typedef struct _EXT_MENLO_MANAGE_INFO {
typedef struct _EXT_MENLO_MGT {
union {
} sp;
/*
* vport enum definations
*/
typedef enum vport_options {
/*
* vport struct definations
*/
typedef struct _EXT_VPORT_ID_CNT {
typedef struct _EXT_VPORT_PARAMS {
typedef struct _EXT_VPORT_INFO {
#define FCF_INFO_RETURN_ALL 0
typedef struct _EXT_FCF_INFO {
typedef struct _EXT_FCF_LIST {
typedef struct _EXT_RESOURCE_CNTS {
#ifdef __cplusplus
}
#endif
#endif /* _EXIOCT_H */