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-bits.h (1205B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2012 Regents of the University of California
      4 */
      5
      6#ifndef _ASM_RISCV_PGTABLE_BITS_H
      7#define _ASM_RISCV_PGTABLE_BITS_H
      8
      9#define _PAGE_ACCESSED_OFFSET 6
     10
     11#define _PAGE_PRESENT   (1 << 0)
     12#define _PAGE_READ      (1 << 1)    /* Readable */
     13#define _PAGE_WRITE     (1 << 2)    /* Writable */
     14#define _PAGE_EXEC      (1 << 3)    /* Executable */
     15#define _PAGE_USER      (1 << 4)    /* User */
     16#define _PAGE_GLOBAL    (1 << 5)    /* Global */
     17#define _PAGE_ACCESSED  (1 << 6)    /* Set by hardware on any access */
     18#define _PAGE_DIRTY     (1 << 7)    /* Set by hardware on any write */
     19#define _PAGE_SOFT      (1 << 8)    /* Reserved for software */
     20
     21#define _PAGE_SPECIAL   _PAGE_SOFT
     22#define _PAGE_TABLE     _PAGE_PRESENT
     23
     24/*
     25 * _PAGE_PROT_NONE is set on not-present pages (and ignored by the hardware) to
     26 * distinguish them from swapped out pages
     27 */
     28#define _PAGE_PROT_NONE _PAGE_GLOBAL
     29
     30#define _PAGE_PFN_SHIFT 10
     31
     32/*
     33 * when all of R/W/X are zero, the PTE is a pointer to the next level
     34 * of the page table; otherwise, it is a leaf PTE.
     35 */
     36#define _PAGE_LEAF (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
     37
     38#endif /* _ASM_RISCV_PGTABLE_BITS_H */