ata_read_log_page(9)
π¦ ata_read_log_page(9) π¦
okay so bestie, this one lives in the Kernel API Manual and it's literally the glow-up era of ATA log reading. no cap, it's a whole vibe.
β¨ NAME β¨
ata_read_log_page β read a specific log page π
π SYNOPSIS π
unsigned int ata_read_log_page (struct ata_device *dev , u8 log , u8
page , void *buf , unsigned int sectors );
like, that's the whole signature. she's giving function prototype realness π«Ά
πΈ ARGUMENTS πΈ
devβ the target device π like, this is whose log we're reading, okay? main character device energy.logβ the log to read πpageβ the page to read πbufβ the buffer where the read page goes π§Ί catch it bestiesectorsβ how many sectors to read π’
π DESCRIPTION π
okay so it reads the log page using the READ_LOG_EXT command. that's it, that's the flex. iconic behavior honestly β¨
LOCKING: Kernel thread context (may sleep). so like... she can nap. do not come for her in interrupt context, it's giving "do not perceive me" π
β RETURN β
0 on success π β and otherwise an AC_ERR_* mask π (so like, if it's not zero, go check your error bits, iykyk).
π SEE ALSO π
Kernel file ./drivers/ata/libata-core.c β and literally the entire ata extended family, no fr fr, here's the whole group chat π
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_exec_internal(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_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)
and that's the whole thing bestie, go read some log pages π β¨
ngl this whole page ships out of ./drivers/ata, dated October 2026 β slay, see you in the next kernel release ππ¦π
π¦ 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