xref: /kvm-unit-tests/lib/s390x/asm/page.h (revision c08c320b20287d54c7699a8494619e450b0397b2)
139343080SDavid Hildenbrand /*
239343080SDavid Hildenbrand  * Copyright (c) 2017 Red Hat Inc
339343080SDavid Hildenbrand  *
439343080SDavid Hildenbrand  * Authors:
539343080SDavid Hildenbrand  *  Thomas Huth <thuth@redhat.com>
639343080SDavid Hildenbrand  *  David Hildenbrand <david@redhat.com>
739343080SDavid Hildenbrand  *
839343080SDavid Hildenbrand  * This code is free software; you can redistribute it and/or modify it
939343080SDavid Hildenbrand  * under the terms of the GNU Library General Public License version 2.
1039343080SDavid Hildenbrand  */
1139343080SDavid Hildenbrand #ifndef _ASMS390X_PAGE_H_
1239343080SDavid Hildenbrand #define _ASMS390X_PAGE_H_
1339343080SDavid Hildenbrand 
1439343080SDavid Hildenbrand #include <asm-generic/page.h>
1539343080SDavid Hildenbrand 
16*c08c320bSDavid Hildenbrand typedef uint64_t pgdval_t;		/* Region-1 table entry */
17*c08c320bSDavid Hildenbrand typedef uint64_t p4dval_t;		/* Region-2 table entry*/
18*c08c320bSDavid Hildenbrand typedef uint64_t pudval_t;		/* Region-3 table entry */
19*c08c320bSDavid Hildenbrand typedef uint64_t pmdval_t;		/* Segment table entry */
20*c08c320bSDavid Hildenbrand typedef uint64_t pteval_t;		/* Page table entry */
21*c08c320bSDavid Hildenbrand 
22*c08c320bSDavid Hildenbrand typedef struct { pgdval_t pgd; } pgd_t;
23*c08c320bSDavid Hildenbrand typedef struct { p4dval_t p4d; } p4d_t;
24*c08c320bSDavid Hildenbrand typedef struct { pudval_t pud; } pud_t;
25*c08c320bSDavid Hildenbrand typedef struct { pmdval_t pmd; } pmd_t;
26*c08c320bSDavid Hildenbrand typedef struct { pteval_t pte; } pte_t;
27*c08c320bSDavid Hildenbrand 
28*c08c320bSDavid Hildenbrand #define pgd_val(x)	((x).pgd)
29*c08c320bSDavid Hildenbrand #define p4d_val(x)	((x).p4d)
30*c08c320bSDavid Hildenbrand #define pud_val(x)	((x).pud)
31*c08c320bSDavid Hildenbrand #define pmd_val(x)	((x).pmd)
32*c08c320bSDavid Hildenbrand #define pte_val(x)	((x).pte)
33*c08c320bSDavid Hildenbrand 
34*c08c320bSDavid Hildenbrand #define __pgd(x)	((pgd_t) { (x) } )
35*c08c320bSDavid Hildenbrand #define __p4d(x)	((p4d_t) { (x) } )
36*c08c320bSDavid Hildenbrand #define __pud(x)	((pud_t) { (x) } )
37*c08c320bSDavid Hildenbrand #define __pmd(x)	((pmd_t) { (x) } )
38*c08c320bSDavid Hildenbrand #define __pte(x)	((pte_t) { (x) } )
39*c08c320bSDavid Hildenbrand 
4039343080SDavid Hildenbrand #endif
41