STRUCT TEE_IOCTL_VERSION_DATA(9)
π NAME π
struct tee_ioctl_version_data β literally the TEE version, bestie, that's the whole vibe β¨
so this is a page from the Kernel API Manual, and it's all about introducing you to
struct tee_ioctl_version_data
which is the little struct that tells you what TEE you're talking to π«Ά
π¦ SYNOPSIS π¦
okay so here's the shape of it, no cap, copy it exactly:
struct tee_ioctl_version_data {
__u32 impl_id;
__u32 impl_caps;
__u32 gen_caps;
};
three __u32 fields, that's it, that's the whole queen π
πΈ MEMBERS πΈ
every field has main character energy and every single one is an [out] (so the kernel is handing you the tea, you're not giving it anything back):
impl_idβ[out]the TEE implementation id π like, which TEE is thisimpl_capsβ[out]the capabilities that are specific to that particular implementation β¨gen_capsβ[out]the generic capabilities, and these ones are defined byTEE_GEN_CAPS_*above π (iykyk, go look up above)
π DESCRIPTION π
so what does this struct actually do? it identifies the TEE implementation, periodt. π
impl_id is one of the TEE_IMPL_ID_* values from above β that's the field that tells you which implementation you're dealing with π
and impl_caps? that one is implementation specific, fr fr. the example they give is that TEE_OPTEE_CAP_* is valid when impl_id == TEE_IMPL_ID_OPTEE π§ so like, the caps only make sense once you know which implementation you've got. vibe check passed β
ok but genuinely β don't readimpl_capsbefore you've checkedimpl_id, that's the whole point of the example bestie π
π¦ SEE ALSO π¦
the whole friend group, gathered for you π:
- Kernel file
./include/uapi/linux/tee.hβ the mothership π TEE_IOC_VERSION(9)struct tee_ioctl_shm_alloc_data(9)TEE_IOC_SHM_ALLOC(9)struct tee_ioctl_buf_data(9)struct tee_ioctl_param(9)struct tee_ioctl_open_session_arg(9)TEE_IOC_OPEN_SESSION(9)struct tee_ioctl_invoke_arg(9)TEE_IOC_INVOKE(9)struct tee_ioctl_cancel_arg(9)TEE_IOC_CANCEL(9)struct tee_ioctl_close_session_arg(9)TEE_IOC_CLOSE_SESSION(9)struct tee_iocl_supp_recv_arg(9)TEE_IOC_SUPPL_RECV(9)struct tee_iocl_supp_send_arg(9)TEE_IOC_SUPPL_SEND(9)struct tee_ioctl_shm_register_data(9)struct tee_ioctl_shm_register_fd_data(9)TEE_IOC_SHM_REGISTER_FD(9)TEE_IOC_SHM_REGISTER(9)struct tee_ioctl_object_invoke_arg(9)
and that's the page!! π«Ά this one lives over in ./include/uapi/linux and it's stamped October 2026 β yes, the future, she's ahead of her time β go read the source bestie, mwah ππ
π¦ 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