ata_exec_internal(9)
π NAME π
ata_exec_internal β execute libata internal command. (yes bestie, this is page ata_exec_internal(9) from the Kernel API Manual, and it's lowkey iconic π
)
β¨ SYNOPSIS β¨
unsigned int ata_exec_internal (struct ata_device *dev , struct
ata_taskfile *tf , const u8 *cdb , enum dma_data_direction dma_dir ,
void *buf , unsigned int buflen , unsigned int timeout );
π ARGUMENTS π
devβ the device to which the command is sent, periodt.tfβ taskfile registers for the command and the result; it comes in with the command and leaves with the result.cdbβ CDB for packet command, no cap.dma_dirβ data transfer direction of the command.bufβ data buffer of the command.buflenβ length of data buffer.timeoutβ timeout in msecs (0for default). iykyk.
π¦ DESCRIPTION π¦
Executes libata internal command with timeout. tf contains the command on entry and the result on return. Timeout and error conditions are reported via the return value. No recovery action is taken after a command times out. It is the caller's duty to clean up after timeout. So don't just ghost it after a timeout, bestie ππ
LOCKING: None. Should be called with kernel context, might sleep. Like, actually might sleep β respect the nap era π΄
π₯ RETURN π₯
Zero on success, AC_ERR_* mask on failure. That's the whole vibe check π
π SEE ALSO π
Kernel file ./drivers/ata/libata-core.c is right there, and then the whole friend group is:
ata_link_next(9),ata_dev_next(9),ata_dev_phys_link(9),ata_force_cbl(9),ata_force_pflags(9),ata_force_link_limits(9),ata_force_xfermask(9),ata_force_quirks(9),atapi_cmd_type(9)ata_set_rwcmd_protocol(9),ata_tf_read_block(9),ata_build_rw_tf(9),ata_pack_xfermask(9),ata_unpack_xfermask(9),ata_xfer_mask2mode(9),ata_xfer_mode2mask(9),ata_xfer_mode2shift(9),ata_mode_string(9),ata_dev_classify(9)ata_id_string(9),ata_id_c_string(9),ata_read_native_max_address(9),ata_set_max_sectors(9),ata_hpa_resize(9),ata_dump_id(9),ata_id_xfermask(9),ata_pio_need_iordy(9),ata_pio_mask_no_iordy(9),ata_do_dev_read_id(9)ata_dev_read_id(9),ata_dev_power_set_standby(9),ata_dev_power_set_active(9),ata_read_log_page(9),ata_dev_configure(9),ata_cable_40wire(9),ata_cable_80wire(9),ata_cable_unknown(9),ata_cable_ignore(9),ata_cable_sata(9)sata_print_link_status(9),ata_dev_pair(9),ata_timing_cycle2mode(9),ata_down_xfermask_limit(9),ata_set_mode(9),ata_wait_ready(9),ata_wait_after_reset(9),ata_std_prereset(9),ata_std_postreset(9),ata_dev_same_device(9)ata_dev_reread_id(9),ata_dev_revalidate(9),ata_is_40wire(9),cable_is_40wire(9),ata_dev_xfermask(9),ata_dev_set_xfermode(9),ata_dev_set_feature(9),ata_dev_init_params(9),atapi_check_dma(9),ata_std_qc_defer(9)ata_sg_init(9),ata_sg_clean(9),ata_sg_setup(9),swap_buf_le16(9),ata_qc_free(9),ata_qc_complete(9),ata_qc_get_active(9),ata_qc_issue(9),ata_phys_link_online(9),ata_phys_link_offline(9)ata_link_online(9),ata_link_offline(9),ata_host_suspend(9),ata_host_resume(9),ata_dev_init(9),ata_link_init(9),sata_link_init_spd(9),ata_port_alloc(9),ata_host_alloc(9),ata_host_alloc_pinfo(9)ata_finalize_port_ops(9),ata_host_start(9),ata_host_init(9),ata_host_register(9),ata_host_activate(9),ata_dev_free_resources(9),ata_port_detach(9),ata_host_detach(9),ata_pci_remove_one(9),ata_platform_remove_one(9)ata_msleep(9),ata_wait_register(9)
β source/version: ./drivers/ata; date: October 2026; page: ata_exec_internal(9) π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms