1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * s390x processor specific defines
4 */
5#ifndef SELFTEST_KVM_PROCESSOR_H
6#define SELFTEST_KVM_PROCESSOR_H
7
8#include <linux/compiler.h>
9
10/* Bits in the region/segment table entry */
11#define REGION_ENTRY_ORIGIN	~0xfffUL /* region/segment table origin	   */
12#define REGION_ENTRY_PROTECT	0x200	 /* region protection bit	   */
13#define REGION_ENTRY_NOEXEC	0x100	 /* region no-execute bit	   */
14#define REGION_ENTRY_OFFSET	0xc0	 /* region table offset		   */
15#define REGION_ENTRY_INVALID	0x20	 /* invalid region table entry	   */
16#define REGION_ENTRY_TYPE	0x0c	 /* region/segment table type mask */
17#define REGION_ENTRY_LENGTH	0x03	 /* region third length		   */
18
19/* Bits in the page table entry */
20#define PAGE_INVALID	0x400		/* HW invalid bit    */
21#define PAGE_PROTECT	0x200		/* HW read-only bit  */
22#define PAGE_NOEXEC	0x100		/* HW no-execute bit */
23
24/* Is there a portable way to do this? */
25static inline void cpu_relax(void)
26{
27	barrier();
28}
29
30#endif
31