STRUCT FSL_HV_IOCTL_MEMCPY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 STRUCT FSL_HV_IOCTL_MEMCPY πŸ’…

okay bestie, so this is a page out of the Kernel API Manual and it's literally the struct that lets one partition copy memory into another partition 🫢 β€” like, hypervisor-mediated memory sharing, main character energy fr fr.

✨ NAME ✨

struct fsl_hv_ioctl_memcpy β€” copy memory between partitions πŸŽ€

⭐ SYNOPSIS ⭐

struct fsl_hv_ioctl_memcpy {
    __u32 ret;
    __u32 source;
    __u32 target;
    __u32 reserved;
    __u64 local_vaddr;
    __u64 remote_paddr;
    __u64 count;
 };

no cap, that's the whole struct. every field exact, don't @ me πŸ’œ

πŸ¦‹ MEMBERS πŸ¦‹

okay so let's meet the cast, one field at a time:

  • ret β€” the return error code from the hypervisor. this is where the hypervisor tells you how it went πŸ’«
  • source β€” the partition ID of the source partition, or -1 for this partition 🌸
  • target β€” the partition ID of the target partition, or -1 for this partition 🌈
  • reserved β€” reserved, must be set to 0. like, actually set it to 0, okay? πŸ™ˆ
  • local_vaddr β€” user-space virtual address of a buffer in the local partition πŸŽ€
  • remote_paddr β€” guest physical address of a buffer in the remote partition ✨
  • count β€” the number of bytes to copy. Both the local and remote buffers must be at least count bytes long πŸ‘‘

πŸ’– DESCRIPTION πŸ’–

Used by FSL_HV_IOCTL_MEMCPY. that's the ioctl, that's the whole vibe 🧚

The local partition is the partition that calls this ioctl. The the source paritition' to the target partition. (yeah, the original page is literally garbled right there 😭 β€” I'm keeping it exactly as-is so you don't think I made it up, but the gist is a copy that goes from source to target πŸ’…)

The buffer in the remote partition must be guest physically contiguous. no pressure, just a hard requirement 🫢

This ioctl does not support copying memory between two remote partitions or within the same partition, so either source or

lowkey the sentence above just... ends. that's it. that's the whole line in the original. πŸ’€

and then the rule itself, spelled out:

source == local and target == remote or source == remote and target == local

so basically: one side is local, the other is remote, no other combos, periodt πŸ”₯

🌟 SEE ALSO 🌟

  • Kernel file ./include/uapi/linux/fsl_hypervisor.h struct fsl_hv_ioctl_restart(9)
  • struct fsl_hv_ioctl_status(9)
  • struct fsl_hv_ioctl_start(9)
  • struct fsl_hv_ioctl_stop(9)
  • struct fsl_hv_ioctl_doorbell(9)
  • struct fsl_hv_ioctl_prop(9)

okay that's the whole page, bestie, you ate that πŸ“ and the cute little sign-off: this one lives under ./include/uapi/linux and it's dated October 2026 β€” go forth and copy memory responsibly πŸ’œπŸ’…πŸŽ€

πŸ“¦ where this page comes from