linux/arch/x86/include/asm/fixmap_64.h
<<
>>
Prefs
   1/*
   2 * fixmap.h: compile-time virtual memory allocation
   3 *
   4 * This file is subject to the terms and conditions of the GNU General Public
   5 * License.  See the file "COPYING" in the main directory of this archive
   6 * for more details.
   7 *
   8 * Copyright (C) 1998 Ingo Molnar
   9 */
  10
  11#ifndef _ASM_X86_FIXMAP_64_H
  12#define _ASM_X86_FIXMAP_64_H
  13
  14#include <linux/kernel.h>
  15#include <asm/acpi.h>
  16#include <asm/apicdef.h>
  17#include <asm/page.h>
  18#include <asm/vsyscall.h>
  19#include <asm/efi.h>
  20
  21/*
  22 * Here we define all the compile-time 'special' virtual
  23 * addresses. The point is to have a constant address at
  24 * compile time, but to set the physical address only
  25 * in the boot process.
  26 *
  27 * These 'compile-time allocated' memory buffers are
  28 * fixed-size 4k pages (or larger if used with an increment
  29 * higher than 1). Use set_fixmap(idx,phys) to associate
  30 * physical memory with fixmap indices.
  31 *
  32 * TLB entries of such buffers will not be flushed across
  33 * task switches.
  34 */
  35
  36enum fixed_addresses {
  37        VSYSCALL_LAST_PAGE,
  38        VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
  39                            + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
  40        VSYSCALL_HPET,
  41        FIX_DBGP_BASE,
  42        FIX_EARLYCON_MEM_BASE,
  43        FIX_APIC_BASE,  /* local (CPU) APIC) -- required for SMP or not */
  44        FIX_IO_APIC_BASE_0,
  45        FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
  46        FIX_EFI_IO_MAP_LAST_PAGE,
  47        FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE
  48                                  + MAX_EFI_IO_PAGES - 1,
  49#ifdef CONFIG_PARAVIRT
  50        FIX_PARAVIRT_BOOTMAP,
  51#endif
  52        __end_of_permanent_fixed_addresses,
  53#ifdef CONFIG_ACPI
  54        FIX_ACPI_BEGIN,
  55        FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
  56#endif
  57#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
  58        FIX_OHCI1394_BASE,
  59#endif
  60        /*
  61         * 256 temporary boot-time mappings, used by early_ioremap(),
  62         * before ioremap() is functional.
  63         *
  64         * We round it up to the next 256 pages boundary so that we
  65         * can have a single pgd entry and a single pte table:
  66         */
  67#define NR_FIX_BTMAPS           64
  68#define FIX_BTMAPS_SLOTS        4
  69        FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
  70                        (__end_of_permanent_fixed_addresses & 255),
  71        FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
  72        __end_of_fixed_addresses
  73};
  74
  75#define FIXADDR_TOP     (VSYSCALL_END-PAGE_SIZE)
  76#define FIXADDR_SIZE    (__end_of_fixed_addresses << PAGE_SHIFT)
  77#define FIXADDR_START   (FIXADDR_TOP - FIXADDR_SIZE)
  78
  79/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
  80#define FIXADDR_USER_START      ((unsigned long)VSYSCALL32_VSYSCALL)
  81#define FIXADDR_USER_END        (FIXADDR_USER_START + PAGE_SIZE)
  82
  83#endif /* _ASM_X86_FIXMAP_64_H */
  84
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.