ZXFoundation™ 26h2
Loading...
Searching...
No Matches
diag.cxxm File Reference

idiomatic C++23 DIAG 8 hypervisor console driver. More...

Include dependency graph for diag.cxxm:

Data Structures

struct  arch::s390x::cpu::diag::diag210_t
 Parameter block for DIAG 0x210. More...

Enumerations

enum class  arch::s390x::cpu::diag::diag14_fn : u16 { read_next_buffer = 0x0000 , position_record = 0x0028 , next_file_desc = 0x0FFF }
 Spool file subcodes.
enum class  arch::s390x::cpu::diag::diag288_fn : u32 { init = 0 , change = 1 , cancel = 2 , conceal = 0x80000000 }
 Watchdog function codes.
enum class  arch::s390x::cpu::diag::diag308_fn : u64 {
  store_ipl_params = 0 , reset = 1 , clear_reset = 3 , initial_reset = 4 ,
  load_ipl_sclp = 5
}
 List-directed IPL subcodes.
enum class  arch::s390x::cpu::diag::diag64_fn : u16 {
  load = 1 , save = 2 , purge = 3 , query = 4 ,
  delete_seg = 5 , defrag = 6
}
 NSS subcodes.

Functions

auto arch::s390x::cpu::diag::diag0c (u16 cpu, void *buf, u32 len) noexcept -> condition_code
 Query CPU timing data via Pseudo Timer.
auto arch::s390x::cpu::diag::diag0dc (u32 subcode, void *buf, u32 len) noexcept -> condition_code
 Interface with the z/VM Application Data Service.
auto arch::s390x::cpu::diag::diag10 (u64 start, u64 end) noexcept -> condition_code
 Inform the hypervisor that a range of pages is no longer needed.
auto arch::s390x::cpu::diag::diag14 (diag14_fn fn, void *buf, u32 len) noexcept -> condition_code
 Interact with z/VM spool files.
auto arch::s390x::cpu::diag::diag1f () noexcept -> void
 Issue a shutdown command.
auto arch::s390x::cpu::diag::diag204 (u32 subcode, void *buf, u32 len) noexcept -> condition_code
 Query LPAR CPU utilization data.
auto arch::s390x::cpu::diag::diag210 (diag210_t &blk) noexcept -> condition_code
 Query virtual device information from z/VM.
auto arch::s390x::cpu::diag::diag224 (void *buf, u32 len) noexcept -> condition_code
 Retrieve the CPU type name table from z/VM.
auto arch::s390x::cpu::diag::diag250 (u32 fn, void *blk) noexcept -> condition_code
 Perform DASD block I/O through z/VM (DIAG250).
auto arch::s390x::cpu::diag::diag258 (bool establish, u64 token) noexcept -> condition_code
 Establish or cancel page-reference token (collaborative memory mgmt).
auto arch::s390x::cpu::diag::diag260 (void *buf, u32 len) noexcept -> condition_code
 Query machine memory layout.
auto arch::s390x::cpu::diag::diag26c (u32 subcode, void *buf) noexcept -> condition_code
 Query VNIC / MAC information from z/VM.
auto arch::s390x::cpu::diag::diag288 (diag288_fn func, u64 action, u32 timeout, u32 len) noexcept -> condition_code
 Issue DIAGNOSE 0x288 (LPAR/hypervisor watchdog).
auto arch::s390x::cpu::diag::diag2c4 (void *buf, u32 len) noexcept -> condition_code
 Interface with z/VM FTP server.
auto arch::s390x::cpu::diag::diag2fc (void *buf, u32 len) noexcept -> condition_code
 Retrieve z/VM guest performance data (hypfs).
auto arch::s390x::cpu::diag::diag304 (u32 subcode, void *buf) noexcept -> condition_code
 Set or query LPAR partition resource parameters.
auto arch::s390x::cpu::diag::diag308 (diag308_fn subcode, void *addr) noexcept -> condition_code
 Perform list-directed IPL functions.
auto arch::s390x::cpu::diag::diag310 (u32 subcode, void *buf) noexcept -> condition_code
 Query memory topology map.
auto arch::s390x::cpu::diag::diag318 (u64 cpnc, u64 cpvc) noexcept -> condition_code
 Set the CP Name Code and CP Version Code to identify the OS.
auto arch::s390x::cpu::diag::diag320 (u32 subcode, void *buf) noexcept -> condition_code
 Manage hardware certificate store.
auto arch::s390x::cpu::diag::diag324 (u32 subcode, void *buf) noexcept -> condition_code
 Read power/energy consumption data.
auto arch::s390x::cpu::diag::diag44 () noexcept -> void
 Yield the current virtual CPU's timeslice (z/VM / KVM).
auto arch::s390x::cpu::diag::diag49c (u32 subcode) noexcept -> condition_code
 Register for or acknowledge a Warning-Track Interruption.
auto arch::s390x::cpu::diag::diag500 (u64 subcode, u64 param2) noexcept -> condition_code
 KVM virtio-ccw hypercall or boot-time storage limit query.
auto arch::s390x::cpu::diag::diag64 (diag64_fn fn, const void *name, void *buf) noexcept -> condition_code
 Manipulate named saved segments (DCSS).
auto arch::s390x::cpu::diag::diag8 (const char *addr, const u64 len) noexcept -> void
 Issue DIAG 8 with a simple message (no response).
auto arch::s390x::cpu::diag::diag8_cpcmd (const char *cmd, u64 cmd_len, char *resp, u64 resp_len) noexcept -> u64
 Issue a CP command string with an optional response buffer.
auto arch::s390x::cpu::diag::diag8c (u16 devno, void *buf) noexcept -> condition_code
 Query 3270 terminal device attributes from z/VM.
auto arch::s390x::cpu::diag::diag9c (u16 cpu_addr) noexcept -> void
 Yield to a specific virtual CPU.

Variables

constexpr u64 arch::s390x::cpu::diag::CPNC_LINUX = 4
 Predefined CPNC values.
constexpr u64 arch::s390x::cpu::diag::CPVC_ZERO = 0
 CP Version Code default.
constexpr u64 arch::s390x::cpu::diag::DIAG500_SC_KVM_VIRTIO = 0
 DIAG 0x500 subcodes.
constexpr u64 arch::s390x::cpu::diag::DIAG500_SC_STOR_LIMIT = 4
 Query storage limit (boot).
constexpr u32 arch::s390x::cpu::diag::WDT_DEFAULT_TIMEOUT = 30
constexpr u32 arch::s390x::cpu::diag::WDT_MAX_TIMEOUT = 3600
constexpr u32 arch::s390x::cpu::diag::WDT_MIN_TIMEOUT = 15
constexpr u32 arch::s390x::cpu::diag::WDT_RESTART = 0
Standard diagnose instruction codes
constexpr u16 arch::s390x::cpu::diag::DIAG_3270_DISPLAY = 0x08C
 Access 3270 Display Device Info.
constexpr u16 arch::s390x::cpu::diag::DIAG_APPLDATA = 0x0DC
 Appldata Control.
constexpr u16 arch::s390x::cpu::diag::DIAG_BLOCK_IO = 0x250
 Block I/O (DASD).
constexpr u16 arch::s390x::cpu::diag::DIAG_CERT_STORE = 0x320
 Certificate Store.
constexpr u16 arch::s390x::cpu::diag::DIAG_CERTAIN_SYSINFO = 0x26C
 Certain System Information.
constexpr u16 arch::s390x::cpu::diag::DIAG_CONSOLE_FN = 0x008
 Console Function (CP cmd).
constexpr u16 arch::s390x::cpu::diag::DIAG_CP_NAME_VER = 0x318
 CP Name and Version Codes.
constexpr u16 arch::s390x::cpu::diag::DIAG_CPU_UTIL = 0x204
 Logical-CPU Utilization.
constexpr u16 arch::s390x::cpu::diag::DIAG_DEVICE_INFO = 0x210
 Device Information.
constexpr u16 arch::s390x::cpu::diag::DIAG_EBCDIC_NAME = 0x224
 EBCDIC-Name Table.
constexpr u16 arch::s390x::cpu::diag::DIAG_FTP = 0x2C4
 FTP Services.
constexpr u16 arch::s390x::cpu::diag::DIAG_GUEST_PERF = 0x2FC
 Guest Performance Data.
constexpr u16 arch::s390x::cpu::diag::DIAG_IPL = 0x308
 List-Directed IPL.
constexpr u16 arch::s390x::cpu::diag::DIAG_MEM_TOPOLOGY = 0x310
 Memory Topology Information.
constexpr u16 arch::s390x::cpu::diag::DIAG_NSS_MANIP = 0x064
 NSS/DCSS Segment Manipulation.
constexpr u16 arch::s390x::cpu::diag::DIAG_PAGE_REF = 0x258
 Page-Reference Services.
constexpr u16 arch::s390x::cpu::diag::DIAG_PART_RESOURCE = 0x304
 Partition-Resource Service.
constexpr u16 arch::s390x::cpu::diag::DIAG_POWER_INFO = 0x324
 Power Information Block.
constexpr u16 arch::s390x::cpu::diag::DIAG_PSEUDO_TIMER = 0x00C
 Pseudo Timer.
constexpr u16 arch::s390x::cpu::diag::DIAG_RELEASE_PAGES = 0x010
 Release Page Range.
constexpr u16 arch::s390x::cpu::diag::DIAG_RELINQUISH_DIR = 0x09C
 Relinquish Timeslice Directed.
constexpr u16 arch::s390x::cpu::diag::DIAG_SHUTDOWN = 0x01F
 Shutdown, onl available on 9221.
constexpr u16 arch::s390x::cpu::diag::DIAG_SPOOL_FILE = 0x014
 Spool File Services.
constexpr u16 arch::s390x::cpu::diag::DIAG_STORAGE_CFG = 0x260
 Storage Configuration.
constexpr u16 arch::s390x::cpu::diag::DIAG_TIMESLICE_END = 0x044
 Voluntary Timeslice End (yield).
constexpr u16 arch::s390x::cpu::diag::DIAG_UPDATE_IIC = 0x002
 Update Interrupt Interlock Control Bit in PMCW.
constexpr u16 arch::s390x::cpu::diag::DIAG_VIRTIO = 0x500
 Virtio Service / Storage Limit.
constexpr u16 arch::s390x::cpu::diag::DIAG_WARN_TRACK = 0x49C
 Warning-Track Interruption.
constexpr u16 arch::s390x::cpu::diag::DIAG_WATCHDOG = 0x288
 Watchdog Timer (Time Bomb).

Detailed Description

idiomatic C++23 DIAG 8 hypervisor console driver.

SPDX-License-Identifier: Apache 2.0

Variable Documentation

◆ CPNC_LINUX

u64 arch::s390x::cpu::diag::CPNC_LINUX = 4
constexprexport

Predefined CPNC values.

Linux as guest OS.

◆ DIAG500_SC_KVM_VIRTIO

u64 arch::s390x::cpu::diag::DIAG500_SC_KVM_VIRTIO = 0
constexprexport

DIAG 0x500 subcodes.

KVM virtio-ccw notification.