Lines Matching defs:shmdesc
139 #define VERIFY_SHMSEG(shmseg,shmdesc,client) \
142 rc = dixLookupResourceByType((pointer *)&(shmdesc), shmseg, ShmSegType, \
148 #define VERIFY_SHMPTR(shmseg,offset,needwrite,shmdesc,client) \
150 VERIFY_SHMSEG(shmseg, shmdesc, client); \
151 if ((offset & 3) || (offset > shmdesc->size)) \
156 if (needwrite && !shmdesc->writable) \
160 #define VERIFY_SHMSIZE(shmdesc,offset,len,client) \
162 if ((offset + len) > shmdesc->size) \
268 ShmDescPtr shmdesc;
269 shmdesc = (ShmDescPtr)dixLookupPrivate(&pPixmap->devPrivates,
271 if (shmdesc)
272 ShmDetachSegment ((pointer) shmdesc, pPixmap->drawable.id);
387 ShmDescPtr shmdesc;
397 for (shmdesc = Shmsegs;
398 shmdesc && (shmdesc->shmid != stuff->shmid);
399 shmdesc = shmdesc->next)
401 if (shmdesc)
403 if (!stuff->readOnly && !shmdesc->writable)
405 shmdesc->refcnt++;
409 shmdesc = malloc(sizeof(ShmDescRec));
410 if (!shmdesc)
412 shmdesc->addr = shmat(stuff->shmid, 0,
414 if ((shmdesc->addr == ((char *)-1)) ||
417 free(shmdesc);
426 shmdt(shmdesc->addr);
427 free(shmdesc);
431 shmdesc->shmid = stuff->shmid;
432 shmdesc->refcnt = 1;
433 shmdesc->writable = !stuff->readOnly;
434 shmdesc->size = SHM_SEGSZ(buf);
435 shmdesc->next = Shmsegs;
436 Shmsegs = shmdesc;
438 if (!AddResource(stuff->shmseg, ShmSegType, (pointer)shmdesc))
448 ShmDescPtr shmdesc = (ShmDescPtr)value;
451 if (--shmdesc->refcnt)
453 shmdt(shmdesc->addr);
454 for (prev = &Shmsegs; *prev != shmdesc; prev = &(*prev)->next)
456 *prev = shmdesc->next;
457 free(shmdesc);
464 ShmDescPtr shmdesc;
468 VERIFY_SHMSEG(stuff->shmseg, shmdesc, client);
526 ShmDescPtr shmdesc;
531 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client);
561 * VERIFY_SHMSIZE(shmdesc, stuff->offset, length * stuff->totalHeight,
566 length > (shmdesc->size - stuff->offset)/stuff->totalHeight) {
602 shmdesc->addr + stuff->offset +
610 shmdesc->addr + stuff->offset);
635 ShmDescPtr shmdesc;
650 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
697 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client);
709 shmdesc->addr + stuff->offset);
723 shmdesc->addr + length);
788 ShmDescPtr shmdesc;
816 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
877 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client);
883 shmdesc->addr + stuff->offset,
891 format, plane, shmdesc->addr + length,
919 ShmDescPtr shmdesc;
935 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
968 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
988 shmdesc->addr + stuff->offset);
991 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc);
992 shmdesc->refcnt++;
1041 ShmDescPtr shmdesc;
1057 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
1090 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
1095 shmdesc->addr + stuff->offset);
1104 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc);
1105 shmdesc->refcnt++;