home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-powerpc / page_32.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.0 KB  |  43 lines

  1. #ifndef _ASM_POWERPC_PAGE_32_H
  2. #define _ASM_POWERPC_PAGE_32_H
  3. #ifdef __KERNEL__
  4.  
  5. #define VM_DATA_DEFAULT_FLAGS    VM_DATA_DEFAULT_FLAGS32
  6.  
  7. #define PPC_MEMSTART    0
  8.  
  9. #ifndef __ASSEMBLY__
  10. /*
  11.  * The basic type of a PTE - 64 bits for those CPUs with > 32 bit
  12.  * physical addressing.  For now this just the IBM PPC440.
  13.  */
  14. #ifdef CONFIG_PTE_64BIT
  15. typedef unsigned long long pte_basic_t;
  16. #define PTE_SHIFT    (PAGE_SHIFT - 3)    /* 512 ptes per page */
  17. #define PTE_FMT        "%16Lx"
  18. #else
  19. typedef unsigned long pte_basic_t;
  20. #define PTE_SHIFT    (PAGE_SHIFT - 2)    /* 1024 ptes per page */
  21. #define PTE_FMT        "%.8lx"
  22. #endif
  23.  
  24. struct page;
  25. extern void clear_pages(void *page, int order);
  26. static inline void clear_page(void *page) { clear_pages(page, 0); }
  27. extern void copy_page(void *to, void *from);
  28.  
  29. /* Pure 2^n version of get_order */
  30. extern __inline__ int get_order(unsigned long size)
  31. {
  32.     int lz;
  33.  
  34.     size = (size-1) >> PAGE_SHIFT;
  35.     asm ("cntlzw %0,%1" : "=r" (lz) : "r" (size));
  36.     return 32 - lz;
  37. }
  38.  
  39. #endif /* __ASSEMBLY__ */
  40.  
  41. #endif /* __KERNEL__ */
  42. #endif /* _ASM_POWERPC_PAGE_32_H */
  43.