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

highmem.h (1114B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2
      3#ifndef __ASM_CSKY_HIGHMEM_H
      4#define __ASM_CSKY_HIGHMEM_H
      5
      6#ifdef __KERNEL__
      7
      8#include <linux/init.h>
      9#include <linux/interrupt.h>
     10#include <linux/uaccess.h>
     11#include <asm/kmap_size.h>
     12#include <asm/cache.h>
     13
     14/* undef for production */
     15#define HIGHMEM_DEBUG 1
     16
     17/* declarations for highmem.c */
     18extern unsigned long highstart_pfn, highend_pfn;
     19
     20extern pte_t *pkmap_page_table;
     21
     22/*
     23 * Right now we initialize only a single pte table. It can be extended
     24 * easily, subsequent pte tables have to be allocated in one physical
     25 * chunk of RAM.
     26 */
     27#define LAST_PKMAP 1024
     28#define LAST_PKMAP_MASK (LAST_PKMAP-1)
     29#define PKMAP_NR(virt)  ((virt-PKMAP_BASE) >> PAGE_SHIFT)
     30#define PKMAP_ADDR(nr)  (PKMAP_BASE + ((nr) << PAGE_SHIFT))
     31
     32#define ARCH_HAS_KMAP_FLUSH_TLB
     33extern void kmap_flush_tlb(unsigned long addr);
     34
     35#define flush_cache_kmaps() do {} while (0)
     36
     37#define arch_kmap_local_post_map(vaddr, pteval)	kmap_flush_tlb(vaddr)
     38#define arch_kmap_local_post_unmap(vaddr)	kmap_flush_tlb(vaddr)
     39
     40extern void kmap_init(void);
     41
     42#endif /* __KERNEL__ */
     43
     44#endif /* __ASM_CSKY_HIGHMEM_H */