ccw_device_pnso(9)
π ccw_device_pnso β the Kernel API Manual glow-up
okay bestie, buckle up, because today we're learning ccw_device_pnso β which is literally "Perform Network-Subchannel Operation" and yes it's giving main character energy in the ./drivers/s390/cio cinematic universe π
β¨ SYNOPSIS β¨
int ccw_device_pnso (struct ccw_device *cdev , struct chsc_pnso_area
*pnso_area , u8 oc , struct chsc_pnso_resume_token resume_token , int
cnc );
that's the whole vibe. five params, one int coming back at you, no cap π
πΈ ARGUMENTS πΈ
cdevβ the device we're doing PNSO on. it's the device. the one. πpnso_areaβ the request and response block for the operation, so it's doing double duty (iconic, honestly) π¦ocβ the Operation Code. it's au8, so keep it smol. β¨resume_tokenβ astruct chsc_pnso_resume_token, and it's your resume token for a multiblock response. iykyk πcncβ Boolean change-notification control.int, but it's a yes/no vibe check. π
π§ DESCRIPTION π§
okay so here's the thing, and this part is not optional, bestie:
pnso_area must be allocated by the caller with
get_zeroed_page(GFP_KERNEL)
like, you allocate it. not us. not the kernel being cute for you. you. π
and then it Returns 0 on success. that's the good ending. β
π₯ SEE ALSO π₯
your group chat, but make it kernel functions β the whole squad, no one left out:
- Kernel file
./drivers/s390/cio/device_ops.cβ the source material, go read it, it ate π 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_start_timeout(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_tm_intrg(9)ccw_device_get_mdc(9),ccw_device_get_schid(9),ccw_device_get_cssid(9),ccw_device_get_iid(9),ccw_device_get_chpid(9),ccw_device_get_chid(9)
like i said. everyone. π«Ά
and that's the page!! this little beauty lives in ./drivers/s390/cio, it's dated October 2026, and it's filed under the Kernel API Manual β which is honestly the most prestigious folder to be in, periodt. go forth and PNSO responsibly πβ¨
π¦ 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