cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pgtable-types.h (1305B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Page table types definitions.
      4 *
      5 * Copyright (C) 2014 ARM Ltd.
      6 * Author: Catalin Marinas <catalin.marinas@arm.com>
      7 */
      8
      9#ifndef __ASM_PGTABLE_TYPES_H
     10#define __ASM_PGTABLE_TYPES_H
     11
     12#include <asm/types.h>
     13
     14typedef u64 pteval_t;
     15typedef u64 pmdval_t;
     16typedef u64 pudval_t;
     17typedef u64 p4dval_t;
     18typedef u64 pgdval_t;
     19
     20/*
     21 * These are used to make use of C type-checking..
     22 */
     23typedef struct { pteval_t pte; } pte_t;
     24#define pte_val(x)	((x).pte)
     25#define __pte(x)	((pte_t) { (x) } )
     26
     27#if CONFIG_PGTABLE_LEVELS > 2
     28typedef struct { pmdval_t pmd; } pmd_t;
     29#define pmd_val(x)	((x).pmd)
     30#define __pmd(x)	((pmd_t) { (x) } )
     31#endif
     32
     33#if CONFIG_PGTABLE_LEVELS > 3
     34typedef struct { pudval_t pud; } pud_t;
     35#define pud_val(x)	((x).pud)
     36#define __pud(x)	((pud_t) { (x) } )
     37#endif
     38
     39typedef struct { pgdval_t pgd; } pgd_t;
     40#define pgd_val(x)	((x).pgd)
     41#define __pgd(x)	((pgd_t) { (x) } )
     42
     43typedef struct { pteval_t pgprot; } pgprot_t;
     44#define pgprot_val(x)	((x).pgprot)
     45#define __pgprot(x)	((pgprot_t) { (x) } )
     46
     47#if CONFIG_PGTABLE_LEVELS == 2
     48#include <asm-generic/pgtable-nopmd.h>
     49#elif CONFIG_PGTABLE_LEVELS == 3
     50#include <asm-generic/pgtable-nopud.h>
     51#elif CONFIG_PGTABLE_LEVELS == 4
     52#include <asm-generic/pgtable-nop4d.h>
     53#endif
     54
     55#endif	/* __ASM_PGTABLE_TYPES_H */