uvio_attestation(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… uvio_attestation(9) πŸ’…

okay so bestie, welcome to the uvio_attestation(9) page from the Kernel API Manual β€” yes that's the actual manual name, we're being official today πŸŽ€ β€” and no cap, this one's kind of a baddie.


✨ NAME ✨

uvio_attestation β€” Perform a Retrieve Attestation Measurement UVC. that's it. that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

int uvio_attestation (struct uvio_ioctl_cb *uv_ioctl );

one function, one argument, very main character energy πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • uv_ioctl β€” the ioctl control block. that's your whole ticket to the party, she carries everything πŸ’…

πŸ’– DESCRIPTION πŸ’–

so uvio_attestation does a Retrieve Attestation Measurement Ultravisor Call. literally what it says on the tin, iykyk.

it verifies that the given userspace addresses are valid and request sizes are sane. and that's it for the driver's job β€” every other check is made by the Ultravisor (UV) and won't result in a negative return value. like, the driver is not the bouncer here, the UV is 🫢

the flow is: it copies the input to kernelspace, builds the request, sends the UV-call, and copies the result to userspace. slay, clean, four steps, no notes.


the Attestation Request has two input and two outputs β€” iconic symmetry fr fr:

  • ARCB and User Data are inputs for the UV, generated by userspace.
  • Measurement and Additional Data are outputs for userspace, generated by UV.

okay so what are these actually:

  • the Attestation Request Control Block (ARCB) is a cryptographically verified and secured request to UV 🌈
  • User Data is some plaintext data which is going to be included in the Attestation Measurement calculation.

and now the outputs:

  • Measurement is a cryptographic measurement of the callers properties, optional data configured by the ARCB and the user data. πŸ”₯
  • if specified by the ARCB, UV will add some Additional Data to the measurement calculation. this Additional Data is then returned as well. so you get a little bonus gift back, we love a return value that returns 🎁

πŸ’€ real talk though: if the Retrieve Attestation Measurement UV facility is not present, UV will return invalid command rc. this won't be fenced in the driver and does not result in a negative return value. so don't go checking for a negative return as your presence-detector, bestie, it's giving false confidence 😭

πŸ¦‹ CONTEXT πŸ¦‹

might sleep 😴

like, literally might sleep. plan accordingly.


⭐ RETURN ⭐

  • 0 on success 🌸
  • a negative error code on error πŸ’€

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/s390/char/uvdevice.c, plus the whole uvio girlie squad:

go read them, they ate πŸ’…


and that's the page!! shoutout to ./drivers/s390/char for hosting, October 2026 for the timestamp, and this whole manpage for being lowkey iconic. mwah πŸ§šπŸ’– no cap, go attest something.

πŸ“¦ where this page comes from