include/uapi/xen/privcmd.h
Source file repositories/reference/linux-study-clean/include/uapi/xen/privcmd.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/xen/privcmd.h- Extension
.h- Size
- 5074 bytes
- Lines
- 169
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/compiler.hxen/interface/xen.h
Detected Declarations
struct privcmd_hypercallstruct privcmd_mmap_entrystruct privcmd_mmapstruct privcmd_mmapbatchstruct privcmd_mmapbatch_v2struct privcmd_dm_op_bufstruct privcmd_dm_opstruct privcmd_mmap_resourcestruct privcmd_irqfdstruct privcmd_ioeventfdstruct privcmd_pcidev_get_gsi
Annotated Snippet
struct privcmd_hypercall {
__u64 op;
__u64 arg[5];
};
struct privcmd_mmap_entry {
__u64 va;
/*
* This should be a GFN. It's not possible to change the name because
* it's exposed to the user-space.
*/
__u64 mfn;
__u64 npages;
};
struct privcmd_mmap {
int num;
domid_t dom; /* target domain */
struct privcmd_mmap_entry __user *entry;
};
struct privcmd_mmapbatch {
int num; /* number of pages to populate */
domid_t dom; /* target domain */
__u64 addr; /* virtual address */
xen_pfn_t __user *arr; /* array of mfns - or'd with
PRIVCMD_MMAPBATCH_*_ERROR on err */
};
#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
#define PRIVCMD_MMAPBATCH_PAGED_ERROR 0x80000000U
struct privcmd_mmapbatch_v2 {
unsigned int num; /* number of pages to populate */
domid_t dom; /* target domain */
__u64 addr; /* virtual address */
const xen_pfn_t __user *arr; /* array of mfns */
int __user *err; /* array of error codes */
};
struct privcmd_dm_op_buf {
void __user *uptr;
size_t size;
};
struct privcmd_dm_op {
domid_t dom;
__u16 num;
const struct privcmd_dm_op_buf __user *ubufs;
};
struct privcmd_mmap_resource {
domid_t dom;
__u32 type;
__u32 id;
__u32 idx;
__u64 num;
__u64 addr;
};
/* For privcmd_irqfd::flags */
#define PRIVCMD_IRQFD_FLAG_DEASSIGN (1 << 0)
struct privcmd_irqfd {
__u64 dm_op;
__u32 size; /* Size of structure pointed by dm_op */
__u32 fd;
__u32 flags;
domid_t dom;
__u8 pad[2];
};
/* For privcmd_ioeventfd::flags */
#define PRIVCMD_IOEVENTFD_FLAG_DEASSIGN (1 << 0)
struct privcmd_ioeventfd {
__u64 ioreq;
__u64 ports;
__u64 addr;
__u32 addr_len;
__u32 event_fd;
__u32 vcpus;
__u32 vq;
__u32 flags;
domid_t dom;
__u8 pad[2];
};
struct privcmd_pcidev_get_gsi {
__u32 sbdf;
Annotation
- Immediate include surface: `linux/types.h`, `linux/compiler.h`, `xen/interface/xen.h`.
- Detected declarations: `struct privcmd_hypercall`, `struct privcmd_mmap_entry`, `struct privcmd_mmap`, `struct privcmd_mmapbatch`, `struct privcmd_mmapbatch_v2`, `struct privcmd_dm_op_buf`, `struct privcmd_dm_op`, `struct privcmd_mmap_resource`, `struct privcmd_irqfd`, `struct privcmd_ioeventfd`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.