tools/arch/s390/include/uapi/asm/kvm.h
Source file repositories/reference/linux-study-clean/tools/arch/s390/include/uapi/asm/kvm.h
File Facts
- System
- Linux kernel
- Corpus path
tools/arch/s390/include/uapi/asm/kvm.h- Extension
.h- Size
- 15885 bytes
- Lines
- 623
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: implementation source
- Status
- source implementation candidate
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct kvm_s390_skeysstruct kvm_s390_cmma_logstruct kvm_s390_mem_opstruct kvm_s390_pswstruct kvm_s390_interruptstruct kvm_s390_io_infostruct kvm_s390_ext_infostruct kvm_s390_pgm_infostruct kvm_s390_prefix_infostruct kvm_s390_extcall_infostruct kvm_s390_emerg_infostruct kvm_s390_stop_infostruct kvm_s390_mchk_infostruct kvm_s390_irqstruct kvm_s390_irq_statestruct kvm_s390_ucas_mappingstruct kvm_s390_pv_sec_parmstruct kvm_s390_pv_unpstruct kvm_s390_pv_dmpstruct kvm_s390_pv_info_dumpstruct kvm_s390_pv_info_vmstruct kvm_s390_pv_info_headerstruct kvm_s390_pv_infostruct kvm_pv_cmdstruct kvm_s390_zpci_opstruct kvm_s390_io_adapterstruct kvm_s390_ais_reqstruct kvm_s390_ais_allstruct kvm_s390_io_adapter_reqstruct kvm_s390_vm_tod_clockstruct kvm_s390_vm_cpu_processorstruct kvm_s390_vm_cpu_machinestruct kvm_s390_vm_cpu_featstruct kvm_s390_vm_cpu_subfuncstruct kvm_s390_vm_cpu_uv_featstruct kvm_regsstruct kvm_sregsstruct kvm_fpustruct kvm_debug_exit_archstruct kvm_hw_breakpointstruct kvm_guest_debug_archstruct kvm_sync_regsenum pv_cmd_dmp_idenum pv_cmd_info_idenum pv_cmd_id
Annotated Snippet
struct kvm_s390_skeys {
__u64 start_gfn;
__u64 count;
__u64 skeydata_addr;
__u32 flags;
__u32 reserved[9];
};
#define KVM_S390_CMMA_PEEK (1 << 0)
/**
* kvm_s390_cmma_log - Used for CMMA migration.
*
* Used both for input and output.
*
* @start_gfn: Guest page number to start from.
* @count: Size of the result buffer.
* @flags: Control operation mode via KVM_S390_CMMA_* flags
* @remaining: Used with KVM_S390_GET_CMMA_BITS. Indicates how many dirty
* pages are still remaining.
* @mask: Used with KVM_S390_SET_CMMA_BITS. Bitmap of bits to actually set
* in the PGSTE.
* @values: Pointer to the values buffer.
*
* Used in KVM_S390_{G,S}ET_CMMA_BITS ioctls.
*/
struct kvm_s390_cmma_log {
__u64 start_gfn;
__u32 count;
__u32 flags;
union {
__u64 remaining;
__u64 mask;
};
__u64 values;
};
#define KVM_S390_RESET_POR 1
#define KVM_S390_RESET_CLEAR 2
#define KVM_S390_RESET_SUBSYSTEM 4
#define KVM_S390_RESET_CPU_INIT 8
#define KVM_S390_RESET_IPL 16
/* for KVM_S390_MEM_OP */
struct kvm_s390_mem_op {
/* in */
__u64 gaddr; /* the guest address */
__u64 flags; /* flags */
__u32 size; /* amount of bytes */
__u32 op; /* type of operation */
__u64 buf; /* buffer in userspace */
union {
struct {
__u8 ar; /* the access register number */
__u8 key; /* access key, ignored if flag unset */
__u8 pad1[6]; /* ignored */
__u64 old_addr; /* ignored if cmpxchg flag unset */
};
__u32 sida_offset; /* offset into the sida */
__u8 reserved[32]; /* ignored */
};
};
/* types for kvm_s390_mem_op->op */
#define KVM_S390_MEMOP_LOGICAL_READ 0
#define KVM_S390_MEMOP_LOGICAL_WRITE 1
#define KVM_S390_MEMOP_SIDA_READ 2
#define KVM_S390_MEMOP_SIDA_WRITE 3
#define KVM_S390_MEMOP_ABSOLUTE_READ 4
#define KVM_S390_MEMOP_ABSOLUTE_WRITE 5
#define KVM_S390_MEMOP_ABSOLUTE_CMPXCHG 6
/* flags for kvm_s390_mem_op->flags */
#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
#define KVM_S390_MEMOP_F_SKEY_PROTECTION (1ULL << 2)
/* flags specifying extension support via KVM_CAP_S390_MEM_OP_EXTENSION */
#define KVM_S390_MEMOP_EXTENSION_CAP_BASE (1 << 0)
#define KVM_S390_MEMOP_EXTENSION_CAP_CMPXCHG (1 << 1)
struct kvm_s390_psw {
__u64 mask;
__u64 addr;
};
/* valid values for type in kvm_s390_interrupt */
#define KVM_S390_SIGP_STOP 0xfffe0000u
#define KVM_S390_PROGRAM_INT 0xfffe0001u
#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
#define KVM_S390_RESTART 0xfffe0003u
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct kvm_s390_skeys`, `struct kvm_s390_cmma_log`, `struct kvm_s390_mem_op`, `struct kvm_s390_psw`, `struct kvm_s390_interrupt`, `struct kvm_s390_io_info`, `struct kvm_s390_ext_info`, `struct kvm_s390_pgm_info`, `struct kvm_s390_prefix_info`, `struct kvm_s390_extcall_info`.
- Atlas domain: Support Tooling And Documentation / tools.
- 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.