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