ccw_device_start_timeout(9)
β¨ ccw_device_start_timeout(9) β¨
okay so bestie, welcome to the Kernel API Manual π this one lives in the s390 corner of the kernel and it's literally the girlboss that kicks off a channel program and sets a timer on it. no cap, she does both. π
πΈ NAME πΈ
ccw_device_start_timeout β start a s390 channel program with timeout
π¦ SYNOPSIS π¦
int ccw_device_start_timeout (struct ccw_device *cdev , struct ccw1 *cpa
, unsigned long intparm , __u8 lpm , unsigned long flags , int expires
);
π ARGUMENTS π
cdevβ the target ccw device, aka the one we're doing all this for π«Άcpaβ logical start address of the channel programintparmβ a user specific interruption parameter; it gets presented back tocdev's interrupt handler. it's giving "let a device driver associate the interrupt with a particular I/O request" energy, and honestly? iconic.lpmβ defines the channel path to be used for a specific I/O request. set it to0and cio will just use theopminstead, easy β¨flagsβ additional flags; defines the action to be performed for I/O processingexpiresβ timeout value in jiffies β°
π₯ DESCRIPTION π₯
Start a S/390 channel program. that's the whole vibe.
When the interrupt arrives, the IRQ handler is called β and the way it shows up can be immediately, delayed (dev-end missing, or sense required), or never (no IRQ handler registered). three whole moods, we love range π
This function notifies the device driver if the channel program has not completed during the time specified by expires. so if it's running late (rude), you will hear about it.
If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-ETIMEDOUT). π yeah, it's that kind of party.
The interruption handler will echo back the intparm specified here β unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt or ccw_device_clear. so like, don't be surprised if someone else changed the vibe check in the meantime π
β RETURN β
0β if the operation was successful π-EBUSYβ if the device is busy, or status pending-EACCESβ if no path specified inlpmis operational-ENODEVβ if the device is not operational π
π CONTEXT π
Interrupts disabled, ccw device lock held. yes bestie, you gotta be holding the lock β no exceptions, periodt.
π SEE ALSO π
Kernel file ./drivers/s390/cio/device_ops.c
then the whole friend group, fr fr:
ccw_device_set_options_mask(9), ccw_device_set_options(9), ccw_device_clear_options(9), ccw_device_is_pathgroup(9), ccw_device_is_multipath(9), ccw_device_clear(9), ccw_device_start_timeout_key(9), ccw_device_start_key(9), ccw_device_start(9), ccw_device_halt(9), ccw_device_resume(9), ccw_device_get_ciw(9), ccw_device_get_path_mask(9), ccw_device_get_chp_desc(9), ccw_device_get_util_str(9), ccw_device_get_id(9), ccw_device_tm_start_timeout_key(9), ccw_device_tm_start_key(9), ccw_device_tm_start(9), ccw_device_tm_start_timeout(9), ccw_device_get_mdc(9), ccw_device_tm_intrg(9), ccw_device_get_schid(9), ccw_device_pnso(9), ccw_device_get_cssid(9), ccw_device_get_iid(9), ccw_device_get_chpid(9), ccw_device_get_chid(9)
okay that's the whole page, you ate that π mwah π
β¨ cute sign-off β¨ this beauty comes from./drivers/s390/cioand it's dated October 2026. go forth and start your channel programs, bestie, but mind theexpiresπ§
π¦ 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