vio_h_cop_sync(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« 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 a struct vio_dev for the device
  • op β€” pointer to a struct vio_pfo_op for 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:

  • 0 on success πŸŽ‰
  • -EINVAL if the h_call fails due to an invalid parameter
  • -E2BIG if the h_call can not be performed synchronously
  • -EBUSY if a timeout is specified and has elapsed
  • -EACCES if the memory area for data/status has been rescinded
  • -EPERM if a hardware fault has been indicated πŸ’€

🌈 SEE ALSO 🌈

Kernel file ./arch/powerpc/platforms/pseries/vio.c, plus these iconic neighbours:


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