STRUCT OPTEE_MSG_PARAM_FMEM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct optee_msg_param_fmem(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” yes we're literally in the kernel manuals now, look at us πŸ‘‘ β€” and today's main character is struct optee_msg_param_fmem, aka the FF-A memory reference parameter. That's the whole NAME section, slay, let's get into it ✨


🌸 SYNOPSIS 🌸

struct optee_msg_param_fmem {
    u32 offs_low;
    u16 offs_high;
    u16 internal_offs;
    u64 size;
    u64 global_id;
};

that's the whole struct, no cap. five fields, all of them matter, keep scrolling 🫢


πŸŽ€ MEMBERS πŸŽ€

  • offs_low β€” the lower bits of the offset into the shared memory reference. baby bits of the offset, but they still count πŸ’…
  • offs_high β€” the higher bits of the offset into that shared memory reference. the upper-half bestie to offs_low, they literally come as a pair πŸ¦‹
  • internal_offs β€” offset into the first 4 KiB page of the FF-A shared memory region. yes, 4 KiB, that one. not the whole region, just that first page ✨
  • size β€” size of the buffer. the vibe check of how much we're working with πŸ“
  • global_id β€” global identifier of the shared memory. its government name, its passport, its whole identity 🌈

πŸ”₯ SEE ALSO πŸ”₯

  • the kernel file ./drivers/tee/optee/optee_msg.h β€” go read the source, it's giving lore πŸ’€
  • struct optee_msg_param_tmem(9)
  • struct optee_msg_param_rmem(9)
  • struct optee_msg_param_value(9)
  • struct optee_msg_param(9)
  • struct optee_msg_arg(9)
  • OPTEE_MSG_GET_ARG_SIZE(9)

the whole friend group honestly, collect them all like stickers πŸ“


ngl this page is short and sweet β€” but every field above is load-bearing, so don't go skipping any of them πŸ™ˆ

and that's the tea, bestie! this one came out of ./drivers/tee/optee in the October 2026 drop of the Kernel API Manual β€” go forth and reference your FF-A shared memory correctly πŸ’œπŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from