Subversion Repositories HelenOS-historic

Rev

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);