---
name: "ata_exec_internal"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/ata_exec_internal"
---

# ata\_exec\_internal(9)

execute libata internal command

## NAME

ata\_exec\_internal - execute libata internal command

## SYNOPSIS

**unsigned ata\_exec\_internal(struct ata\_device \*** *dev***, struct ata\_taskfile \*** *tf***, const u8 \*** *cdb***, int** *dma\_dir***, void \*** *buf***, unsigned int** *buflen***, unsigned long** *timeout***);**

## ARGUMENTS

*dev*

Device to which the command is sent

*tf*

Taskfile registers for the command and the result

*cdb*

CDB for packet command

*dma\_dir*

Data transfer direction of the command

*buf*

Data buffer of the command

*buflen*

Length of data buffer

*timeout*

Timeout in msecs (0 for default)

## DESCRIPTION

Wrapper around **ata\_exec\_internal\_sg** which takes simple buffer instead of sg list.

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

## RETURN

Zero on success, AC\_ERR\_\* mask on failure

## AUTHOR

**Jeff Garzik**

Author.

## COPYRIGHT
