ata_std_prereset(9)
π ata_std_prereset β prepare for reset
okay so this one's from the Kernel API Manual (yes, the ata_std_prereset(9) girlies rise), and it's literally the "get ready, we're about to reset" little pre-game routine for an ATA link. tiny function, big main-character energy. π
β¨ SYNOPSIS β¨
int ata_std_prereset (struct ata_link *link , unsigned long deadline );
two arguments, both kind of a vibe, let's go through them π«Ά
πΈ ARGUMENTS πΈ
linkβ the ATA link that is about to get reset. the one we're hyping up. the main character, honestly.deadlineβ the deadline in jiffies for the operation. like a due date but for kernel timekeeping, no cap.
π DESCRIPTION π
so link is about to be reset, right? and this function's whole job is initialize it first. get it cute, get it ready, do the prep. β¨
but here's the tea π₯: if prereset fails, libata aborts the whole reset sequence and just gives up on that port. like, fully abandons the port. so prereset should be best-effort β it does its best to prepare for the reset sequence, but if things go wrong it should just whine, not fail. complain loudly, keep walking. that's the assignment, periodt. π
LOCKING: Kernel thread context (may sleep) π΄ β yes bestie, it's allowed to nap, that's literally stated in the manual, i'm not making this up.
π¦ RETURN π¦
Always 0. always. it does not do drama, it does not do other numbers, it returns 0 and minds its business. iconic. π
π SEE ALSO π
Kernel file ./drivers/ata/libata-core.c β this is where the whole thing lives, and then there's the entire squad, in this exact order, and i mean all of them, i'm not skipping a single one, that would be so rude π€:
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_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_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 page bestie, every flag, every ref, nothing dropped π
this one came from ./drivers/ata, dated October 2026, and it's ata_std_prereset(9) β go prep your resets, ily, bye π¦β¨πΈ
π¦ 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