parport_ip32_drain_fifo(9)
β¨ parport_ip32_drain_fifo β the kernel API manual, but make it make sense β¨
okay so bestie, buckle up π today's main character is parport_ip32_drain_fifo, and no cap, it's lowkey one of the chillest functions in the whole parport_ip32 friend group. it does exactly one thing and it does it slay. let's get into it π
πΈ NAME πΈ
parport_ip32_drain_fifo β wait for FIFO to empty. that's it. that's the whole vibe check π«Ά
π¦ SYNOPSIS π¦
unsigned int parport_ip32_drain_fifo (struct parport *p , unsigned long
timeout );
like yes, she takes two arguments, and no, she's not gonna make it complicated for you π
β ARGUMENTS β
pβ pointer tostruct parport. yes bestie, the classic "pointer to struct parport" moment, we love a familiar face πtimeoutβ timeout, in jiffies. (jiffies!! the kernel's iconic little tick era β±οΈβ¨ note that this is measured in jiffies, not seconds β keep that in mind fr fr)
π DESCRIPTION π
so here's the tea β: this function waits for FIFO to empty. literally that's the function. she's patient, she's focused, she's not here for drama.
the way it returns is giving simple-and-iconic:
- returns
1when FIFO is empty β slay, mission accomplished π β¨ - returns
0if thetimeouttimeoutis reached before that happens, or if a signal is pending π (yes, both of those get the big fat zero, periodt)
ngl bestie, timeout being both the parameter name and the word "timeout" in the description is not me stuttering β that's literally how the original reads π keep it in mind and you're golden.
π₯ SEE ALSO π₯
okay this is the part where the whole friend group shows up to the party π like genuinely, this list ate and left no crumbs. here they all are, in order, exactly as they appear:
- Kernel file
./drivers/parport/parport_ip32.c - struct
parport_ip32_regs(9) - enum
parport_ip32_irq_mode(9) - struct
parport_ip32_private(9) - struct
parport_ip32_dma_data(9) parport_ip32_dma_setup_context(9)parport_ip32_dma_interrupt(9)parport_ip32_dma_start(9)parport_ip32_dma_stop(9)parport_ip32_dma_get_residue(9)parport_ip32_dma_register(9)parport_ip32_dma_unregister(9)parport_ip32_wakeup(9)parport_ip32_interrupt(9)parport_ip32_read_econtrol(9)parport_ip32_write_econtrol(9)parport_ip32_frob_econtrol(9)parport_ip32_set_mode(9)parport_ip32_read_data(9)parport_ip32_write_data(9)parport_ip32_read_status(9)__parport_ip32_read_control(9)__parport_ip32_write_control(9)__parport_ip32_frob_control(9)parport_ip32_read_control(9)parport_ip32_write_control(9)parport_ip32_frob_control(9)parport_ip32_disable_irq(9)parport_ip32_enable_irq(9)parport_ip32_data_forward(9)parport_ip32_data_reverse(9)parport_ip32_init_state(9)parport_ip32_save_state(9)parport_ip32_restore_state(9)parport_ip32_clear_epp_timeout(9)parport_ip32_epp_read(9)parport_ip32_epp_write(9)parport_ip32_epp_read_data(9)parport_ip32_epp_write_data(9)parport_ip32_epp_read_addr(9)parport_ip32_epp_write_addr(9)parport_ip32_fifo_wait_break(9)parport_ip32_fwp_wait_polling(9)parport_ip32_fwp_wait_interrupt(9)parport_ip32_fifo_write_block_pio(9)parport_ip32_fifo_write_block_dma(9)parport_ip32_fifo_write_block(9)parport_ip32_get_fifo_residue(9)parport_ip32_compat_write_data(9)parport_ip32_ecp_write_data(9)parport_ip32_ecp_supported(9)parport_ip32_fifo_supported(9)parport_ip32_make_isa_registers(9)parport_ip32_probe_port(9)parport_ip32_unregister_port(9)parport_ip32_init(9)parport_ip32_exit(9)
likeβ¦ the range ππ every single one of them, no skips, we don't do that here π«Ά
π§ sign-off π§
and that's the whole page, bestie! π this lil gem lives over in ./drivers/parport, it's the Kernel API Manual, and it's dated October 2026 β so when you cite it, cite it right π
go forth and drain that FIFO, you absolute icon πβ¨
π¦ 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