Lines Matching defs:shmdesc

129 #define VERIFY_SHMSEG(shmseg,shmdesc,client) \
132 tmprc = dixLookupResourceByType((void **)&(shmdesc), shmseg, ShmSegType, \
138 #define VERIFY_SHMPTR(shmseg,offset,needwrite,shmdesc,client) \
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) \
152 if ((offset + len) > shmdesc->size) \
253 void *shmdesc = NULL;
257 shmdesc = dixLookupPrivate(&pPixmap->devPrivates, shmPixmapPrivateKey);
264 if (shmdesc)
265 ShmDetachSegment(shmdesc, 0);
375 ShmDescPtr shmdesc;
385 for (shmdesc = Shmsegs; shmdesc; shmdesc = shmdesc->next) {
386 if (!SHMDESC_IS_FD(shmdesc) && shmdesc->shmid == stuff->shmid)
389 if (shmdesc) {
390 if (!stuff->readOnly && !shmdesc->writable)
392 shmdesc->refcnt++;
395 shmdesc = malloc(sizeof(ShmDescRec));
396 if (!shmdesc)
399 shmdesc->is_fd = FALSE;
401 shmdesc->addr = shmat(stuff->shmid, 0,
403 if ((shmdesc->addr == ((char *) -1)) || SHMSTAT(stuff->shmid, &buf)) {
404 free(shmdesc);
413 shmdt(shmdesc->addr);
414 free(shmdesc);
418 shmdesc->shmid = stuff->shmid;
419 shmdesc->refcnt = 1;
420 shmdesc->writable = !stuff->readOnly;
421 shmdesc->size = SHM_SEGSZ(buf);
422 shmdesc->next = Shmsegs;
423 Shmsegs = shmdesc;
425 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc))
434 ShmDescPtr shmdesc = (ShmDescPtr) value;
437 if (--shmdesc->refcnt)
440 if (shmdesc->is_fd) {
441 if (shmdesc->busfault)
442 busfault_unregister(shmdesc->busfault);
443 munmap(shmdesc->addr, shmdesc->size);
446 shmdt(shmdesc->addr);
447 for (prev = &Shmsegs; *prev != shmdesc; prev = &(*prev)->next);
448 *prev = shmdesc->next;
449 free(shmdesc);
456 ShmDescPtr shmdesc;
461 VERIFY_SHMSEG(stuff->shmseg, shmdesc, client);
522 ShmDescPtr shmdesc;
528 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client);
554 * VERIFY_SHMSIZE(shmdesc, stuff->offset, length * stuff->totalHeight,
559 length > (shmdesc->size - stuff->offset) / stuff->totalHeight) {
591 shmdesc->addr + stuff->offset +
598 stuff->dstX, stuff->dstY, shmdesc->addr + stuff->offset);
622 ShmDescPtr shmdesc;
637 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
686 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client);
696 shmdesc->addr + stuff->offset);
701 stuff->format, shmdesc->addr + stuff->offset);
712 shmdesc->addr + length);
717 stuff->format, shmdesc->addr + length);
784 ShmDescPtr shmdesc;
811 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
854 VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client);
890 shmdesc->addr + stuff->offset,
899 format, plane, shmdesc->addr + length,
926 ShmDescPtr shmdesc;
943 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
974 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
995 shmdesc->addr +
1005 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc);
1006 shmdesc->refcnt++;
1059 ShmDescPtr shmdesc;
1076 VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
1107 VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
1111 shmdesc->addr +
1120 dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc);
1121 shmdesc->refcnt++;
1136 ShmDescPtr shmdesc = context;
1139 (unsigned int) shmdesc->resource);
1140 busfault_unregister(shmdesc->busfault);
1141 shmdesc->busfault = NULL;
1142 FreeResource (shmdesc->resource, RT_NONE);
1149 ShmDescPtr shmdesc;
1169 shmdesc = malloc(sizeof(ShmDescRec));
1170 if (!shmdesc) {
1174 shmdesc->is_fd = TRUE;
1175 shmdesc->addr = mmap(NULL, statb.st_size,
1181 if (shmdesc->addr == ((char *) -1)) {
1182 free(shmdesc);
1186 shmdesc->refcnt = 1;
1187 shmdesc->writable = !stuff->readOnly;
1188 shmdesc->size = statb.st_size;
1189 shmdesc->resource = stuff->shmseg;
1191 shmdesc->busfault = busfault_register_mmap(shmdesc->addr, shmdesc->size, ShmBusfaultNotify, shmdesc);
1192 if (!shmdesc->busfault) {
1193 munmap(shmdesc->addr, shmdesc->size);
1194 free(shmdesc);
1198 shmdesc->next = Shmsegs;
1199 Shmsegs = shmdesc;
1201 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc))
1264 ShmDescPtr shmdesc;
1286 shmdesc = malloc(sizeof(ShmDescRec));
1287 if (!shmdesc) {
1291 shmdesc->is_fd = TRUE;
1292 shmdesc->addr = mmap(NULL, stuff->size,
1297 if (shmdesc->addr == ((char *) -1)) {
1299 free(shmdesc);
1303 shmdesc->refcnt = 1;
1304 shmdesc->writable = !stuff->readOnly;
1305 shmdesc->size = stuff->size;
1307 shmdesc->busfault = busfault_register_mmap(shmdesc->addr, shmdesc->size, ShmBusfaultNotify, shmdesc);
1308 if (!shmdesc->busfault) {
1310 munmap(shmdesc->addr, shmdesc->size);
1311 free(shmdesc);
1315 shmdesc->next = Shmsegs;
1316 Shmsegs = shmdesc;
1318 if (!AddResource(stuff->shmseg, ShmSegType, (void *) shmdesc)) {