arch/s390/include/asm/uv.h
Source file repositories/reference/linux-study-clean/arch/s390/include/asm/uv.h
File Facts
- System
- Linux kernel
- Corpus path
arch/s390/include/asm/uv.h- Extension
.h- Size
- 16561 bytes
- Lines
- 642
- Domain
- Architecture Layer
- Bucket
- arch/s390
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/errno.hlinux/bug.hlinux/sched.hasm/page.hasm/asm.h
Detected Declarations
struct uv_cb_headerstruct uv_cb_quistruct uv_key_hashstruct uv_cb_query_keysstruct uv_cb_initstruct uv_cb_cgcstruct uv_cb_cscstruct uv_cb_ctsstruct uv_cb_cfsstruct uv_cb_sscstruct uv_cb_unpstruct uv_cb_cpu_set_statestruct uv_cb_nodatastruct uv_cb_destroy_faststruct uv_cb_sharestruct uv_cb_atteststruct uv_cb_dump_cpustruct uv_cb_dump_stor_statestruct uv_cb_dump_completestruct uv_cb_guest_addrstruct uv_cb_retr_secrstruct uv_cb_list_secretsstruct uv_secret_list_item_hdrstruct uv_secret_list_itemstruct uv_secret_liststruct uv_infoenum uv_cmds_instenum uv_feat_indenum uv_secret_typesfunction __uv_callfunction uv_callfunction uv_call_schedfunction uv_cmd_nodatafunction uv_list_secretsfunction uv_has_featurefunction is_prot_virt_guestfunction sharefunction uv_set_sharedfunction uv_remove_sharedfunction is_prot_virt_host
Annotated Snippet
struct uv_cb_header {
u16 len;
u16 cmd; /* Command Code */
u16 rc; /* Response Code */
u16 rrc; /* Return Reason Code */
} __packed __aligned(8);
/* Query Ultravisor Information */
struct uv_cb_qui {
struct uv_cb_header header; /* 0x0000 */
u64 reserved08; /* 0x0008 */
u64 inst_calls_list[4]; /* 0x0010 */
u64 reserved30[2]; /* 0x0030 */
u64 uv_base_stor_len; /* 0x0040 */
u64 reserved48; /* 0x0048 */
u64 conf_base_phys_stor_len; /* 0x0050 */
u64 conf_base_virt_stor_len; /* 0x0058 */
u64 conf_virt_var_stor_len; /* 0x0060 */
u64 cpu_stor_len; /* 0x0068 */
u32 reserved70[3]; /* 0x0070 */
u32 max_num_sec_conf; /* 0x007c */
u64 max_guest_stor_addr; /* 0x0080 */
u8 reserved88[0x9e - 0x88]; /* 0x0088 */
u16 max_guest_cpu_id; /* 0x009e */
u64 uv_feature_indications; /* 0x00a0 */
u64 reserveda8; /* 0x00a8 */
u64 supp_se_hdr_versions; /* 0x00b0 */
u64 supp_se_hdr_pcf; /* 0x00b8 */
u64 reservedc0; /* 0x00c0 */
u64 conf_dump_storage_state_len; /* 0x00c8 */
u64 conf_dump_finalize_len; /* 0x00d0 */
u64 reservedd8; /* 0x00d8 */
u64 supp_att_req_hdr_ver; /* 0x00e0 */
u64 supp_att_pflags; /* 0x00e8 */
u64 reservedf0; /* 0x00f0 */
u64 supp_add_secret_req_ver; /* 0x00f8 */
u64 supp_add_secret_pcf; /* 0x0100 */
u64 supp_secret_types; /* 0x0108 */
u16 max_assoc_secrets; /* 0x0110 */
u16 max_retr_secrets; /* 0x0112 */
u8 reserved114[0x120 - 0x114]; /* 0x0114 */
} __packed __aligned(8);
struct uv_key_hash {
u64 dword[4];
} __packed __aligned(8);
#define UVC_QUERY_KEYS_IDX_HK 0
#define UVC_QUERY_KEYS_IDX_BACK_HK 1
/* Query Ultravisor Keys */
struct uv_cb_query_keys {
struct uv_cb_header header; /* 0x0000 */
u64 reserved08[3]; /* 0x0008 */
struct uv_key_hash key_hashes[15]; /* 0x0020 */
} __packed __aligned(8);
static_assert(sizeof(struct uv_cb_query_keys) == 0x200);
/* Initialize Ultravisor */
struct uv_cb_init {
struct uv_cb_header header;
u64 reserved08[2];
u64 stor_origin;
u64 stor_len;
u64 reserved28[4];
} __packed __aligned(8);
/* Create Guest Configuration */
struct uv_cb_cgc {
struct uv_cb_header header;
u64 reserved08[2];
u64 guest_handle;
u64 conf_base_stor_origin;
u64 conf_virt_stor_origin;
u8 reserved30[6];
union {
struct {
u16 : 14;
u16 ap_instr_intr : 1;
u16 ap_allow_instr : 1;
};
u16 raw;
} flags;
u64 guest_stor_origin;
u64 guest_stor_len;
u64 guest_sca;
u64 guest_asce;
u64 reserved58[5];
} __packed __aligned(8);
Annotation
- Immediate include surface: `linux/types.h`, `linux/errno.h`, `linux/bug.h`, `linux/sched.h`, `asm/page.h`, `asm/asm.h`.
- Detected declarations: `struct uv_cb_header`, `struct uv_cb_qui`, `struct uv_key_hash`, `struct uv_cb_query_keys`, `struct uv_cb_init`, `struct uv_cb_cgc`, `struct uv_cb_csc`, `struct uv_cb_cts`, `struct uv_cb_cfs`, `struct uv_cb_ssc`.
- Atlas domain: Architecture Layer / arch/s390.
- 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.