Rev 1409 | Rev 1413 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1409 | Rev 1411 | ||
---|---|---|---|
Line 125... | Line 125... | ||
125 | void *backend_data[2]; /**< Data to be used by the backend. */ |
125 | void *backend_data[2]; /**< Data to be used by the backend. */ |
126 | }; |
126 | }; |
127 | 127 | ||
128 | /** Address space area backend structure. */ |
128 | /** Address space area backend structure. */ |
129 | struct mem_backend { |
129 | struct mem_backend { |
130 | int (* backend_page_fault)(as_area_t *area, __address addr); |
130 | int (* backend_page_fault)(as_area_t *area, __address addr, pf_access_t access); |
131 | void (* backend_frame_free)(as_area_t *area, __address page, __address frame); |
131 | void (* backend_frame_free)(as_area_t *area, __address page, __address frame); |
132 | }; |
132 | }; |
133 | 133 | ||
134 | extern as_t *AS_KERNEL; |
134 | extern as_t *AS_KERNEL; |
135 | extern as_operations_t *as_operations; |
135 | extern as_operations_t *as_operations; |
Line 143... | Line 143... | ||
143 | mem_backend_t *backend, void **backend_data); |
143 | mem_backend_t *backend, void **backend_data); |
144 | extern int as_area_resize(as_t *as, __address address, size_t size, int flags); |
144 | extern int as_area_resize(as_t *as, __address address, size_t size, int flags); |
145 | extern int as_area_destroy(as_t *as, __address address); |
145 | extern int as_area_destroy(as_t *as, __address address); |
146 | extern int as_area_get_flags(as_area_t *area); |
146 | extern int as_area_get_flags(as_area_t *area); |
147 | extern void as_set_mapping(as_t *as, __address page, __address frame); |
147 | extern void as_set_mapping(as_t *as, __address page, __address frame); |
148 | extern int as_page_fault(__address page, istate_t *istate); |
148 | extern int as_page_fault(__address page, pf_access_t access, istate_t *istate); |
149 | extern void as_switch(as_t *old, as_t *new); |
149 | extern void as_switch(as_t *old, as_t *new); |
150 | extern void as_free(as_t *as); |
150 | extern void as_free(as_t *as); |
151 | extern int as_area_steal(task_t *src_task, __address src_base, size_t acc_size, __address dst_base); |
151 | extern int as_area_steal(task_t *src_task, __address src_base, size_t acc_size, __address dst_base); |
152 | extern size_t as_get_size(__address base); |
152 | extern size_t as_get_size(__address base); |
153 | extern int used_space_insert(as_area_t *a, __address page, count_t count); |
153 | extern int used_space_insert(as_area_t *a, __address page, count_t count); |