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

map.h (1464B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 *  arch/arm/include/asm/map.h
      4 *
      5 *  Copyright (C) 1999-2000 Russell King
      6 *
      7 *  Page table mapping constructs and function prototypes
      8 */
      9#ifndef __ASM_MACH_MAP_H
     10#define __ASM_MACH_MAP_H
     11
     12#include <asm/io.h>
     13
     14struct map_desc {
     15	unsigned long virtual;
     16	unsigned long pfn;
     17	unsigned long length;
     18	unsigned int type;
     19};
     20
     21/* types 0-3 are defined in asm/io.h */
     22enum {
     23	MT_UNCACHED = 4,
     24	MT_CACHECLEAN,
     25	MT_MINICLEAN,
     26	MT_LOW_VECTORS,
     27	MT_HIGH_VECTORS,
     28	MT_MEMORY_RWX,
     29	MT_MEMORY_RW,
     30	MT_ROM,
     31	MT_MEMORY_RWX_NONCACHED,
     32	MT_MEMORY_RW_DTCM,
     33	MT_MEMORY_RWX_ITCM,
     34	MT_MEMORY_RW_SO,
     35	MT_MEMORY_DMA_READY,
     36};
     37
     38#ifdef CONFIG_MMU
     39extern void iotable_init(struct map_desc *, int);
     40extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
     41				  void *caller);
     42extern void create_mapping_late(struct mm_struct *mm, struct map_desc *md,
     43				bool ng);
     44
     45#ifdef CONFIG_DEBUG_LL
     46extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
     47extern void debug_ll_io_init(void);
     48#else
     49static inline void debug_ll_io_init(void) {}
     50#endif
     51
     52struct mem_type;
     53extern const struct mem_type *get_mem_type(unsigned int type);
     54/*
     55 * external interface to remap single page with appropriate type
     56 */
     57extern int ioremap_page(unsigned long virt, unsigned long phys,
     58			const struct mem_type *mtype);
     59#else
     60#define iotable_init(map,num)	do { } while (0)
     61#define vm_reserve_area_early(a,s,c)	do { } while (0)
     62#endif
     63
     64#endif