/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Functions to retrieve information about the host system. * * Copyright (c) 2020 Red Hat Inc * Copyright 2022 IBM Corp. * * Authors: * Claudio Imbrenda */ #ifndef _S390X_HARDWARE_H_ #define _S390X_HARDWARE_H_ #include #define MACHINE_Z15 0x8561 #define MACHINE_Z15T02 0x8562 enum s390_host { HOST_IS_UNKNOWN, HOST_IS_LPAR, HOST_IS_KVM, HOST_IS_TCG }; enum s390_host detect_host(void); static inline uint16_t get_machine_id(void) { return stidp() >> 16; } static inline bool host_is_tcg(void) { return detect_host() == HOST_IS_TCG; } static inline bool host_is_kvm(void) { return detect_host() == HOST_IS_KVM; } static inline bool host_is_lpar(void) { return detect_host() == HOST_IS_LPAR; } static inline bool host_is_qemu(void) { return host_is_tcg() || host_is_kvm(); } static inline bool machine_is_z15(void) { uint16_t machine = get_machine_id(); return machine == MACHINE_Z15 || machine == MACHINE_Z15T02; } #endif /* _S390X_HARDWARE_H_ */