| 194 | } |
| 195 | |
| 196 | static rt_err_t _anon_varea_shrink(rt_varea_t varea, void *new_start, rt_size_t size) |
| 197 | { |
| 198 | char *varea_start = varea->start; |
| 199 | void *rm_start; |
| 200 | void *rm_end; |
| 201 | |
| 202 | if (varea_start == (char *)new_start) |
| 203 | { |
| 204 | rm_start = varea_start + size; |
| 205 | rm_end = varea_start + varea->size; |
| 206 | } |
| 207 | else /* if (varea_start < (char *)new_start) */ |
| 208 | { |
| 209 | RT_ASSERT(varea_start < (char *)new_start); |
| 210 | rm_start = varea_start; |
| 211 | rm_end = new_start; |
| 212 | } |
| 213 | |
| 214 | _pgmgr_pop_range(varea, rm_start, rm_end); |
| 215 | return RT_EOK; |
| 216 | } |
| 217 | |
| 218 | static rt_err_t _anon_varea_split(struct rt_varea *existed, void *unmap_start, rt_size_t unmap_len, struct rt_varea *subset) |
| 219 | { |
nothing calls this directly
no test coverage detected