Lines Matching refs:shmdesc

129 #define VERIFY_SHMSEG(shmseg,shmdesc,client) \  argument
132 tmprc = dixLookupResourceByType((void **)&(shmdesc), shmseg, ShmSegType, \
138 #define VERIFY_SHMPTR(shmseg,offset,needwrite,shmdesc,client) \ argument
140 VERIFY_SHMSEG(shmseg, shmdesc, client); \
141 if ((offset & 3) || (offset > shmdesc->size)) \
146 if (needwrite && !shmdesc->writable) \
150 #define VERIFY_SHMSIZE(shmdesc,offset,len,client) \ argument
152 if ((offset + len) > shmdesc->size) \
257 void *shmdesc = NULL; in ShmDestroyPixmap() local
261 shmdesc = dixLookupPrivate(&pPixmap->devPrivates, shmPixmapPrivateKey); in ShmDestroyPixmap()
268 if (shmdesc) in ShmDestroyPixmap()
269 ShmDetachSegment(shmdesc, 0); in ShmDestroyPixmap()
379 ShmDescPtr shmdesc; in ProcShmAttach() local
389 for (shmdesc = Shmsegs; shmdesc; shmdesc = shmdesc->next) { in ProcShmAttach()
390 if (!SHMDESC_IS_FD(shmdesc) && shmdesc->shmid == stuff->shmid) in ProcShmAttach()
393 if (shmdesc) { in ProcShmAttach()
394 if (!stuff->readOnly && !shmdesc->writable) in ProcShmAttach()
396 shmdesc->refcnt++; in ProcShmAttach()
399 shmdesc = malloc(sizeof(ShmDescRec)); in ProcShmAttach()
400 if (!shmdesc) in ProcShmAttach()
403 shmdesc->is_fd = FALSE; in ProcShmAttach()
405 shmdesc->addr = shmat(stuff->shmid, 0, in ProcShmAttach()
407 if ((shmdesc->addr == ((char *) -1)) || SHMSTAT(stuff->shmid, &buf)) { in ProcShmAttach()
408 free(shmdesc); in ProcShmAttach()
417 shmdt(shmdesc->addr); in ProcShmAttach()
418 free(shmdesc); in ProcShmAttach()
422 shmdesc->shmid = stuff->shmid; in ProcShmAttach()
423 shmdesc->refcnt = 1; in ProcShmAttach()
424 shmdesc->writable = !stuff->readOnly; in ProcShmAttach()
425 shmdesc->size = SHM_SEGSZ(buf); in ProcShmAttach()
426 shmdesc->next = Shmsegs; in ProcShmAttach()
427 Shmsegs = shmdesc; in ProcShmAttach()
429 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc)) in ProcShmAttach()
438 ShmDescPtr shmdesc = (ShmDescPtr) value; in ShmDetachSegment() local
441 if (--shmdesc->refcnt) in ShmDetachSegment()
444 if (shmdesc->is_fd) { in ShmDetachSegment()
445 if (shmdesc->busfault) in ShmDetachSegment()
446 busfault_unregister(shmdesc->busfault); in ShmDetachSegment()
447 munmap(shmdesc->addr, shmdesc->size); in ShmDetachSegment()
450 shmdt(shmdesc->addr); in ShmDetachSegment()
451 for (prev = &Shmsegs; *prev != shmdesc; prev = &(*prev)->next); in ShmDetachSegment()
452 *prev = shmdesc->next; in ShmDetachSegment()
453 free(shmdesc); in ShmDetachSegment()
460 ShmDescPtr shmdesc; in ProcShmDetach() local
465 VERIFY_SHMSEG(stuff->shmseg, shmdesc, client); in ProcShmDetach()
526 ShmDescPtr shmdesc; in ProcShmPutImage() local
532 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client); in ProcShmPutImage()
563 length > (shmdesc->size - stuff->offset) / stuff->totalHeight) { in ProcShmPutImage()
595 shmdesc->addr + stuff->offset + in ProcShmPutImage()
602 stuff->dstX, stuff->dstY, shmdesc->addr + stuff->offset); in ProcShmPutImage()
626 ShmDescPtr shmdesc; in ProcShmGetImage() local
641 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); in ProcShmGetImage()
690 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client); in ProcShmGetImage()
700 shmdesc->addr + stuff->offset); in ProcShmGetImage()
705 stuff->format, shmdesc->addr + stuff->offset); in ProcShmGetImage()
716 shmdesc->addr + length); in ProcShmGetImage()
721 stuff->format, shmdesc->addr + length); in ProcShmGetImage()
788 ShmDescPtr shmdesc; in ProcPanoramiXShmGetImage() local
815 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); in ProcPanoramiXShmGetImage()
858 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client); in ProcPanoramiXShmGetImage()
894 shmdesc->addr + stuff->offset, in ProcPanoramiXShmGetImage()
903 format, plane, shmdesc->addr + length, in ProcPanoramiXShmGetImage()
930 ShmDescPtr shmdesc; in ProcPanoramiXShmCreatePixmap() local
947 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); in ProcPanoramiXShmCreatePixmap()
978 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client); in ProcPanoramiXShmCreatePixmap()
999 shmdesc->addr + in ProcPanoramiXShmCreatePixmap()
1009 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); in ProcPanoramiXShmCreatePixmap()
1010 shmdesc->refcnt++; in ProcPanoramiXShmCreatePixmap()
1063 ShmDescPtr shmdesc; in ProcShmCreatePixmap() local
1080 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); in ProcShmCreatePixmap()
1111 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client); in ProcShmCreatePixmap()
1115 shmdesc->addr + in ProcShmCreatePixmap()
1124 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); in ProcShmCreatePixmap()
1125 shmdesc->refcnt++; in ProcShmCreatePixmap()
1140 ShmDescPtr shmdesc = context; in ShmBusfaultNotify() local
1143 (unsigned int) shmdesc->resource); in ShmBusfaultNotify()
1144 busfault_unregister(shmdesc->busfault); in ShmBusfaultNotify()
1145 shmdesc->busfault = NULL; in ShmBusfaultNotify()
1146 FreeResource (shmdesc->resource, RT_NONE); in ShmBusfaultNotify()
1153 ShmDescPtr shmdesc; in ProcShmAttachFd() local
1173 shmdesc = malloc(sizeof(ShmDescRec)); in ProcShmAttachFd()
1174 if (!shmdesc) { in ProcShmAttachFd()
1178 shmdesc->is_fd = TRUE; in ProcShmAttachFd()
1179 shmdesc->addr = mmap(NULL, statb.st_size, in ProcShmAttachFd()
1185 if (shmdesc->addr == ((char *) -1)) { in ProcShmAttachFd()
1186 free(shmdesc); in ProcShmAttachFd()
1190 shmdesc->refcnt = 1; in ProcShmAttachFd()
1191 shmdesc->writable = !stuff->readOnly; in ProcShmAttachFd()
1192 shmdesc->size = statb.st_size; in ProcShmAttachFd()
1193 shmdesc->resource = stuff->shmseg; in ProcShmAttachFd()
1195shmdesc->busfault = busfault_register_mmap(shmdesc->addr, shmdesc->size, ShmBusfaultNotify, shmdes… in ProcShmAttachFd()
1196 if (!shmdesc->busfault) { in ProcShmAttachFd()
1197 munmap(shmdesc->addr, shmdesc->size); in ProcShmAttachFd()
1198 free(shmdesc); in ProcShmAttachFd()
1202 shmdesc->next = Shmsegs; in ProcShmAttachFd()
1203 Shmsegs = shmdesc; in ProcShmAttachFd()
1205 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc)) in ProcShmAttachFd()
1268 ShmDescPtr shmdesc; in ProcShmCreateSegment() local
1290 shmdesc = malloc(sizeof(ShmDescRec)); in ProcShmCreateSegment()
1291 if (!shmdesc) { in ProcShmCreateSegment()
1295 shmdesc->is_fd = TRUE; in ProcShmCreateSegment()
1296 shmdesc->addr = mmap(NULL, stuff->size, in ProcShmCreateSegment()
1301 if (shmdesc->addr == ((char *) -1)) { in ProcShmCreateSegment()
1303 free(shmdesc); in ProcShmCreateSegment()
1307 shmdesc->refcnt = 1; in ProcShmCreateSegment()
1308 shmdesc->writable = !stuff->readOnly; in ProcShmCreateSegment()
1309 shmdesc->size = stuff->size; in ProcShmCreateSegment()
1311shmdesc->busfault = busfault_register_mmap(shmdesc->addr, shmdesc->size, ShmBusfaultNotify, shmdes… in ProcShmCreateSegment()
1312 if (!shmdesc->busfault) { in ProcShmCreateSegment()
1314 munmap(shmdesc->addr, shmdesc->size); in ProcShmCreateSegment()
1315 free(shmdesc); in ProcShmCreateSegment()
1319 shmdesc->next = Shmsegs; in ProcShmCreateSegment()
1320 Shmsegs = shmdesc; in ProcShmCreateSegment()
1322 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc)) { in ProcShmCreateSegment()