Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions | Variables
fixmap.h File Reference
#include <linux/kernel.h>
#include <asm/acpi.h>
#include <asm/apicdef.h>
#include <asm/page.h>
#include <asm/vsyscall.h>

Go to the source code of this file.

Macros

#define FIXADDR_TOP   (VSYSCALL_END-PAGE_SIZE)
 
#define FIXADDR_USER_START   ((unsigned long)VSYSCALL32_VSYSCALL)
 
#define FIXADDR_USER_END   (FIXADDR_USER_START + PAGE_SIZE)
 
#define NR_FIX_BTMAPS   64
 
#define FIX_BTMAPS_SLOTS   4
 
#define TOTAL_FIX_BTMAPS   (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
 
#define FIXADDR_SIZE   (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
 
#define FIXADDR_BOOT_SIZE   (__end_of_fixed_addresses << PAGE_SHIFT)
 
#define FIXADDR_START   (FIXADDR_TOP - FIXADDR_SIZE)
 
#define FIXADDR_BOOT_START   (FIXADDR_TOP - FIXADDR_BOOT_SIZE)
 
#define set_fixmap(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL)
 
#define set_fixmap_nocache(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE)
 
#define clear_fixmap(idx)   __set_fixmap(idx, 0, __pgprot(0))
 
#define __fix_to_virt(x)   (FIXADDR_TOP - ((x) << PAGE_SHIFT))
 
#define __virt_to_fix(x)   ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
 
#define set_fixmap_offset(idx, phys)   __set_fixmap_offset(idx, phys, PAGE_KERNEL)
 
#define set_fixmap_offset_nocache(idx, phys)   __set_fixmap_offset(idx, phys, PAGE_KERNEL_NOCACHE)
 

Enumerations

enum  fixed_addresses {
  FIX_KMAP_BEGIN, FIX_KMAP_END, __end_of_fixed_addresses, FIX_HOLE,
  __end_of_fixed_addresses, FIX_CMAP_BEGIN, FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * 2), __end_of_fixed_addresses,
  FIX_IOREMAP_BEGIN, FIX_IOREMAP_END = FIX_IOREMAP_BEGIN + FIX_N_IOREMAPS - 1, __end_of_fixed_addresses, FIX_HOLE,
  FIX_EARLY_DEBUG_TOP = FIX_HOLE, FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+((128*1024)/PAGE_SIZE)-1, __end_of_fixed_addresses, FIX_CMAP_BEGIN,
  FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS, __end_of_fixed_addresses, FIX_CMAP_BEGIN, FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * NR_CPUS) - 1,
  __end_of_fixed_addresses, FIX_HOLE, __end_of_fixed_addresses, __end_of_permanent_fixed_addresses,
  __end_of_fixed_addresses = __end_of_permanent_fixed_addresses, __end_of_fixed_addresses, VSYSCALL_LAST_PAGE, VSYSCALL_FIRST_PAGE,
  VVAR_PAGE, VSYSCALL_HPET, FIX_DBGP_BASE, FIX_EARLYCON_MEM_BASE,
  FIX_TEXT_POKE1, FIX_TEXT_POKE0, __end_of_permanent_fixed_addresses, FIX_BTMAP_END,
  FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1, __end_of_fixed_addresses
}
 

Functions

void reserve_top_address (unsigned long reserve)
 
void __native_set_fixmap (enum fixed_addresses idx, pte_t pte)
 
void native_set_fixmap (enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags)
 
void __this_fixmap_does_not_exist (void)
 

Variables

int fixmaps_set
 
pte_tkmap_pte
 
pgprot_t kmap_prot
 
pte_tpkmap_page_table
 

Macro Definition Documentation

#define __fix_to_virt (   x)    (FIXADDR_TOP - ((x) << PAGE_SHIFT))

Definition at line 190 of file fixmap.h.

#define __virt_to_fix (   x)    ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)

Definition at line 191 of file fixmap.h.

#define clear_fixmap (   idx)    __set_fixmap(idx, 0, __pgprot(0))

Definition at line 187 of file fixmap.h.

#define FIX_BTMAPS_SLOTS   4

Definition at line 133 of file fixmap.h.

#define FIXADDR_BOOT_SIZE   (__end_of_fixed_addresses << PAGE_SHIFT)

Definition at line 156 of file fixmap.h.

#define FIXADDR_BOOT_START   (FIXADDR_TOP - FIXADDR_BOOT_SIZE)

Definition at line 158 of file fixmap.h.

#define FIXADDR_SIZE   (__end_of_permanent_fixed_addresses << PAGE_SHIFT)

Definition at line 155 of file fixmap.h.

#define FIXADDR_START   (FIXADDR_TOP - FIXADDR_SIZE)

Definition at line 157 of file fixmap.h.

#define FIXADDR_TOP   (VSYSCALL_END-PAGE_SIZE)

Definition at line 46 of file fixmap.h.

#define FIXADDR_USER_END   (FIXADDR_USER_START + PAGE_SIZE)

Definition at line 50 of file fixmap.h.

#define FIXADDR_USER_START   ((unsigned long)VSYSCALL32_VSYSCALL)

Definition at line 49 of file fixmap.h.

#define NR_FIX_BTMAPS   64

Definition at line 132 of file fixmap.h.

#define set_fixmap (   idx,
  phys 
)    __set_fixmap(idx, phys, PAGE_KERNEL)

Definition at line 178 of file fixmap.h.

#define set_fixmap_nocache (   idx,
  phys 
)    __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE)

Definition at line 184 of file fixmap.h.

#define set_fixmap_offset (   idx,
  phys 
)    __set_fixmap_offset(idx, phys, PAGE_KERNEL)

Definition at line 231 of file fixmap.h.

#define set_fixmap_offset_nocache (   idx,
  phys 
)    __set_fixmap_offset(idx, phys, PAGE_KERNEL_NOCACHE)

Definition at line 234 of file fixmap.h.

#define TOTAL_FIX_BTMAPS   (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)

Definition at line 134 of file fixmap.h.

Enumeration Type Documentation

Enumerator:
FIX_KMAP_BEGIN 
FIX_KMAP_END 
__end_of_fixed_addresses 
FIX_HOLE 
__end_of_fixed_addresses 
FIX_CMAP_BEGIN 
FIX_CMAP_END 
__end_of_fixed_addresses 
FIX_IOREMAP_BEGIN 
FIX_IOREMAP_END 
__end_of_fixed_addresses 
FIX_HOLE 
FIX_EARLY_DEBUG_TOP 
FIX_EARLY_DEBUG_BASE 
__end_of_fixed_addresses 
FIX_CMAP_BEGIN 
FIX_CMAP_END 
__end_of_fixed_addresses 
FIX_CMAP_BEGIN 
FIX_CMAP_END 
__end_of_fixed_addresses 
FIX_HOLE 
__end_of_fixed_addresses 
__end_of_permanent_fixed_addresses 
__end_of_fixed_addresses 
__end_of_fixed_addresses 
VSYSCALL_LAST_PAGE 
VSYSCALL_FIRST_PAGE 
VVAR_PAGE 
VSYSCALL_HPET 
FIX_DBGP_BASE 
FIX_EARLYCON_MEM_BASE 
FIX_TEXT_POKE1 
FIX_TEXT_POKE0 
__end_of_permanent_fixed_addresses 
FIX_BTMAP_END 
FIX_BTMAP_BEGIN 
__end_of_fixed_addresses 

Definition at line 73 of file fixmap.h.

Function Documentation

void __native_set_fixmap ( enum fixed_addresses  idx,
pte_t  pte 
)

Definition at line 431 of file pgtable.c.

void __this_fixmap_does_not_exist ( void  )

Definition at line 453 of file pgtable_32.c.

void native_set_fixmap ( enum fixed_addresses  idx,
phys_addr_t  phys,
pgprot_t  flags 
)

Definition at line 443 of file pgtable.c.

void reserve_top_address ( unsigned long  reserve)

reserve_top_address - reserves a hole in the top of kernel address space - size of hole to reserve

Can be used to relocate the fixmap area and poke a hole in the top of kernel address space to make room for a hypervisor.

Definition at line 419 of file pgtable.c.

Variable Documentation

int fixmaps_set

Definition at line 429 of file pgtable.c.

pgprot_t kmap_prot

Definition at line 34 of file highmem.c.

pte_t* kmap_pte

Definition at line 377 of file init_32.c.

pte_t* pkmap_page_table