Lines Matching defs:shminfo
448 hostx_create_shm_segment(xcb_shm_segment_info_t *shminfo, size_t size)
450 shminfo->shmaddr = NULL;
457 shminfo->shmseg = xcb_generate_id(HostX.conn);
458 cookie = xcb_shm_create_segment(HostX.conn, shminfo->shmseg, size, TRUE);
464 shminfo->shmaddr =
467 if (shminfo->shmaddr == MAP_FAILED)
468 shminfo->shmaddr = NULL;
470 if (!shminfo->shmaddr)
471 xcb_shm_detach(HostX.conn, shminfo->shmseg);
477 shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0666);
478 if (shminfo->shmid != -1) {
479 shminfo->shmaddr = shmat(shminfo->shmid, 0, 0);
480 if (shminfo->shmaddr == (void *)-1) {
481 shminfo->shmaddr = NULL;
486 shmctl(shminfo->shmid, IPC_RMID, 0);
488 shminfo->shmseg = xcb_generate_id(HostX.conn);
489 cookie = xcb_shm_attach_checked(HostX.conn, shminfo->shmseg, shminfo->shmid, TRUE);
494 shmdt(shminfo->shmaddr);
495 shminfo->shmaddr = NULL;
501 return shminfo->shmaddr != NULL;
505 hostx_destroy_shm_segment(xcb_shm_segment_info_t *shminfo, size_t size)
507 xcb_shm_detach(HostX.conn, shminfo->shmseg);
510 munmap(shminfo->shmaddr, size);
512 shmdt(shminfo->shmaddr);
514 shminfo->shmaddr = NULL;
741 xcb_shm_segment_info_t shminfo;
742 if (!hostx_create_shm_segment(&shminfo, 1)) {
746 hostx_destroy_shm_segment(&shminfo, 1);
895 hostx_destroy_shm_segment(&scrpriv->shminfo, scrpriv->shmsize);
916 if (!hostx_create_shm_segment(&scrpriv->shminfo,
924 EPHYR_DBG("SHM segment created %p", scrpriv->shminfo.shmaddr);
925 scrpriv->ximg->data = scrpriv->shminfo.shmaddr;
1114 scrpriv->shminfo,