#ifndef _PMCRAID_H
#define _PMCRAID_H
#include <linux/types.h>
#include <linux/completion.h>
#include <linux/list.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <linux/cdev.h>
#include <net/netlink.h>
#include <net/genetlink.h>
#include <linux/connector.h>
#define PMCRAID_DRIVER_NAME …
#define PMCRAID_DEVFILE …
#define PMCRAID_DRIVER_VERSION …
#define PMCRAID_FW_VERSION_1 …
#define PMCRAID_MAX_ADAPTERS …
#define PMC_BIT8(n) …
#define PMC_BIT16(n) …
#define PMC_BIT32(n) …
#define PCI_VENDOR_ID_PMC …
#define PCI_DEVICE_ID_PMC_MAXRAID …
#define PMCRAID_MAX_CMD …
#define PMCRAID_MAX_IO_CMD …
#define PMCRAID_MAX_HCAM_CMD …
#define PMCRAID_MAX_INTERNAL_CMD …
#define PMCRAID_IOADLS_INTERNAL …
#define PMCRAID_IOADLS_EXTERNAL …
#define PMCRAID_MAX_IOADLS …
#define HRRQ_ENTRY_SIZE …
#define PMCRAID_IOARCB_ALIGNMENT …
#define PMCRAID_IOADL_ALIGNMENT …
#define PMCRAID_IOASA_ALIGNMENT …
#define PMCRAID_NUM_MSIX_VECTORS …
#define PMCRAID_VENDOR_ID_LEN …
#define PMCRAID_PRODUCT_ID_LEN …
#define PMCRAID_SERIAL_NUM_LEN …
#define PMCRAID_LUN_LEN …
#define PMCRAID_MAX_CDB_LEN …
#define PMCRAID_DEVICE_ID_LEN …
#define PMCRAID_SENSE_DATA_LEN …
#define PMCRAID_ADD_CMD_PARAM_LEN …
#define PMCRAID_MAX_BUS_TO_SCAN …
#define PMCRAID_MAX_NUM_TARGETS_PER_BUS …
#define PMCRAID_MAX_NUM_LUNS_PER_TARGET …
#define PMCRAID_IOA_BUS_ID …
#define PMCRAID_IOA_TARGET_ID …
#define PMCRAID_IOA_LUN_ID …
#define PMCRAID_VSET_BUS_ID …
#define PMCRAID_VSET_LUN_ID …
#define PMCRAID_PHYS_BUS_ID …
#define PMCRAID_VIRTUAL_ENCL_BUS_ID …
#define PMCRAID_MAX_VSET_TARGETS …
#define PMCRAID_MAX_VSET_LUNS_PER_TARGET …
#define PMCRAID_IOA_MAX_SECTORS …
#define PMCRAID_VSET_MAX_SECTORS …
#define PMCRAID_MAX_CMD_PER_LUN …
#define PMCRAID_MAX_RESOURCES …
#define PMCRAID_QUERY_RESOURCE_STATE …
#define PMCRAID_RESET_DEVICE …
#define ENABLE_RESET_MODIFIER …
#define RESET_DEVICE_LUN …
#define RESET_DEVICE_TARGET …
#define RESET_DEVICE_BUS …
#define PMCRAID_IDENTIFY_HRRQ …
#define PMCRAID_QUERY_IOA_CONFIG …
#define PMCRAID_QUERY_CMD_STATUS …
#define PMCRAID_ABORT_CMD …
#define PMCRAID_CANCEL_ALL_REQUESTS …
#define PMCRAID_SYNC_COMPLETE_AFTER_CANCEL …
#define PMCRAID_HOST_CONTROLLED_ASYNC …
#define PMCRAID_HCAM_CODE_CONFIG_CHANGE …
#define PMCRAID_HCAM_CODE_LOG_DATA …
#define PMCRAID_IOA_SHUTDOWN …
#define PMCRAID_SHUTDOWN_NORMAL …
#define PMCRAID_SHUTDOWN_PREPARE_FOR_NORMAL …
#define PMCRAID_SHUTDOWN_NONE …
#define PMCRAID_SHUTDOWN_ABBREV …
#define PMCRAID_SET_SUPPORTED_DEVICES …
#define ALL_DEVICES_SUPPORTED …
#define PMCRAID_WR_BUF_DOWNLOAD_AND_SAVE …
#define PMCRAID_IOASC_SENSE_MASK …
#define PMCRAID_IOASC_SENSE_KEY(ioasc) …
#define PMCRAID_IOASC_SENSE_CODE(ioasc) …
#define PMCRAID_IOASC_SENSE_QUAL(ioasc) …
#define PMCRAID_IOASC_SENSE_STATUS(ioasc) …
#define PMCRAID_IOASC_GOOD_COMPLETION …
#define PMCRAID_IOASC_GC_IOARCB_NOTFOUND …
#define PMCRAID_IOASC_NR_INIT_CMD_REQUIRED …
#define PMCRAID_IOASC_NR_IOA_RESET_REQUIRED …
#define PMCRAID_IOASC_NR_SYNC_REQUIRED …
#define PMCRAID_IOASC_ME_READ_ERROR_NO_REALLOC …
#define PMCRAID_IOASC_HW_CANNOT_COMMUNICATE …
#define PMCRAID_IOASC_HW_DEVICE_TIMEOUT …
#define PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR …
#define PMCRAID_IOASC_HW_IOA_RESET_REQUIRED …
#define PMCRAID_IOASC_IR_INVALID_RESOURCE_HANDLE …
#define PMCRAID_IOASC_AC_TERMINATED_BY_HOST …
#define PMCRAID_IOASC_UA_BUS_WAS_RESET …
#define PMCRAID_IOASC_TIME_STAMP_OUT_OF_SYNC …
#define PMCRAID_IOASC_UA_BUS_WAS_RESET_BY_OTHER …
#define PMCRAID_IOASC_IOA_WAS_RESET …
#define PMCRAID_IOASC_PCI_ACCESS_ERROR …
#define PMCRAID_PCI_DEASSERT_TIMEOUT …
#define PMCRAID_BIST_TIMEOUT …
#define PMCRAID_AENWAIT_TIMEOUT …
#define PMCRAID_TRANSOP_TIMEOUT …
#define PMCRAID_RESET_TIMEOUT …
#define PMCRAID_CHECK_FOR_RESET_TIMEOUT …
#define PMCRAID_VSET_IO_TIMEOUT …
#define PMCRAID_INTERNAL_TIMEOUT …
#define PMCRAID_SHUTDOWN_TIMEOUT …
#define PMCRAID_RESET_BUS_TIMEOUT …
#define PMCRAID_RESET_HOST_TIMEOUT …
#define PMCRAID_REQUEST_SENSE_TIMEOUT …
#define PMCRAID_SET_SUP_DEV_TIMEOUT …
struct pmcraid_ioadl_desc { … } __attribute__((packed, aligned …));
#define IOADL_FLAGS_CHAINED …
#define IOADL_FLAGS_LAST_DESC …
#define IOADL_FLAGS_READ_LAST …
#define IOADL_FLAGS_WRITE_LAST …
struct pmcraid_ioarcb_add_data { … };
struct pmcraid_ioarcb { … };
#define PMCRAID_IOA_RES_HANDLE …
#define PMCRAID_INVALID_RES_HANDLE …
#define REQ_TYPE_SCSI …
#define REQ_TYPE_IOACMD …
#define REQ_TYPE_HCAM …
#define TRANSFER_DIR_WRITE …
#define INHIBIT_UL_CHECK …
#define SYNC_OVERRIDE …
#define SYNC_COMPLETE …
#define NO_LINK_DESCS …
#define DELAY_AFTER_RESET …
#define TASK_TAG_SIMPLE …
#define TASK_TAG_ORDERED …
#define TASK_TAG_QUEUE_HEAD …
#define HRRQ_TOGGLE_BIT …
#define HRRQ_RESPONSE_BIT …
struct pmcraid_ioasa_vset { … } __attribute__((packed, aligned …));
struct pmcraid_ioasa { … } __attribute__((packed, aligned …));
#define PMCRAID_DRIVER_ILID …
struct pmcraid_config_table_entry { … } __attribute__((packed, aligned …));
struct pmcraid_config_table_entry_ext { … };
#define RES_TYPE_AF_DASD …
#define RES_TYPE_GSCSI …
#define RES_TYPE_VSET …
#define RES_TYPE_IOA_FP …
#define RES_IS_IOA(res) …
#define RES_IS_GSCSI(res) …
#define RES_IS_VSET(res) …
#define RES_IS_AFDASD(res) …
#define RES_TYPE_VENCLOSURE …
#define MULTIPATH_RESOURCE …
#define IMPORT_MODE_MANUAL …
#define RES_HANDLE_IOA …
#define RES_HANDLE_NONE …
#define RES_ADDRESS_IOAFP …
#define RES_ADDRESS_INVALID …
#define RES_BUS(res_addr) …
#define RES_TARGET(res_addr) …
#define RES_LUN(res_addr) …
struct pmcraid_config_table { … } __attribute__((packed, aligned …));
#define MICROCODE_UPDATE_REQUIRED …
#define PMCRAID_HOSTRCB_LDNSIZE …
struct pmcraid_hostrcb_error { … } __attribute__ ((packed, aligned …));
struct pmcraid_hcam_hdr { … } __attribute__((packed, aligned …));
#define PMCRAID_AEN_GROUP …
struct pmcraid_hcam_ccn { … } __attribute__((packed, aligned …));
#define PMCRAID_CCN_EXT_SIZE …
struct pmcraid_hcam_ccn_ext { … } __attribute__((packed, aligned …));
struct pmcraid_hcam_ldn { … } __attribute__((packed, aligned …));
#define HOSTRCB_TYPE_CCN …
#define HOSTRCB_TYPE_LDN …
#define NOTIFICATION_TYPE_ENTRY_CHANGED …
#define NOTIFICATION_TYPE_ENTRY_NEW …
#define NOTIFICATION_TYPE_ENTRY_DELETED …
#define NOTIFICATION_TYPE_STATE_CHANGE …
#define NOTIFICATION_TYPE_ENTRY_STATECHANGED …
#define NOTIFICATION_TYPE_ERROR_LOG …
#define NOTIFICATION_TYPE_INFORMATION_LOG …
#define HOSTRCB_NOTIFICATIONS_LOST …
#define HOSTRCB_INTERNAL_OP_ERROR …
#define HOSTRCB_ERROR_RESPONSE_SENT …
#define HOSTRCB_OVERLAY_ID_08 …
#define HOSTRCB_OVERLAY_ID_09 …
#define HOSTRCB_OVERLAY_ID_11 …
#define HOSTRCB_OVERLAY_ID_12 …
#define HOSTRCB_OVERLAY_ID_13 …
#define HOSTRCB_OVERLAY_ID_14 …
#define HOSTRCB_OVERLAY_ID_16 …
#define HOSTRCB_OVERLAY_ID_17 …
#define HOSTRCB_OVERLAY_ID_20 …
#define HOSTRCB_OVERLAY_ID_FF …
struct pmcraid_chip_details { … };
#define INTRS_TRANSITION_TO_OPERATIONAL …
#define INTRS_IOARCB_TRANSFER_FAILED …
#define INTRS_IOA_UNIT_CHECK …
#define INTRS_NO_HRRQ_FOR_CMD_RESPONSE …
#define INTRS_CRITICAL_OP_IN_PROGRESS …
#define INTRS_IO_DEBUG_ACK …
#define INTRS_IOARRIN_LOST …
#define INTRS_SYSTEM_BUS_MMIO_ERROR …
#define INTRS_IOA_PROCESSOR_ERROR …
#define INTRS_HRRQ_VALID …
#define INTRS_OPERATIONAL_STATUS …
#define INTRS_ALLOW_MSIX_VECTOR0 …
#define DOORBELL_RUNTIME_RESET …
#define DOORBELL_IOA_RESET_ALERT …
#define DOORBELL_IOA_DEBUG_ALERT …
#define DOORBELL_ENABLE_DESTRUCTIVE_DIAGS …
#define DOORBELL_IOA_START_BIST …
#define DOORBELL_INTR_MODE_MSIX …
#define DOORBELL_INTR_MSIX_CLR …
#define DOORBELL_RESET_IOA …
#define GLOBAL_INTERRUPT_MASK …
#define PMCRAID_ERROR_INTERRUPTS …
#define PMCRAID_PCI_INTERRUPTS …
struct pmcraid_control_block { … } __attribute__ ((packed, aligned …));
struct pmcraid_sglist { … };
struct pmcraid_inquiry_data { … };
#define PMCRAID_TIMESTAMP_LEN …
#define PMCRAID_REQ_TM_STR_LEN …
#define PMCRAID_SCSI_SET_TIMESTAMP …
#define PMCRAID_SCSI_SERVICE_ACTION …
struct pmcraid_timestamp_data { … };
struct pmcraid_cmd { … };
struct pmcraid_interrupts { … };
struct pmcraid_isr_param { … };
struct pmcraid_aen_msg { … };
struct pmcraid_state_msg { … };
#define PMC_DEVICE_EVENT_RESET_START …
#define PMC_DEVICE_EVENT_RESET_SUCCESS …
#define PMC_DEVICE_EVENT_RESET_FAILED …
#define PMC_DEVICE_EVENT_SHUTDOWN_START …
#define PMC_DEVICE_EVENT_SHUTDOWN_SUCCESS …
#define PMC_DEVICE_EVENT_SHUTDOWN_FAILED …
struct pmcraid_hostrcb { … };
#define PMCRAID_AEN_HDR_SIZE …
struct pmcraid_instance { … };
struct pmcraid_resource_entry { … };
struct pmcraid_ioasc_error { … };
#define IOASC_LOG_LEVEL_NONE …
#define IOASC_LOG_LEVEL_MUST …
#define IOASC_LOG_LEVEL_HARD …
static struct pmcraid_ioasc_error pmcraid_ioasc_error_table[] = …;
#define pmcraid_err(...) …
#define pmcraid_info(...) …
#define SCSI_READ_CMD …
#define SCSI_WRITE_CMD …
#define SCSI_CMD_TYPE(opcode) …
#define IS_SCSI_READ_WRITE(opcode) …
struct pmcraid_ioctl_header { … };
#define PMCRAID_IOCTL_SIGNATURE …
#define PMCRAID_DRIVER_IOCTL …
#define DRV_IOCTL(n, size) …
#define _ARGSIZE(arg) …
#define PMCRAID_IOCTL_RESET_ADAPTER …
#endif