source:
rtems/c/src/lib/libcpu/powerpc/shared/include/page.h
@
21e1c44
Last change on this file since 21e1c44 was 21e1c44, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:53:10 | |
---|---|
|
|
File size: 1.7 KB |
Rev | Line | |
---|---|---|
[abd9401] | 1 | /* |
2 | * page.h | |
3 | * | |
4 | * PowerPC memory management structures | |
5 | * | |
6 | * It is a stripped down version of linux ppc file... | |
7 | * | |
8 | * Copyright (C) 1999 Eric Valette (valette@crf.canon.fr) | |
9 | * Canon Centre Recherche France. | |
10 | * | |
11 | * The license and distribution terms for this file may be | |
12 | * found in found in the file LICENSE in this distribution or at | |
[21e1c44] | 13 | * http://www.rtems.com/license/LICENSE. |
[abd9401] | 14 | * |
15 | * $Id$ | |
16 | */ | |
17 | ||
18 | #ifndef _PPC_PAGE_H | |
19 | #define _PPC_PAGE_H | |
20 | ||
21 | /* PAGE_SHIFT determines the page size */ | |
22 | #define PAGE_SHIFT 12 | |
23 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | |
24 | #define PAGE_MASK (~(PAGE_SIZE-1)) | |
25 | ||
26 | #define PAGE_OFFSET 0xc0000000 | |
27 | ||
28 | ||
29 | #ifndef ASM | |
30 | /* | |
31 | * .. while these make it easier on the compiler | |
32 | */ | |
33 | typedef unsigned long pte_t; | |
34 | typedef unsigned long pmd_t; | |
35 | typedef unsigned long pgd_t; | |
36 | typedef unsigned long pgprot_t; | |
37 | ||
38 | #define pte_val(x) (x) | |
39 | #define pmd_val(x) (x) | |
40 | #define pgd_val(x) (x) | |
41 | #define pgprot_val(x) (x) | |
42 | ||
43 | #define __pte(x) (x) | |
44 | #define __pmd(x) (x) | |
45 | #define __pgd(x) (x) | |
46 | #define __pgprot(x) (x) | |
47 | ||
48 | ||
49 | /* align addr on a size boundry - adjust address up if needed -- Cort */ | |
50 | #define _ALIGN(addr,size) (((addr)+size-1)&(~(size-1))) | |
51 | ||
52 | /* to align the pointer to the (next) page boundary */ | |
53 | #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) | |
54 | ||
55 | ||
56 | #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) | |
57 | #define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE) | |
58 | /* map phys->virtual and virtual->phys for RAM pages */ | |
59 | ||
60 | #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) | |
61 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | |
62 | ||
63 | #define MAP_NR(addr) (((unsigned long)addr-PAGE_OFFSET) >> PAGE_SHIFT) | |
64 | #define MAP_PAGE_RESERVED (1<<15) | |
65 | ||
66 | extern unsigned long get_zero_page_fast(void); | |
67 | #endif /* ASM */ | |
68 | #endif /* _PPC_PAGE_H */ |
Note: See TracBrowser
for help on using the repository browser.