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

fixmap.h (1638B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __UM_FIXMAP_H
      3#define __UM_FIXMAP_H
      4
      5#include <asm/processor.h>
      6#include <asm/archparam.h>
      7#include <asm/page.h>
      8#include <linux/threads.h>
      9
     10/*
     11 * Here we define all the compile-time 'special' virtual
     12 * addresses. The point is to have a constant address at
     13 * compile time, but to set the physical address only
     14 * in the boot process. We allocate these special  addresses
     15 * from the end of virtual memory (0xfffff000) backwards.
     16 * Also this lets us do fail-safe vmalloc(), we
     17 * can guarantee that these special addresses and
     18 * vmalloc()-ed addresses never overlap.
     19 *
     20 * these 'compile-time allocated' memory buffers are
     21 * fixed-size 4k pages. (or larger if used with an increment
     22 * highger than 1) use fixmap_set(idx,phys) to associate
     23 * physical memory with fixmap indices.
     24 *
     25 * TLB entries of such buffers will not be flushed across
     26 * task switches.
     27 */
     28
     29/*
     30 * on UP currently we will have no trace of the fixmap mechanizm,
     31 * no page table allocations, etc. This might change in the
     32 * future, say framebuffers for the console driver(s) could be
     33 * fix-mapped?
     34 */
     35enum fixed_addresses {
     36	__end_of_fixed_addresses
     37};
     38
     39extern void __set_fixmap (enum fixed_addresses idx,
     40			  unsigned long phys, pgprot_t flags);
     41
     42/*
     43 * used by vmalloc.c.
     44 *
     45 * Leave one empty page between vmalloc'ed areas and
     46 * the start of the fixmap, and leave one page empty
     47 * at the top of mem..
     48 */
     49
     50#define FIXADDR_TOP	(TASK_SIZE - 2 * PAGE_SIZE)
     51#define FIXADDR_SIZE	(__end_of_fixed_addresses << PAGE_SHIFT)
     52#define FIXADDR_START	(FIXADDR_TOP - FIXADDR_SIZE)
     53
     54#include <asm-generic/fixmap.h>
     55
     56#endif