vio_h_cop_sync(9)
π« vio_h_cop_sync(9) π«
okay bestie, so this page lives in the Kernel API Manual and it's all about vio_h_cop_sync β say hi π
β¨ NAME β¨
vio_h_cop_sync β literally just perform a synchronous PFO co-processor operation. that's the whole vibe π«Ά
πΈ SYNOPSIS πΈ
int vio_h_cop_sync (struct vio_dev *vdev , struct vio_pfo_op *op );
π ARGUMENTS π
okay so the original page is a little mysterious about these two, ngl:
vdevβ undescribed π (yes, really β that's all it says here)opβ undescribed π (same energy, fr fr)
don't worry though, the description below comes in clutch and actually explains them π
π¦ DESCRIPTION π¦
let's break the params down properly, since the arguments section was being shy:
vdevβ pointer to astruct vio_devfor the deviceopβ pointer to astruct vio_pfo_opfor the operation parameters
so what does it do? it calls the hypervisor to synchronously perform the PFO operation described in op. slay β¨
now here's the part where you pay attention π β in the case of a busy response from the hypervisor, the operation will be re-submitted indefinitely unless a non-zero timeout is specified or an error occurs. like, it will just keep going, no cap π the timeout places a limit on when to stop re-submitting a operation, and heads up: the total time can be exceeded if an operation is in progress. so the timeout is a vibe check, not a hard guarantee π
also, if op->hcall_ret is not NULL, this will be set to the return from the last h_cop_op call β or it will be 0 if an error not involving the h_call was encountered. noted π«‘
π₯ RETURN π₯
here's the receipts, bestie β it returns:
0on success π-EINVALif theh_callfails due to an invalid parameter-E2BIGif theh_callcan not be performed synchronously-EBUSYif a timeout is specified and has elapsed-EACCESif the memory area for data/status has been rescinded-EPERMif a hardware fault has been indicated π
π SEE ALSO π
Kernel file ./arch/powerpc/platforms/pseries/vio.c, plus these iconic neighbours:
vio_cmo_alloc(9)vio_cmo_dealloc(9)vio_cmo_entitlement_update(9)vio_cmo_balance(9)vio_cmo_set_dev_desired(9)vio_cmo_bus_probe(9)vio_cmo_bus_remove(9)vio_cmo_bus_init(9)vio_match_device(9)vio_unregister_driver(9)vio_register_device_node(9)vio_bus_init(9)vio_get_attribute(9)vio_find_node(9)
and that's the whole page, bestie, go forth and sync your co-processor π
sign-off szn: this one's from ./arch/powerpc/platforms/pseries, dated October 2026 β 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