drivers/scsi/isci/task.h
Source file repositories/reference/linux-study-clean/drivers/scsi/isci/task.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/isci/task.h- Extension
.h- Size
- 5622 bytes
- Lines
- 184
- Domain
- Driver Families
- Bucket
- drivers/scsi
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
scsi/sas_ata.hhost.h
Detected Declarations
struct isci_requeststruct isci_tmfenum isci_tmf_function_codesfunction isci_print_tmf
Annotated Snippet
struct isci_tmf {
struct completion *complete;
enum sas_protocol proto;
unsigned char lun[8];
u16 io_tag;
enum isci_tmf_function_codes tmf_code;
int status;
/* Must be last --ends in a flexible-array member. */
union {
struct ssp_response_iu resp_iu;
struct dev_to_host_fis d2h_fis;
u8 rsp_buf[SSP_RESP_IU_MAX_SIZE];
} resp;
};
static inline void isci_print_tmf(struct isci_host *ihost, struct isci_tmf *tmf)
{
if (SAS_PROTOCOL_SATA == tmf->proto)
dev_dbg(&ihost->pdev->dev,
"%s: status = %x\n"
"tmf->resp.d2h_fis.status = %x\n"
"tmf->resp.d2h_fis.error = %x\n",
__func__,
tmf->status,
tmf->resp.d2h_fis.status,
tmf->resp.d2h_fis.error);
else
dev_dbg(&ihost->pdev->dev,
"%s: status = %x\n"
"tmf->resp.resp_iu.data_present = %x\n"
"tmf->resp.resp_iu.status = %x\n"
"tmf->resp.resp_iu.data_length = %x\n"
"tmf->resp.resp_iu.data[0] = %x\n"
"tmf->resp.resp_iu.data[1] = %x\n"
"tmf->resp.resp_iu.data[2] = %x\n"
"tmf->resp.resp_iu.data[3] = %x\n",
__func__,
tmf->status,
tmf->resp.resp_iu.datapres,
tmf->resp.resp_iu.status,
be32_to_cpu(tmf->resp.resp_iu.response_data_len),
tmf->resp.resp_iu.resp_data[0],
tmf->resp.resp_iu.resp_data[1],
tmf->resp.resp_iu.resp_data[2],
tmf->resp.resp_iu.resp_data[3]);
}
int isci_task_execute_task(
struct sas_task *task,
gfp_t gfp_flags);
int isci_task_abort_task(
struct sas_task *task);
int isci_task_abort_task_set(
struct domain_device *d_device,
u8 *lun);
int isci_task_clear_task_set(
struct domain_device *d_device,
u8 *lun);
int isci_task_query_task(
struct sas_task *task);
int isci_task_lu_reset(
struct domain_device *d_device,
u8 *lun);
int isci_task_clear_nexus_port(
struct asd_sas_port *port);
int isci_task_clear_nexus_ha(
struct sas_ha_struct *ha);
int isci_task_I_T_nexus_reset(
struct domain_device *d_device);
void isci_task_request_complete(
struct isci_host *isci_host,
struct isci_request *request,
enum sci_task_status completion_status);
u16 isci_task_ssp_request_get_io_tag_to_manage(
struct isci_request *request);
u8 isci_task_ssp_request_get_function(
Annotation
- Immediate include surface: `scsi/sas_ata.h`, `host.h`.
- Detected declarations: `struct isci_request`, `struct isci_tmf`, `enum isci_tmf_function_codes`, `function isci_print_tmf`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.