| 168 | } |
| 169 | |
| 170 | rt_inline void _do_page_fault(struct rt_aspace_fault_msg *msg, rt_size_t off, |
| 171 | void *vaddr, rt_mem_obj_t mem_obj, |
| 172 | rt_varea_t varea) |
| 173 | { |
| 174 | msg->off = off; |
| 175 | msg->fault_vaddr = vaddr; |
| 176 | msg->fault_op = MM_FAULT_OP_READ; |
| 177 | msg->fault_type = MM_FAULT_TYPE_PAGE_FAULT; |
| 178 | msg->response.status = MM_FAULT_STATUS_UNRECOVERABLE; |
| 179 | msg->response.vaddr = 0; |
| 180 | msg->response.size = 0; |
| 181 | |
| 182 | RT_ASSERT(mem_obj->on_page_fault); |
| 183 | mem_obj->on_page_fault(varea, msg); |
| 184 | } |
| 185 | |
| 186 | int rt_varea_map_with_msg(rt_varea_t varea, struct rt_aspace_fault_msg *msg) |
| 187 | { |