1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Copyright (C) 2021 SUSE LLC <mdoucha@suse.cz>
4 *
5 * Common definitions for communication between KVM guest and host.
6 */
7
8#ifndef KVM_COMMON_H_
9#define KVM_COMMON_H_
10
11#define KVM_TNONE	-1	/* "No result" status value */
12
13/*
14 * Result value for asynchronous notifications between guest and host.
15 * Do not use this value directly. Call tst_signal_host() or tst_wait_host()
16 * in guest code. The notification must be handled by another host thread
17 * and then the result value must be reset to KVM_TNONE.
18 */
19#define KVM_TSYNC	0xfe
20
21/*
22 * Result value indicating end of test. If the test program exits using
23 * the HLT instruction with any valid result value other than KVM_TEXIT or
24 * TBROK, KVM runner will automatically resume VM execution after printing
25 * the message.
26 */
27#define KVM_TEXIT	0xff
28
29#define KVM_RESULT_BASEADDR 0xfffff000
30#define KVM_RESULT_SIZE 0x1000
31
32struct tst_kvm_result {
33	int32_t result;
34	int32_t lineno;
35	uint64_t file_addr;
36	char message[0];
37};
38
39#endif /* KVM_COMMON_H_ */
40