File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/page_64.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: #ifndef _ASM_X86_PAGE_64_H
       2: #define _ASM_X86_PAGE_64_H
       3: 
       4: #include <asm/page_64_types.h>
       5: 
       6: #ifndef __ASSEMBLY__
       7: 
       8: /* duplicated to the one in bootmem.h */
       9: extern unsigned long max_pfn;
      10: extern unsigned long phys_base;
      11: 
      12: static inline unsigned long __phys_addr_nodebug(unsigned long x)
      13: {
      14:     unsigned long y = x - __START_KERNEL_map;
      15: 
      16:     /* use the carry flag to determine if x was < __START_KERNEL_map */
      17:     x = y + ((x > y) ? phys_base : (__START_KERNEL_map - PAGE_OFFSET));
      18: 
      19:     return x;
      20: }
      21: 
      22: #ifdef CONFIG_DEBUG_VIRTUAL
      23: extern unsigned long __phys_addr(unsigned long);
      24: extern unsigned long __phys_addr_symbol(unsigned long);
      25: #else
      26: #define __phys_addr(x)        __phys_addr_nodebug(x)
      27: #define __phys_addr_symbol(x) \
      28:     ((unsigned long)(x) - __START_KERNEL_map + phys_base)
      29: #endif
      30: 
      31: #define __phys_reloc_hide(x)    (x)
      32: 
      33: #ifdef CONFIG_FLATMEM
      34: #define pfn_valid(pfn)          ((pfn) < max_pfn)
      35: #endif
      36: 
      37: void clear_page(void *page);
      38: void copy_page(void *to, void *from);
      39: 
      40: #endif    /* !__ASSEMBLY__ */
      41: 
      42: #endif /* _ASM_X86_PAGE_64_H */
      43: