/* SPDX-License-Identifier: GPL-2.0-only */ /* * Structures used to Store System Information * * Copyright IBM Corp. 2022 */ #ifndef _S390X_STSI_H_ #define _S390X_STSI_H_ struct sysinfo_3_2_2 { uint8_t reserved[31]; uint8_t count; struct { uint8_t reserved2[4]; uint16_t total_cpus; uint16_t conf_cpus; uint16_t standby_cpus; uint16_t reserved_cpus; uint8_t name[8]; uint32_t caf; uint8_t cpi[16]; uint8_t reserved5[3]; uint8_t ext_name_encoding; uint32_t reserved3; uint8_t uuid[16]; } vm[8]; uint8_t reserved4[1504]; uint8_t ext_names[8][256]; }; #define CPUS_TLE_RES_BITS 0x00fffffff8000000UL struct topology_core { uint8_t nl; uint8_t reserved1[3]; uint8_t reserved4:5; uint8_t d:1; uint8_t pp:2; uint8_t type; uint16_t origin; uint64_t mask; }; #define CONTAINER_TLE_RES_BITS 0x00ffffffffffff00UL struct topology_container { uint8_t nl; uint8_t reserved[6]; uint8_t id; }; union topology_entry { uint8_t nl; struct topology_core cpu; struct topology_container container; }; #define CPU_TOPOLOGY_MAX_LEVEL 6 struct sysinfo_15_1_x { uint8_t reserved0[2]; uint16_t length; uint8_t mag[CPU_TOPOLOGY_MAX_LEVEL]; uint8_t reserved0a; uint8_t mnest; uint8_t reserved0c[4]; union topology_entry tle[]; }; #endif /* _S390X_STSI_H_ */