| 93 | } |
| 94 | |
| 95 | static int _exec_fault(rt_varea_t varea, void *pa, struct rt_aspace_fault_msg *msg) |
| 96 | { |
| 97 | int err = MM_FAULT_FIXABLE_FALSE; |
| 98 | if (msg->fault_type == MM_FAULT_TYPE_PAGE_FAULT) |
| 99 | { |
| 100 | RT_ASSERT(pa == ARCH_MAP_FAILED); |
| 101 | RT_ASSERT(!(varea->flag & MMF_PREFETCH)); |
| 102 | err = _fetch_page(varea, msg); |
| 103 | } |
| 104 | return err; |
| 105 | } |
| 106 | |
| 107 | static void _determine_precise_fault_type(struct rt_aspace_fault_msg *msg, rt_ubase_t pa, rt_varea_t varea) |
| 108 | { |
no test coverage detected