Rev 2071 | Rev 2089 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2071 | Rev 2076 | ||
|---|---|---|---|
| Line 49... | Line 49... | ||
| 49 | #include <arch/types.h> |
49 | #include <arch/types.h> |
| 50 | #include <typedefs.h> |
50 | #include <typedefs.h> |
| 51 | #include <align.h> |
51 | #include <align.h> |
| 52 | #include <arch.h> |
52 | #include <arch.h> |
| 53 | 53 | ||
| - | 54 | #ifdef CONFIG_VIRT_IDX_DCACHE |
|
| - | 55 | #include <arch/mm/cache.h> |
|
| - | 56 | #endif |
|
| - | 57 | ||
| 54 | static int anon_page_fault(as_area_t *area, uintptr_t addr, pf_access_t access); |
58 | static int anon_page_fault(as_area_t *area, uintptr_t addr, pf_access_t access); |
| 55 | static void anon_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame); |
59 | static void anon_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame); |
| 56 | static void anon_share(as_area_t *area); |
60 | static void anon_share(as_area_t *area); |
| 57 | 61 | ||
| 58 | mem_backend_t anon_backend = { |
62 | mem_backend_t anon_backend = { |
| Line 151... | Line 155... | ||
| 151 | /** Free a frame that is backed by the anonymous memory backend. |
155 | /** Free a frame that is backed by the anonymous memory backend. |
| 152 | * |
156 | * |
| 153 | * The address space area and page tables must be already locked. |
157 | * The address space area and page tables must be already locked. |
| 154 | * |
158 | * |
| 155 | * @param area Ignored. |
159 | * @param area Ignored. |
| 156 | * @param page Ignored. |
160 | * @param page Virtual address of the page corresponding to the frame. |
| 157 | * @param frame Frame to be released. |
161 | * @param frame Frame to be released. |
| 158 | */ |
162 | */ |
| 159 | void anon_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame) |
163 | void anon_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame) |
| 160 | { |
164 | { |
| 161 | frame_free(frame); |
165 | frame_free(frame); |
| - | 166 | #ifdef CONFIG_VIRT_IDX_DCACHE |
|
| - | 167 | dcache_flush_frame(page, frame); |
|
| - | 168 | #endif |
|
| 162 | } |
169 | } |
| 163 | 170 | ||
| 164 | /** Share the anonymous address space area. |
171 | /** Share the anonymous address space area. |
| 165 | * |
172 | * |
| 166 | * Sharing of anonymous area is done by duplicating its entire mapping |
173 | * Sharing of anonymous area is done by duplicating its entire mapping |