MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / on_shm_page_fault

Function on_shm_page_fault

components/lwp/lwp_shm.c:58–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58static void on_shm_page_fault(struct rt_varea *varea, struct rt_aspace_fault_msg *msg)
59{
60 struct lwp_shm_struct *shm;
61 int err;
62 shm = rt_container_of(varea->mem_obj, struct lwp_shm_struct, mem_obj);
63
64 /* map all share page frames to user space in a time */
65 void *page = (void *)shm->addr;
66 void *pg_paddr = (char *)page + PV_OFFSET;
67 err = rt_varea_map_range(varea, varea->start, pg_paddr, shm->size);
68
69 if (err == RT_EOK)
70 {
71 msg->response.status = MM_FAULT_STATUS_OK_MAPPED;
72 msg->response.size = shm->size;
73 msg->response.vaddr = page;
74 }
75
76 return ;
77}
78
79/*
80 * Try to allocate an structure 'lwp_shm_struct' from the freed list or the

Callers

nothing calls this directly

Calls 1

rt_varea_map_rangeFunction · 0.85

Tested by

no test coverage detected