hvc_iucv_queue(9)
π hvc_iucv_queue β the kernel API manual, but make it cute π
okay bestie, so this one's from the Kernel API Manual section (hvc_iucv_queue(9) β that's the section 9 one, kernel internals, iykyk) and it's literally about buffering terminal data so it can go out later. very "just put it in the queue and trust the process" energy fr fr π
β¨ NAME β¨
hvc_iucv_queue β buffer terminal data for sending. that's it, that's the whole vibe π¦
πΈ SYNOPSIS πΈ
ssize_t hvc_iucv_queue (struct hvc_iucv_private *priv , const u8 *buf ,
size_t count );
look at her. three args, one return type, zero drama. icon behavior honestly β
π ARGUMENTS π
privβ a pointer to astruct hvc_iucv_privateinstance. like, the specific private struct we're doing all this for π«Άbufβ the buffer that's holding the data you wanna send. the goods, basically πcountβ the size of that buffer, aka how much data you're sending. she's the amount AND the size, multitasking queen π
π₯ DESCRIPTION π₯
so what actually happens? the function queues data for sending β like, it puts it in the send line but doesn't personally escort it out the door. to actually send the buffered data, a work queue function gets scheduled, and it does that with QUEUE_SNDBUF_DELAY. and the function returns the number of data bytes that has been buffered. so like, "here's how much I took, bestie" π
now for the vibe check on the return values, because these matter π:
- if the device is not connected, the data is simply ignored and the function returns
count. yes, your data got ghosted, but the count still comes back π - if the buffer is full, the function returns
0. no room, no bytes, no cap π - if an existing IUCV communicaton path has been severed, you get
-EPIPEback. and ooh, that one's got a purpose β it can be passed to theHVClayer to cause a tty hangup. so it's not just an error, it's a signal π₯
ok but fr fr, keep an eye on that severed-path case β it's the one with consequences, and it's meant to travel up to the HVC layer to trigger the hangup. not just a random sad number π
π¦ SEE ALSO π¦
the kernel file lives at ./drivers/tty/hvc/hvc_iucv.c and honestly the whole friend group is here, so let's give them all their moment π
hvc_iucv_get_private(9)alloc_tty_buffer(9)destroy_tty_buffer(9)destroy_tty_buffer_list(9)hvc_iucv_write(9)hvc_iucv_get_chars(9)hvc_iucv_send(9)hvc_iucv_sndbuf_work(9)hvc_iucv_put_chars(9)hvc_iucv_notifier_add(9)hvc_iucv_cleanup(9)tty_outqueue_empty(9)flush_sndbuf_sync(9)hvc_iucv_hangup(9)hvc_iucv_notifier_hangup(9)hvc_iucv_dtr_rts(9)hvc_iucv_notifier_del(9)hvc_iucv_filter_connreq(9)hvc_iucv_path_pending(9)hvc_iucv_path_severed(9)hvc_iucv_msg_pending(9)hvc_iucv_msg_complete(9)hvc_iucv_alloc(9)hvc_iucv_destroy(9)hvc_iucv_parse_filter(9)hvc_iucv_setup_filter(9)param_set_vmidfilter(9)param_get_vmidfilter(9)hvc_iucv_init(9)hvc_iucv_config(9)
and that's the whole page, bestie, no notes β¨ no skips, no summarizing, we read the WHOLE thing π
cute little sign-off: this one's from ./drivers/tty/hvc (that's the source, mwah π), dated October 2026, and it's the hvc_iucv_queue(9) page. periodt. πππ
π¦ 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