Rev 684 | Rev 699 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 684 | Rev 687 | ||
|---|---|---|---|
| Line 27... | Line 27... | ||
| 27 | */ |
27 | */ |
| 28 | 28 | ||
| 29 | #include <genarch/mm/page_ht.h> |
29 | #include <genarch/mm/page_ht.h> |
| 30 | #include <mm/page.h> |
30 | #include <mm/page.h> |
| 31 | #include <mm/frame.h> |
31 | #include <mm/frame.h> |
| - | 32 | #include <arch/mm/asid.h> |
|
| 32 | #include <arch/types.h> |
33 | #include <arch/types.h> |
| 33 | #include <typedefs.h> |
34 | #include <typedefs.h> |
| 34 | #include <arch/asm.h> |
35 | #include <arch/asm.h> |
| 35 | 36 | ||
| 36 | static void ht_mapping_insert(__address page, __address frame, int flags, __address root); |
37 | static void ht_mapping_insert(__address page, asid_t asid, __address frame, int flags, __address root); |
| 37 | static pte_t *ht_mapping_find(__address page, __address root); |
38 | static pte_t *ht_mapping_find(__address page, asid_t asid, __address root); |
| 38 | 39 | ||
| 39 | page_operations_t page_ht_operations = { |
40 | page_operations_t page_ht_operations = { |
| 40 | .mapping_insert = ht_mapping_insert, |
41 | .mapping_insert = ht_mapping_insert, |
| 41 | .mapping_find = ht_mapping_find |
42 | .mapping_find = ht_mapping_find |
| 42 | }; |
43 | }; |
| Line 45... | Line 46... | ||
| 45 | * |
46 | * |
| 46 | * Map virtual address 'page' to physical address 'frame' |
47 | * Map virtual address 'page' to physical address 'frame' |
| 47 | * using 'flags'. |
48 | * using 'flags'. |
| 48 | * |
49 | * |
| 49 | * @param page Virtual address of the page to be mapped. |
50 | * @param page Virtual address of the page to be mapped. |
| - | 51 | * @param asid Address space to which page belongs. |
|
| 50 | * @param frame Physical address of memory frame to which the mapping is done. |
52 | * @param frame Physical address of memory frame to which the mapping is done. |
| 51 | * @param flags Flags to be used for mapping. |
53 | * @param flags Flags to be used for mapping. |
| 52 | * @param root Explicit PTL0 address. |
54 | * @param root Explicit PTL0 address. |
| 53 | */ |
55 | */ |
| 54 | void ht_mapping_insert(__address page, __address frame, int flags, __address root) |
56 | void ht_mapping_insert(__address page, asid_t asid, __address frame, int flags, __address root) |
| 55 | { |
57 | { |
| 56 | } |
58 | } |
| 57 | 59 | ||
| 58 | /** Find mapping for virtual page in page hash table. |
60 | /** Find mapping for virtual page in page hash table. |
| 59 | * |
61 | * |
| 60 | * Find mapping for virtual page. |
62 | * Find mapping for virtual page. |
| 61 | * |
63 | * |
| 62 | * @param page Virtual page. |
64 | * @param page Virtual page. |
| - | 65 | * @param asid Address space to wich page belongs. |
|
| 63 | * @param root PTL0 address if non-zero. |
66 | * @param root PTL0 address if non-zero. |
| 64 | * |
67 | * |
| 65 | * @return NULL if there is no such mapping; entry from PTL3 describing the mapping otherwise. |
68 | * @return NULL if there is no such mapping; entry from PTL3 describing the mapping otherwise. |
| 66 | */ |
69 | */ |
| 67 | pte_t *ht_mapping_find(__address page, __address root) |
70 | pte_t *ht_mapping_find(__address page, asid_t asid, __address root) |
| 68 | { |
71 | { |
| 69 | return NULL; |
72 | return NULL; |
| 70 | } |
73 | } |