Lines Matching full:linear
152 xf86FreeOffscreenLinear(FBLinearPtr linear) in xf86FreeOffscreenLinear() argument
156 if (!linear) in xf86FreeOffscreenLinear()
163 (FBManagerFuncsPtr) dixLookupPrivate(&linear->pScreen->devPrivates, in xf86FreeOffscreenLinear()
167 (*funcs->FreeOffscreenLinear) (linear); in xf86FreeOffscreenLinear()
278 FBLinear linear; member
799 (*pLink->linear.RemoveLinearCallback) (&(pLink->linear)); in LinearRemoveCBWrapper()
818 pLink->linear.offset, in DumpDebug()
819 pLink->linear.size, in DumpDebug()
820 pLink->free ? "Free" : "Used", pLink->area ? "Area" : "Linear"); in DumpDebug()
831 FBLinearLinkPtr linear = NULL; in AllocateLinear() local
841 linear = offman->LinearAreas; in AllocateLinear()
842 while (linear) { in AllocateLinear()
844 if (!linear->area && linear->free) { in AllocateLinear()
845 offset = linear->linear.offset; in AllocateLinear()
850 if (end <= (linear->linear.offset + linear->linear.size)) in AllocateLinear()
853 linear = linear->next; in AllocateLinear()
855 if (!linear) in AllocateLinear()
859 if (offset > linear->linear.offset) { in AllocateLinear()
864 newlink->linear.offset = offset; in AllocateLinear()
865 newlink->linear.size = in AllocateLinear()
866 linear->linear.size - (offset - linear->linear.offset); in AllocateLinear()
868 newlink->next = linear->next; in AllocateLinear()
869 linear->linear.size -= newlink->linear.size; in AllocateLinear()
870 linear->next = newlink; in AllocateLinear()
871 linear = newlink; in AllocateLinear()
875 if (size < linear->linear.size) { in AllocateLinear()
880 newlink->linear.offset = offset + size; in AllocateLinear()
881 newlink->linear.size = linear->linear.size - size; in AllocateLinear()
883 newlink->next = linear->next; in AllocateLinear()
884 linear->linear.size = size; in AllocateLinear()
885 linear->next = newlink; in AllocateLinear()
889 linear->linear.granularity = granularity; in AllocateLinear()
890 linear->free = 0; in AllocateLinear()
891 linear->linear.pScreen = pScreen; in AllocateLinear()
892 linear->linear.MoveLinearCallback = NULL; in AllocateLinear()
893 linear->linear.RemoveLinearCallback = NULL; in AllocateLinear()
894 linear->linear.devPrivate.ptr = NULL; in AllocateLinear()
898 return &(linear->linear); in AllocateLinear()
912 FBLinearPtr linear = NULL; in localAllocateOffscreenLinear() local
919 /* Try to allocate from linear memory first...... */ in localAllocateOffscreenLinear()
920 DebugF("ALLOCATING LINEAR\n"); in localAllocateOffscreenLinear()
921 if ((linear = AllocateLinear(offman, length, gran, privData))) in localAllocateOffscreenLinear()
922 return linear; in localAllocateOffscreenLinear()
929 /* No linear available, so try and pinch some from the XY areas */ in localAllocateOffscreenLinear()
965 linear = &(link->linear); in localAllocateOffscreenLinear()
966 linear->pScreen = pScreen; in localAllocateOffscreenLinear()
967 linear->size = h * w; in localAllocateOffscreenLinear()
968 linear->offset = (pitch * area->box.y1) + area->box.x1; in localAllocateOffscreenLinear()
970 linear->offset = ((linear->offset + gran - 1) / gran) * gran; in localAllocateOffscreenLinear()
971 linear->granularity = gran; in localAllocateOffscreenLinear()
972 linear->MoveLinearCallback = moveCB; in localAllocateOffscreenLinear()
973 linear->RemoveLinearCallback = removeCB; in localAllocateOffscreenLinear()
974 linear->devPrivate.ptr = privData; in localAllocateOffscreenLinear()
981 return linear; in localAllocateOffscreenLinear()
985 localFreeOffscreenLinear(FBLinearPtr linear) in localFreeOffscreenLinear() argument
989 ScreenPtr pScreen = linear->pScreen; in localFreeOffscreenLinear()
997 while (&(pLink->linear) != linear) { in localFreeOffscreenLinear()
1021 pLink->linear.size += p->linear.size; in localFreeOffscreenLinear()
1030 pLinkPrev->linear.size += p->linear.size; in localFreeOffscreenLinear()
1036 DebugF("FREEING LINEAR\n"); in localFreeOffscreenLinear()
1053 while (&(pLink->linear) != resize) { in localResizeOffscreenLinear()
1060 from XY to linear when available. For now if it was XY, we keep in localResizeOffscreenLinear()
1087 /* TODO!!!! resize the linear area */ in localResizeOffscreenLinear()
1110 if (pLink->linear.size > pLinkRet->linear.size) in localQueryLargestOffscreenLinear()
1117 *size = pLinkRet->linear.size; in localQueryLargestOffscreenLinear()
1354 FBLinearPtr linear; in xf86InitFBManagerLinear() local
1373 linear = &(link->linear); in xf86InitFBManagerLinear()
1374 linear->pScreen = pScreen; in xf86InitFBManagerLinear()
1375 linear->size = size; in xf86InitFBManagerLinear()
1376 linear->offset = offset; in xf86InitFBManagerLinear()
1377 linear->granularity = 0; in xf86InitFBManagerLinear()
1378 linear->MoveLinearCallback = NULL; in xf86InitFBManagerLinear()
1379 linear->RemoveLinearCallback = NULL; in xf86InitFBManagerLinear()
1380 linear->devPrivate.ptr = NULL; in xf86InitFBManagerLinear()
1387 real linear functions instead */