include/uapi/linux/vbox_vmmdev_types.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/vbox_vmmdev_types.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/vbox_vmmdev_types.h- Extension
.h- Size
- 11706 bytes
- Lines
- 293
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/bitsperlong.hlinux/types.h
Detected Declarations
struct vmmdev_hgcm_service_location_localhoststruct vmmdev_hgcm_service_locationstruct vmmdev_hgcm_function_parameter32struct vmmdev_hgcm_function_parameter64struct vmmdev_hgcm_pagelistenum vmmdev_request_typeenum vmmdev_hgcm_service_location_typeenum vmmdev_hgcm_function_parameter_type
Annotated Snippet
struct vmmdev_hgcm_service_location_localhost {
/** Service name */
char service_name[128];
};
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_service_location_localhost, 128);
/** HGCM service location. */
struct vmmdev_hgcm_service_location {
/** Type of the location. */
enum vmmdev_hgcm_service_location_type type;
union {
struct vmmdev_hgcm_service_location_localhost localhost;
} u;
};
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_service_location, 128 + 4);
/** HGCM function parameter type. */
enum vmmdev_hgcm_function_parameter_type {
VMMDEV_HGCM_PARM_TYPE_INVALID = 0,
VMMDEV_HGCM_PARM_TYPE_32BIT = 1,
VMMDEV_HGCM_PARM_TYPE_64BIT = 2,
/** Deprecated Doesn't work, use PAGELIST. */
VMMDEV_HGCM_PARM_TYPE_PHYSADDR = 3,
/** In and Out, user-memory */
VMMDEV_HGCM_PARM_TYPE_LINADDR = 4,
/** In, user-memory (read; host<-guest) */
VMMDEV_HGCM_PARM_TYPE_LINADDR_IN = 5,
/** Out, user-memory (write; host->guest) */
VMMDEV_HGCM_PARM_TYPE_LINADDR_OUT = 6,
/** In and Out, kernel-memory */
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL = 7,
/** In, kernel-memory (read; host<-guest) */
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_IN = 8,
/** Out, kernel-memory (write; host->guest) */
VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_OUT = 9,
/** Physical addresses of locked pages for a buffer. */
VMMDEV_HGCM_PARM_TYPE_PAGELIST = 10,
/* Ensure the enum is a 32 bit data-type */
VMMDEV_HGCM_PARM_TYPE_SIZEHACK = 0x7fffffff
};
/** HGCM function parameter, 32-bit client. */
struct vmmdev_hgcm_function_parameter32 {
enum vmmdev_hgcm_function_parameter_type type;
union {
__u32 value32;
__u64 value64;
struct {
__u32 size;
union {
__u32 phys_addr;
__u32 linear_addr;
} u;
} pointer;
struct {
/** Size of the buffer described by the page list. */
__u32 size;
/** Relative to the request header. */
__u32 offset;
} page_list;
} __packed u;
} __packed;
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_function_parameter32, 4 + 8);
/** HGCM function parameter, 64-bit client. */
struct vmmdev_hgcm_function_parameter64 {
enum vmmdev_hgcm_function_parameter_type type;
union {
__u32 value32;
__u64 value64;
struct {
__u32 size;
union {
__u64 phys_addr;
__u64 linear_addr;
} __packed u;
} __packed pointer;
struct {
/** Size of the buffer described by the page list. */
__u32 size;
/** Relative to the request header. */
__u32 offset;
} page_list;
} __packed u;
} __packed;
VMMDEV_ASSERT_SIZE(vmmdev_hgcm_function_parameter64, 4 + 12);
#if __BITS_PER_LONG == 64
#define vmmdev_hgcm_function_parameter vmmdev_hgcm_function_parameter64
Annotation
- Immediate include surface: `asm/bitsperlong.h`, `linux/types.h`.
- Detected declarations: `struct vmmdev_hgcm_service_location_localhost`, `struct vmmdev_hgcm_service_location`, `struct vmmdev_hgcm_function_parameter32`, `struct vmmdev_hgcm_function_parameter64`, `struct vmmdev_hgcm_pagelist`, `enum vmmdev_request_type`, `enum vmmdev_hgcm_service_location_type`, `enum vmmdev_hgcm_function_parameter_type`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.