summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-09-13 14:01:32 +0200
committerAlexander Larsson <alexl@redhat.com>2010-09-20 10:25:16 +0200
commita39d7a5ff58caa4404b27977bf05f3a25d7a2449 (patch)
treefd32ab525c5e38a7988aa2adb7bc909c28740548
parent7dadda980c0315e06989f09f72fabcff8afc1251 (diff)
Drop DevResDynamic
Now that all DevRes are dynamic we can just put the data in DevRes.
-rw-r--r--display/qxldd.h12
-rw-r--r--display/res.c49
2 files changed, 24 insertions, 37 deletions
diff --git a/display/qxldd.h b/display/qxldd.h
index 9133b37..5588170 100644
--- a/display/qxldd.h
+++ b/display/qxldd.h
@@ -145,13 +145,6 @@ typedef struct PMemSlot {
QXLPHYSICAL high_bits;
} PMemSlot;
-typedef struct DevResDynamic {
- CacheImage cache_image_pool[IMAGE_POOL_SIZE];
- Ring cache_image_lru;
- Ring cursors_lru;
- Ring palette_lru;
-} DevResDynamic;
-
typedef struct MspaceInfo {
mspace _mspace;
UINT8 *mspace_start;
@@ -190,7 +183,10 @@ typedef struct DevRes {
UINT64 free_outputs;
UINT32 update_id;
- DevResDynamic *dynamic;
+ CacheImage cache_image_pool[IMAGE_POOL_SIZE];
+ Ring cache_image_lru;
+ Ring cursors_lru;
+ Ring palette_lru;
ImageKey image_key_lookup[IMAGE_KEY_HASH_SIZE];
struct CacheImage *image_cache[IMAGE_HASH_SIZE];
diff --git a/display/res.c b/display/res.c
index f635f82..7515424 100644
--- a/display/res.c
+++ b/display/res.c
@@ -383,10 +383,6 @@ void CleanGlobalRes()
for (i = 0; i < num_global_res; ++i) {
res = global_res[i];
if (res != NULL) {
- if (res->dynamic) {
- EngFreeMem(res->dynamic);
- res->dynamic = NULL;
- }
if (res->surfaces_info) {
EngFreeMem(res->surfaces_info);
res->surfaces_info = NULL;
@@ -428,11 +424,6 @@ static void InitRes(PDev *pdev)
{
UINT32 i;
- pdev->Res->dynamic = EngAllocMem(FL_ZERO_MEMORY, sizeof(DevResDynamic), ALLOC_TAG);
- if (!pdev->Res->dynamic) {
- PANIC(pdev, "Res dynamic allocation failed\n");
- }
-
pdev->Res->surfaces_info = (SurfaceInfo *)EngAllocMem(FL_ZERO_MEMORY,
sizeof(SurfaceInfo) * pdev->n_surfaces,
ALLOC_TAG);
@@ -456,22 +447,22 @@ static void InitRes(PDev *pdev)
RtlZeroMemory(pdev->Res->image_key_lookup,
sizeof(pdev->Res->image_key_lookup));
- RtlZeroMemory(pdev->Res->dynamic->cache_image_pool,
- sizeof(pdev->Res->dynamic->cache_image_pool));
- RingInit(&pdev->Res->dynamic->cache_image_lru);
+ RtlZeroMemory(pdev->Res->cache_image_pool,
+ sizeof(pdev->Res->cache_image_pool));
+ RingInit(&pdev->Res->cache_image_lru);
for (i = 0; i < IMAGE_POOL_SIZE; i++) {
- RingAdd(pdev, &pdev->Res->dynamic->cache_image_lru,
- &pdev->Res->dynamic->cache_image_pool[i].lru_link);
+ RingAdd(pdev, &pdev->Res->cache_image_lru,
+ &pdev->Res->cache_image_pool[i].lru_link);
}
RtlZeroMemory(pdev->Res->image_cache, sizeof(pdev->Res->image_cache));
RtlZeroMemory(pdev->Res->cursor_cache, sizeof(pdev->Res->cursor_cache));
- RingInit(&pdev->Res->dynamic->cursors_lru);
+ RingInit(&pdev->Res->cursors_lru);
pdev->Res->num_cursors = 0;
pdev->Res->last_cursor_id = 0;
RtlZeroMemory(pdev->Res->palette_cache, sizeof(pdev->Res->palette_cache));
- RingInit(&pdev->Res->dynamic->palette_lru);
+ RingInit(&pdev->Res->palette_lru);
pdev->Res->num_palettes = 0;
pdev->Res->driver = pdev->driver;
@@ -1347,7 +1338,7 @@ static void ImageCacheRemove(PDev *pdev, CacheImage *cache_image)
static CacheImage *AllocCacheImage(PDev* pdev)
{
RingItem *item;
- while (!(item = RingGetTail(pdev, &pdev->Res->dynamic->cache_image_lru))) {
+ while (!(item = RingGetTail(pdev, &pdev->Res->cache_image_lru))) {
/* malloc_sem protects release_ring too */
EngAcquireSemaphore(pdev->Res->malloc_sem);
if (pdev->Res->free_outputs == 0 &&
@@ -1435,7 +1426,7 @@ static _inline InternalPalette *PaletteCacheGet(PDev *pdev, UINT32 unique)
while (now) {
if (now->palette.unique == unique) {
RingRemove(pdev, &now->lru_link);
- RingAdd(pdev, &pdev->Res->dynamic->palette_lru, &now->lru_link);
+ RingAdd(pdev, &pdev->Res->palette_lru, &now->lru_link);
now->refs++;
DEBUG_PRINT((pdev, 13, "%s: found\n", __FUNCTION__));
return now;
@@ -1458,8 +1449,8 @@ static _inline void PaletteCacheAdd(PDev *pdev, InternalPalette *palette)
}
if (pdev->Res->num_palettes == PALETTE_CACHE_SIZE) {
- ASSERT(pdev, RingGetTail(pdev, &pdev->Res->dynamic->palette_lru));
- PaletteCacheRemove(pdev, CONTAINEROF(RingGetTail(pdev, &pdev->Res->dynamic->palette_lru),
+ ASSERT(pdev, RingGetTail(pdev, &pdev->Res->palette_lru));
+ PaletteCacheRemove(pdev, CONTAINEROF(RingGetTail(pdev, &pdev->Res->palette_lru),
InternalPalette, lru_link));
}
@@ -1467,7 +1458,7 @@ static _inline void PaletteCacheAdd(PDev *pdev, InternalPalette *palette)
palette->next = pdev->Res->palette_cache[key];
pdev->Res->palette_cache[key] = palette;
- RingAdd(pdev, &pdev->Res->dynamic->palette_lru, &palette->lru_link);
+ RingAdd(pdev, &pdev->Res->palette_lru, &palette->lru_link);
palette->refs++;
pdev->Res->num_palettes++;
DEBUG_PRINT((pdev, 13, "%s: done\n", __FUNCTION__));
@@ -1512,7 +1503,7 @@ static void FreeQuicImage(PDev *pdev, Resource *res) // todo: defer
internal = (InternalImage *)res->res;
if (internal->cache) {
- RingAdd(pdev, &pdev->Res->dynamic->cache_image_lru, &internal->cache->lru_link);
+ RingAdd(pdev, &pdev->Res->cache_image_lru, &internal->cache->lru_link);
internal->cache->image = NULL;
}
@@ -1668,7 +1659,7 @@ static void FreeBitmapImage(PDev *pdev, Resource *res) // todo: defer
internal = (InternalImage *)res->res;
if (internal->cache) {
- RingAdd(pdev, &pdev->Res->dynamic->cache_image_lru, &internal->cache->lru_link);
+ RingAdd(pdev, &pdev->Res->cache_image_lru, &internal->cache->lru_link);
internal->cache->image = NULL;
}
@@ -1991,7 +1982,7 @@ static CacheImage *GetChachImage(PDev *pdev, SURFOBJ *surf, XLATEOBJ *color_tran
cache_image->width = surf->sizlBitmap.cx;
cache_image->height = surf->sizlBitmap.cy;
ImageCacheAdd(pdev, cache_image);
- RingAdd(pdev, &pdev->Res->dynamic->cache_image_lru, &cache_image->lru_link);
+ RingAdd(pdev, &pdev->Res->cache_image_lru, &cache_image->lru_link);
DEBUG_PRINT((pdev, 11, "%s: ImageCacheAdd %u\n", __FUNCTION__, key));
}
return NULL;
@@ -2289,7 +2280,7 @@ BOOL QXLGetAlphaBitmap(PDev *pdev, QXLDrawable *drawable, QXLPHYSICAL *image_phy
cache_image->width = surf->sizlBitmap.cx;
cache_image->height = surf->sizlBitmap.cy;
ImageCacheAdd(pdev, cache_image);
- RingAdd(pdev, &pdev->Res->dynamic->cache_image_lru, &cache_image->lru_link);
+ RingAdd(pdev, &pdev->Res->cache_image_lru, &cache_image->lru_link);
DEBUG_PRINT((pdev, 11, "%s: ImageCacheAdd %u\n", __FUNCTION__, key));
}
@@ -2730,8 +2721,8 @@ static void CursorCacheAdd(PDev *pdev, InternalCursor *cursor)
}
if (pdev->Res->num_cursors == CURSOR_CACHE_SIZE) {
- ASSERT(pdev, RingGetTail(pdev, &pdev->Res->dynamic->cursors_lru));
- CursorCacheRemove(pdev, CONTAINEROF(RingGetTail(pdev, &pdev->Res->dynamic->cursors_lru),
+ ASSERT(pdev, RingGetTail(pdev, &pdev->Res->cursors_lru));
+ CursorCacheRemove(pdev, CONTAINEROF(RingGetTail(pdev, &pdev->Res->cursors_lru),
InternalCursor, lru_link));
}
@@ -2739,7 +2730,7 @@ static void CursorCacheAdd(PDev *pdev, InternalCursor *cursor)
cursor->next = pdev->Res->cursor_cache[key];
pdev->Res->cursor_cache[key] = cursor;
- RingAdd(pdev, &pdev->Res->dynamic->cursors_lru, &cursor->lru_link);
+ RingAdd(pdev, &pdev->Res->cursors_lru, &cursor->lru_link);
GET_RES((Resource *)((UINT8 *)cursor - sizeof(Resource)));
pdev->Res->num_cursors++;
}
@@ -2759,7 +2750,7 @@ static InternalCursor *CursorCacheGet(PDev *pdev, HSURF hsurf, UINT32 unique)
if (now->hsurf == hsurf) {
if (now->unique == unique) {
RingRemove(pdev, &now->lru_link);
- RingAdd(pdev, &pdev->Res->dynamic->cursors_lru, &now->lru_link);
+ RingAdd(pdev, &pdev->Res->cursors_lru, &now->lru_link);
return now;
}
CursorCacheRemove(pdev, now);