Scroll to navigation

ATA_EXEC_INTERNAL_SG(9) libata Core Internals ATA_EXEC_INTERNAL_SG(9)

NAME

ata_exec_internal_sg - execute libata internal command

SYNOPSIS

unsigned ata_exec_internal_sg(struct ata_device * dev, struct ata_taskfile * tf, const u8 * cdb, int dma_dir, struct scatterlist * sgl, unsigned int n_elem, unsigned long timeout);

ARGUMENTS

struct ata_device * dev

Device to which the command is sent

struct ata_taskfile * tf

Taskfile registers for the command and the result

const u8 * cdb

CDB for packet command

int dma_dir

Data transfer direction of the command

struct scatterlist * sgl

sg list for the data buffer of the command

unsigned int n_elem

Number of sg entries

unsigned long timeout

Timeout in msecs (0 for default)

DESCRIPTION

Executes libata internal command with timeout. tf contains command on entry and result on return. Timeout and error conditions are reported via return value. No recovery action is taken after a command times out. It's caller's duty to clean up after timeout.

LOCKING: None. Should be called with kernel context, might sleep.

RETURN

Zero on success, AC_ERR_* mask on failure

AUTHOR

Jeff Garzik

Author.

COPYRIGHT

July 2017 Kernel Hackers Manual 4.12