STRUCT ACRN_REGS(9)
π struct acrn_regs(9) π
okay so bestie, welcome to the glow-up doc for struct acrn_regs β the registers structure of a User VM β¨ (this is the Kernel API Manual babe, we're in the big leagues now π)
β¨ NAME β¨
struct acrn_regs β the registers structure of a User VM π₯οΈπ
π SYNOPSIS π
struct acrn_regs {
struct acrn_gp_regs gprs;
struct acrn_descriptor_ptr gdt;
struct acrn_descriptor_ptr idt;
__le64 rip;
__le64 cs_base;
__le64 cr0;
__le64 cr4;
__le64 cr3;
__le64 ia32_efer;
__le64 rflags;
__le64 reserved_64[4];
__le32 cs_ar;
__le32 cs_limit;
__le32 reserved_32[3];
__le16 cs_sel;
__le16 ss_sel;
__le16 ds_sel;
__le16 es_sel;
__le16 fs_sel;
__le16 gs_sel;
__le16 ldt_sel;
__le16 tr_sel;
};
ngl that's a lot of fields and every single one of them is iconic in its own way π«Ά let's go through them one by one, no skipping, we don't do that here π
πΈ Members πΈ
gprsβ the general registers, your everyday faves π«gdtβ the Global Descriptor Table, main character energy fr fridtβ the Interrupt Descriptor Table, she interrupts (respectfully) πripβ value of registerRIP, the "where are we even going" registercs_baseβ base of the code segment selector π§cr0β value of registerCR0cr4β value of registerCR4cr3β value of registerCR3, the control-register girlies are all here πia32_eferβ value of theIA32_EFERMSR β¨rflagsβ value of registerRFLAGS(yes that one, she's got flags π©)reserved_64β reserved and must be0β οΈ like, do not touch, this is not your momentcs_arβ attribute field of the code segment selectorcs_limitβ limit field of the code segment selectorreserved_32β reserved and must be0β οΈ same deal bestie, hands offcs_selβ value of the code segment selectorss_selβ value of the stack segment selector πds_selβ value of the data segment selectores_selβ value of the extra segment selectorfs_selβ value of theFSselectorgs_selβ value of theGSselectorldt_selβ value of the LDT descriptor selectortr_selβ value of the TSS descriptor selector π§
lowkey important:reserved_64andreserved_32are reserved and must be0β that's not a vibe suggestion, that's the rule π€β¨
π¦ SEE ALSO π¦
the kernel file is ./include/uapi/linux/acrn.h and honestly the whole friend group is here, go say hi π
struct acrn_mmio_request(9)struct acrn_pio_request(9)struct acrn_pci_request(9)struct acrn_io_request(9)struct acrn_ioreq_notify(9)struct acrn_vm_creation(9)struct acrn_gp_regs(9)struct acrn_descriptor_ptr(9)struct acrn_vcpu_regs(9)struct acrn_vm_memmap(9)struct acrn_ptdev_irq(9)struct acrn_pcidev(9)struct acrn_mmio_dev_res(9)struct acrn_mmiodev(9)struct acrn_vdev(9)struct acrn_msi_entry(9)struct acrn_cstate_data(9)struct acrn_pstate_data(9)struct acrn_ioeventfd(9)struct acrn_irqfd(9)
and that's the whole page bestie, you ate that π β¨
this cutie lives in ./include/uapi/linux and the version/date stamp on her is October 2026 β so yeah, she's from the future, we stan a forward-thinking icon π°οΈπ mwah, go read the kernel source π«Άπ
π¦ 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