include/xen/interface/io/pvcalls.h
Source file repositories/reference/linux-study-clean/include/xen/interface/io/pvcalls.h
File Facts
- System
- Linux kernel
- Corpus path
include/xen/interface/io/pvcalls.h- Extension
.h- Size
- 3149 bytes
- Lines
- 124
- 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/net.hxen/interface/io/ring.hxen/interface/grant_table.h
Detected Declarations
struct pvcalls_data_intfstruct xen_pvcalls_requeststruct xen_pvcalls_socketstruct xen_pvcalls_connectstruct xen_pvcalls_releasestruct xen_pvcalls_bindstruct xen_pvcalls_listenstruct xen_pvcalls_acceptstruct xen_pvcalls_pollstruct xen_pvcalls_dummystruct xen_pvcalls_responsestruct _xen_pvcalls_socketstruct _xen_pvcalls_connectstruct _xen_pvcalls_releasestruct _xen_pvcalls_bindstruct _xen_pvcalls_listenstruct _xen_pvcalls_acceptstruct _xen_pvcalls_pollstruct _xen_pvcalls_dummy
Annotated Snippet
struct pvcalls_data_intf {
RING_IDX in_cons, in_prod, in_error;
uint8_t pad1[52];
RING_IDX out_cons, out_prod, out_error;
uint8_t pad2[52];
RING_IDX ring_order;
grant_ref_t ref[];
};
DEFINE_XEN_FLEX_RING(pvcalls);
#define PVCALLS_SOCKET 0
#define PVCALLS_CONNECT 1
#define PVCALLS_RELEASE 2
#define PVCALLS_BIND 3
#define PVCALLS_LISTEN 4
#define PVCALLS_ACCEPT 5
#define PVCALLS_POLL 6
struct xen_pvcalls_request {
uint32_t req_id; /* private to guest, echoed in response */
uint32_t cmd; /* command to execute */
union {
struct xen_pvcalls_socket {
uint64_t id;
uint32_t domain;
uint32_t type;
uint32_t protocol;
} socket;
struct xen_pvcalls_connect {
uint64_t id;
uint8_t addr[28];
uint32_t len;
uint32_t flags;
grant_ref_t ref;
uint32_t evtchn;
} connect;
struct xen_pvcalls_release {
uint64_t id;
uint8_t reuse;
} release;
struct xen_pvcalls_bind {
uint64_t id;
uint8_t addr[28];
uint32_t len;
} bind;
struct xen_pvcalls_listen {
uint64_t id;
uint32_t backlog;
} listen;
struct xen_pvcalls_accept {
uint64_t id;
uint64_t id_new;
grant_ref_t ref;
uint32_t evtchn;
} accept;
struct xen_pvcalls_poll {
uint64_t id;
} poll;
/* dummy member to force sizeof(struct xen_pvcalls_request)
* to match across archs */
struct xen_pvcalls_dummy {
uint8_t dummy[56];
} dummy;
} u;
};
struct xen_pvcalls_response {
uint32_t req_id;
uint32_t cmd;
int32_t ret;
uint32_t pad;
union {
struct _xen_pvcalls_socket {
uint64_t id;
} socket;
struct _xen_pvcalls_connect {
uint64_t id;
} connect;
struct _xen_pvcalls_release {
uint64_t id;
} release;
struct _xen_pvcalls_bind {
uint64_t id;
} bind;
struct _xen_pvcalls_listen {
uint64_t id;
Annotation
- Immediate include surface: `linux/net.h`, `xen/interface/io/ring.h`, `xen/interface/grant_table.h`.
- Detected declarations: `struct pvcalls_data_intf`, `struct xen_pvcalls_request`, `struct xen_pvcalls_socket`, `struct xen_pvcalls_connect`, `struct xen_pvcalls_release`, `struct xen_pvcalls_bind`, `struct xen_pvcalls_listen`, `struct xen_pvcalls_accept`, `struct xen_pvcalls_poll`, `struct xen_pvcalls_dummy`.
- 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.