static int __map_heap_memory(RT_HEAP *heap, RT_HEAP_PLACEHOLDER *php) { struct xnheap_desc hd; hd.handle = (unsigned long)php->opaque2; hd.size = php->mapsize; xnheap_area_set(&hd, php->area); php->mapbase = xeno_map_heap(&hd); if (php->mapbase == MAP_FAILED) return -errno; *heap = *php; return 0; }
static void *map_sem_heap(unsigned int shared) { struct xnheap_desc global_hdesc, *hdesc; int ret; hdesc = shared ? &global_hdesc : &private_hdesc; ret = XENOMAI_SYSCALL2(__xn_sys_heap_info, hdesc, shared); if (ret < 0) { errno = -ret; perror("Xenomai: sys_heap_info"); return MAP_FAILED; } return xeno_map_heap(hdesc); }