STRUCT MSHV_GPAP_ACCESS_BITMAP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct mshv_gpap_access_bitmap(9) β€” Kernel API Manual ✨

okay bestie, welcome to the struct mshv_gpap_access_bitmap(9) page πŸ’… this is the kernel API manual, and we're gonna get you so comfy with this lil struct. it's giving "small but important", fr fr 🫢


🌸 NAME 🌸

struct mshv_gpap_access_bitmap β€” the arguments you pass for MSHV_GET_GPAP_ACCESS_BITMAP ✨ like, that's literally its whole job and it ate πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

struct mshv_gpap_access_bitmap {
    __u8 access_type;
    __u8 access_op;
    __u8 rsvd[6];
    __u64 page_count;
    __u64 gpap_base;
    __u64 bitmap_ptr;
 };

look at her. iconic. no cap πŸ‘‘


πŸ¦‹ Members πŸ¦‹

okay so let's meet the cast, one field at a time πŸ’œ

  • access_type β€” MSHV_GPAP_ACCESS_TYPE_*. this tells the kernel which kind of access you want recorded in the bitmap. pick your type, bestie 🌈
  • access_op β€” MSHV_GPAP_ACCESS_OP_*. this one's the optional flex: after it retrieves all the current access states for the range, it lets you clear or set all of them. cute little bonus move ✨
  • rsvd β€” MBZ, aka "must be zero". do not touch, do not decorate, just zero it πŸ™ˆ
  • page_count β€” the number of pages. that's it, that's the field πŸ’…
  • gpap_base β€” the base gpa page number. the starting point, the main character of the address range πŸ‘‘
  • bitmap_ptr β€” the output buffer for the bitmap, and it needs to be at least (page_count + 7) / 8 bytes. do the math, give it room, let it breathe πŸ“

⭐ Description ⭐

so what does this thing actually do? it retrieves a bitmap of either the ACCESSED or the DIRTY bits β€” whichever one you asked for with access_type β€” for a given range of guest memory πŸ’– and as a lil optional treat, it can also clear or set those bits for you. obsessed 😭


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/linux/mshv.h
  • struct mshv_create_partition(9)
  • struct mshv_create_partition_v2(9)
  • struct mshv_user_mem_region(9)
  • struct mshv_root_hvcall(9)
  • struct mshv_run_vp(9)
  • struct mshv_get_set_vp_state(9)

go read those next, iykyk πŸ“šπŸ’…


and that's the whole page, bestie 🧚 this came from ./include/uapi/linux, dated October 2026, and it's filed under struct mshv_...ccess_bitmap(9) β€” periodt πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from