Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/smartpqi/smartpqi_prototypes.h
/*- | /*- | ||||
* Copyright (c) 2018 Microsemi Corporation. | * Copyright (c) 2016-2019 Microsemi Corporation. | ||||
* Copyright (c) 2020 Microchip Technology Inc. and it's subsidiaries. | |||||
* | |||||
* All rights reserved. | * All rights reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
Context not available. | |||||
int pqisrc_process_config_table(pqisrc_softstate_t *); | int pqisrc_process_config_table(pqisrc_softstate_t *); | ||||
int pqisrc_flush_cache(pqisrc_softstate_t *, enum pqisrc_flush_cache_event_type); | int pqisrc_flush_cache(pqisrc_softstate_t *, enum pqisrc_flush_cache_event_type); | ||||
int pqisrc_wait_for_pqi_reset_completion(pqisrc_softstate_t *); | int pqisrc_wait_for_pqi_reset_completion(pqisrc_softstate_t *); | ||||
int pqisrc_wait_for_cmnd_complete(pqisrc_softstate_t *); | |||||
void pqisrc_complete_internal_cmds(pqisrc_softstate_t *); | |||||
/* pqi_sis.c*/ | /* pqi_sis.c*/ | ||||
int pqisrc_sis_init(pqisrc_softstate_t *); | int pqisrc_sis_init(pqisrc_softstate_t *); | ||||
Context not available. | |||||
int pqisrc_sis_wait_for_db_bit_to_clear(pqisrc_softstate_t *, uint32_t); | int pqisrc_sis_wait_for_db_bit_to_clear(pqisrc_softstate_t *, uint32_t); | ||||
void sis_disable_interrupt(pqisrc_softstate_t*); | void sis_disable_interrupt(pqisrc_softstate_t*); | ||||
/* pqi_queue.c */ | /* pqi_queue.c */ | ||||
int pqisrc_submit_admin_req(pqisrc_softstate_t *, | int pqisrc_submit_admin_req(pqisrc_softstate_t *, | ||||
gen_adm_req_iu_t *, gen_adm_resp_iu_t *); | gen_adm_req_iu_t *, gen_adm_resp_iu_t *); | ||||
Context not available. | |||||
void pqisrc_init_targetid_pool(pqisrc_softstate_t *softs); | void pqisrc_init_targetid_pool(pqisrc_softstate_t *softs); | ||||
int pqisrc_alloc_tid(pqisrc_softstate_t *softs); | int pqisrc_alloc_tid(pqisrc_softstate_t *softs); | ||||
void pqisrc_free_tid(pqisrc_softstate_t *softs, int); | void pqisrc_free_tid(pqisrc_softstate_t *softs, int); | ||||
int pqisrc_get_physical_logical_luns(pqisrc_softstate_t *softs, uint8_t cmd, | |||||
reportlun_data_ext_t **buff, size_t *data_length); | |||||
int pqisrc_send_scsi_inquiry(pqisrc_softstate_t *softs, | |||||
uint8_t *scsi3addr, uint16_t vpd_page, uint8_t *buff, int buf_len); | |||||
/* pqi_helper.c */ | /* pqi_helper.c */ | ||||
boolean_t pqisrc_ctrl_offline(pqisrc_softstate_t *); | boolean_t pqisrc_ctrl_offline(pqisrc_softstate_t *); | ||||
void pqisrc_heartbeat_timer_handler(pqisrc_softstate_t *); | void pqisrc_heartbeat_timer_handler(pqisrc_softstate_t *); | ||||
int pqisrc_wait_on_condition(pqisrc_softstate_t *, rcb_t *); | int pqisrc_wait_on_condition(pqisrc_softstate_t *softs, rcb_t *rcb, | ||||
uint32_t timeout); | |||||
boolean_t pqisrc_device_equal(pqi_scsi_dev_t *, pqi_scsi_dev_t *); | boolean_t pqisrc_device_equal(pqi_scsi_dev_t *, pqi_scsi_dev_t *); | ||||
boolean_t pqisrc_is_hba_lunid(uint8_t *); | boolean_t pqisrc_is_hba_lunid(uint8_t *); | ||||
boolean_t pqisrc_is_logical_device(pqi_scsi_dev_t *); | boolean_t pqisrc_is_logical_device(pqi_scsi_dev_t *); | ||||
Context not available. | |||||
void check_struct_sizes(void); | void check_struct_sizes(void); | ||||
char *pqisrc_raidlevel_to_string(uint8_t); | char *pqisrc_raidlevel_to_string(uint8_t); | ||||
void pqisrc_configure_legacy_intx(pqisrc_softstate_t*, boolean_t); | void pqisrc_configure_legacy_intx(pqisrc_softstate_t*, boolean_t); | ||||
void pqisrc_ctrl_diagnostic_options(pqisrc_softstate_t *); | |||||
void pqisrc_wait_for_device_commands_to_complete(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
void check_device_pending_commands_to_complete(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
uint32_t pqisrc_count_num_scsi_active_requests_on_dev(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
/* pqi_response.c */ | /* pqi_response.c */ | ||||
void pqisrc_signal_event(pqisrc_softstate_t *softs, rcb_t *rcb); | void pqisrc_signal_event(pqisrc_softstate_t *softs, rcb_t *rcb); | ||||
Context not available. | |||||
rcb_t *, uint16_t); | rcb_t *, uint16_t); | ||||
void pqisrc_process_io_response_success(pqisrc_softstate_t *, | void pqisrc_process_io_response_success(pqisrc_softstate_t *, | ||||
rcb_t *); | rcb_t *); | ||||
void pqisrc_show_sense_data_full(pqisrc_softstate_t *, rcb_t *, sense_data_u_t *sense_data); | |||||
void pqisrc_process_aio_response_error(pqisrc_softstate_t *, | void pqisrc_process_aio_response_error(pqisrc_softstate_t *, | ||||
rcb_t *, uint16_t); | rcb_t *, uint16_t); | ||||
void pqisrc_process_raid_response_error(pqisrc_softstate_t *, | void pqisrc_process_raid_response_error(pqisrc_softstate_t *, | ||||
Context not available. | |||||
void pqisrc_process_response_queue(pqisrc_softstate_t *, int); | void pqisrc_process_response_queue(pqisrc_softstate_t *, int); | ||||
/* pqi_request.c */ | /* pqi_request.c */ | ||||
int pqisrc_build_send_vendor_request(pqisrc_softstate_t*, | |||||
pqi_vendor_general_request_t *, | |||||
raid_path_error_info_elem_t *); | |||||
int pqisrc_build_send_io(pqisrc_softstate_t *,rcb_t *); | int pqisrc_build_send_io(pqisrc_softstate_t *,rcb_t *); | ||||
int pqisrc_send_scsi_cmd_raidbypass(pqisrc_softstate_t *softs, | int pqisrc_send_scsi_cmd_raidbypass(pqisrc_softstate_t *softs, | ||||
pqi_scsi_dev_t *device, rcb_t *rcb, uint8_t*); | pqi_scsi_dev_t *device, rcb_t *rcb, uint8_t*); | ||||
int pqisrc_send_tmf(pqisrc_softstate_t *, pqi_scsi_dev_t *, | int pqisrc_send_tmf(pqisrc_softstate_t *, pqi_scsi_dev_t *, | ||||
rcb_t *, int, int); | rcb_t *, rcb_t *, int); | ||||
int pqisrc_write_current_time_to_host_wellness(pqisrc_softstate_t *softs); | int pqisrc_write_current_time_to_host_wellness(pqisrc_softstate_t *softs); | ||||
int pqisrc_write_driver_version_to_host_wellness(pqisrc_softstate_t *softs); | int pqisrc_write_driver_version_to_host_wellness(pqisrc_softstate_t *softs); | ||||
void pqisrc_print_buffer(pqisrc_softstate_t *softs, char *msg, void *user_buf, uint32_t total_len, uint32_t flags); | |||||
char *io_path_to_ascii(IO_PATH_T path); | |||||
/* pqi_event.c*/ | /* pqi_event.c*/ | ||||
int pqisrc_report_event_config(pqisrc_softstate_t *); | int pqisrc_report_event_config(pqisrc_softstate_t *); | ||||
int pqisrc_set_event_config(pqisrc_softstate_t *); | int pqisrc_set_event_config(pqisrc_softstate_t *); | ||||
int pqisrc_process_event_intr_src(pqisrc_softstate_t *,int); | int pqisrc_process_event_intr_src(pqisrc_softstate_t *,int); | ||||
void pqisrc_ack_all_events(void *arg); | void pqisrc_ack_all_events(void *arg); | ||||
void pqisrc_wait_for_rescan_complete(pqisrc_softstate_t *softs); | |||||
void pqisrc_event_worker(void *, int); | |||||
int pqisrc_scsi_setup(struct pqisrc_softstate *); | |||||
void pqisrc_scsi_cleanup(struct pqisrc_softstate *); | |||||
boolean_t pqisrc_update_scsi_sense(const uint8_t *, int, | boolean_t pqisrc_update_scsi_sense(const uint8_t *, int, | ||||
struct sense_header_scsi *); | struct sense_header_scsi *); | ||||
int pqisrc_build_send_raid_request(pqisrc_softstate_t *, pqisrc_raid_req_t *, | int pqisrc_build_send_raid_request(pqisrc_softstate_t *, pqisrc_raid_req_t *, | ||||
Context not available. | |||||
int pqisrc_alloc_and_create_ob_queues(pqisrc_softstate_t *); | int pqisrc_alloc_and_create_ob_queues(pqisrc_softstate_t *); | ||||
int pqisrc_process_task_management_response(pqisrc_softstate_t *, | int pqisrc_process_task_management_response(pqisrc_softstate_t *, | ||||
pqi_tmf_resp_t *); | pqi_tmf_resp_t *); | ||||
void pqisrc_wait_for_rescan_complete(pqisrc_softstate_t *softs); | |||||
/*Device outstanding Io count*/ | |||||
uint64_t pqisrc_increment_device_active_io(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
uint64_t pqisrc_decrement_device_active_io(pqisrc_softstate_t *, | |||||
rcb_t *); | |||||
void pqisrc_init_device_active_io(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
uint64_t pqisrc_read_device_active_io(pqisrc_softstate_t *, | |||||
pqi_scsi_dev_t *); | |||||
/* pqi_ioctl.c*/ | /* pqi_ioctl.c*/ | ||||
Context not available. | |||||
pqisrc_passthru_ioctl(struct pqisrc_softstate *, void *, int); | pqisrc_passthru_ioctl(struct pqisrc_softstate *, void *, int); | ||||
/* Functions Prototypes */ | /* Functions Prototypes */ | ||||
/* FreeBSD_mem.c */ | /* FreeBSD_mem.c */ | ||||
int os_dma_mem_alloc(pqisrc_softstate_t *,struct dma_mem *); | int os_dma_mem_alloc(pqisrc_softstate_t *,struct dma_mem *); | ||||
Context not available. | |||||
void *os_mem_alloc(pqisrc_softstate_t *,size_t); | void *os_mem_alloc(pqisrc_softstate_t *,size_t); | ||||
void os_mem_free(pqisrc_softstate_t *,char *,size_t); | void os_mem_free(pqisrc_softstate_t *,char *,size_t); | ||||
void os_resource_free(pqisrc_softstate_t *); | void os_resource_free(pqisrc_softstate_t *); | ||||
int os_dma_setup(pqisrc_softstate_t *); | |||||
int os_dma_destroy(pqisrc_softstate_t *); | |||||
void os_update_dma_attributes(pqisrc_softstate_t *); | |||||
/* FreeBSD intr.c */ | /* FreeBSD intr.c */ | ||||
int os_get_intr_config(pqisrc_softstate_t *); | int os_get_intr_config(pqisrc_softstate_t *); | ||||
Context not available. | |||||
/* FreeBSD_cam.c */ | /* FreeBSD_cam.c */ | ||||
uint8_t os_get_task_attr(rcb_t *); | uint8_t os_get_task_attr(rcb_t *); | ||||
void os_wellness_periodic(void *); | |||||
void smartpqi_target_rescan(struct pqisrc_softstate *); | void smartpqi_target_rescan(struct pqisrc_softstate *); | ||||
/* FreeBSD_intr.c FreeBSD_main.c */ | /* FreeBSD_intr.c FreeBSD_main.c */ | ||||
void pqisrc_event_worker(void *, int); | |||||
void os_add_device(pqisrc_softstate_t *, pqi_scsi_dev_t *); | void os_add_device(pqisrc_softstate_t *, pqi_scsi_dev_t *); | ||||
void os_remove_device(pqisrc_softstate_t *, pqi_scsi_dev_t *); | void os_remove_device(pqisrc_softstate_t *, pqi_scsi_dev_t *); | ||||
void os_io_response_success(rcb_t *); | void os_io_response_success(rcb_t *); | ||||
void os_aio_response_error(rcb_t *, aio_path_error_info_elem_t *); | void os_aio_response_error(rcb_t *, aio_path_error_info_elem_t *); | ||||
void smartpqi_adjust_queue_depth(struct cam_path *, uint32_t ); | void smartpqi_adjust_queue_depth(struct cam_path *, uint32_t ); | ||||
void os_raid_response_error(rcb_t *, raid_path_error_info_elem_t *); | void os_raid_response_error(rcb_t *, raid_path_error_info_elem_t *); | ||||
void os_wellness_periodic(void *); | |||||
void os_reset_rcb( rcb_t *); | void os_reset_rcb( rcb_t *); | ||||
int register_sim(struct pqisrc_softstate *, int); | int register_sim(struct pqisrc_softstate *, int); | ||||
void deregister_sim(struct pqisrc_softstate *); | void deregister_sim(struct pqisrc_softstate *); | ||||
Context not available. | |||||
void os_get_time(struct bmic_host_wellness_time *); | void os_get_time(struct bmic_host_wellness_time *); | ||||
void os_eventtaskqueue_enqueue(pqisrc_softstate_t *); | void os_eventtaskqueue_enqueue(pqisrc_softstate_t *); | ||||
void pqisrc_save_controller_info(struct pqisrc_softstate *); | void pqisrc_save_controller_info(struct pqisrc_softstate *); | ||||
int smartpqi_shutdown(void *); | |||||
/* Domain status conversion */ | |||||
int pqi_error_to_bsd_error(int ); | |||||
int bsd_error_to_pqi_error(int ); | |||||
#endif // _SMARTPQI_PROTOTYPES_H | #endif // _SMARTPQI_PROTOTYPES_H | ||||
Context not available. |