#ifndef HPSA_H
#define HPSA_H
#include <scsi/scsicam.h>
#define IO_OK …
#define IO_ERROR …
struct ctlr_info;
struct access_method { … };
struct hpsa_sas_node { … };
struct hpsa_sas_port { … };
struct hpsa_sas_phy { … };
#define EXTERNAL_QD …
struct hpsa_scsi_dev_t { … };
struct reply_queue_buffer { … };
#pragma pack(1)
struct bmic_controller_parameters { … };
#pragma pack()
struct ctlr_info { … };
struct offline_device_entry { … };
#define HPSA_ABORT_MSG …
#define HPSA_DEVICE_RESET_MSG …
#define HPSA_RESET_TYPE_CONTROLLER …
#define HPSA_RESET_TYPE_BUS …
#define HPSA_RESET_TYPE_LUN …
#define HPSA_PHYS_TARGET_RESET …
#define HPSA_MSG_SEND_RETRY_LIMIT …
#define HPSA_MSG_SEND_RETRY_INTERVAL_MSECS …
#define HPSA_MAX_POLL_TIME_SECS …
#define HPSA_TUR_RETRY_LIMIT …
#define HPSA_MAX_WAIT_INTERVAL_SECS …
#define HPSA_BOARD_READY_WAIT_SECS …
#define HPSA_BOARD_NOT_READY_WAIT_SECS …
#define HPSA_BOARD_READY_POLL_INTERVAL_MSECS …
#define HPSA_BOARD_READY_POLL_INTERVAL …
#define HPSA_BOARD_READY_ITERATIONS …
#define HPSA_BOARD_NOT_READY_ITERATIONS …
#define HPSA_POST_RESET_PAUSE_MSECS …
#define HPSA_POST_RESET_NOOP_RETRIES …
#define SA5_DOORBELL …
#define SA5_REQUEST_PORT_OFFSET …
#define SA5_REQUEST_PORT64_LO_OFFSET …
#define SA5_REQUEST_PORT64_HI_OFFSET …
#define SA5_REPLY_INTR_MASK_OFFSET …
#define SA5_REPLY_PORT_OFFSET …
#define SA5_INTR_STATUS …
#define SA5_SCRATCHPAD_OFFSET …
#define SA5_CTCFG_OFFSET …
#define SA5_CTMEM_OFFSET …
#define SA5_INTR_OFF …
#define SA5B_INTR_OFF …
#define SA5_INTR_PENDING …
#define SA5B_INTR_PENDING …
#define FIFO_EMPTY …
#define HPSA_FIRMWARE_READY …
#define HPSA_ERROR_BIT …
#define SA5_PERF_INTR_PENDING …
#define SA5_PERF_INTR_OFF …
#define SA5_OUTDB_STATUS_PERF_BIT …
#define SA5_OUTDB_CLEAR_PERF_BIT …
#define SA5_OUTDB_CLEAR …
#define SA5_OUTDB_CLEAR_PERF_BIT …
#define SA5_OUTDB_STATUS …
#define HPSA_INTR_ON …
#define HPSA_INTR_OFF …
#define IOACCEL2_INBOUND_POSTQ_32 …
#define IOACCEL2_INBOUND_POSTQ_64_LOW …
#define IOACCEL2_INBOUND_POSTQ_64_HI …
#define HPSA_PHYSICAL_DEVICE_BUS …
#define HPSA_RAID_VOLUME_BUS …
#define HPSA_EXTERNAL_RAID_VOLUME_BUS …
#define HPSA_HBA_BUS …
#define HPSA_LEGACY_HBA_BUS …
static void SA5_submit_command(struct ctlr_info *h,
struct CommandList *c)
{ … }
static void SA5_submit_command_no_read(struct ctlr_info *h,
struct CommandList *c)
{ … }
static void SA5_submit_command_ioaccel2(struct ctlr_info *h,
struct CommandList *c)
{ … }
static void SA5_intr_mask(struct ctlr_info *h, unsigned long val)
{ … }
static void SA5B_intr_mask(struct ctlr_info *h, unsigned long val)
{ … }
static void SA5_performant_intr_mask(struct ctlr_info *h, unsigned long val)
{ … }
static unsigned long SA5_performant_completed(struct ctlr_info *h, u8 q)
{ … }
static unsigned long SA5_completed(struct ctlr_info *h,
__attribute__((unused)) u8 q)
{ … }
static bool SA5_intr_pending(struct ctlr_info *h)
{ … }
static bool SA5_performant_intr_pending(struct ctlr_info *h)
{ … }
#define SA5_IOACCEL_MODE1_INTR_STATUS_CMP_BIT …
static bool SA5_ioaccel_mode1_intr_pending(struct ctlr_info *h)
{ … }
static bool SA5B_intr_pending(struct ctlr_info *h)
{ … }
#define IOACCEL_MODE1_REPLY_QUEUE_INDEX …
#define IOACCEL_MODE1_PRODUCER_INDEX …
#define IOACCEL_MODE1_CONSUMER_INDEX …
#define IOACCEL_MODE1_REPLY_UNUSED …
static unsigned long SA5_ioaccel_mode1_completed(struct ctlr_info *h, u8 q)
{ … }
static struct access_method SA5_access = …;
static struct access_method SA5A_access = …;
static struct access_method SA5B_access = …;
static struct access_method SA5_ioaccel_mode1_access = …;
static struct access_method SA5_ioaccel_mode2_access = …;
static struct access_method SA5_performant_access = …;
static struct access_method SA5_performant_access_no_read = …;
struct board_type { … };
#endif