summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-12-10 02:07:47 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-12-10 02:10:42 +1100
commit1a3987240a547ba6e625c864f10a033858de4c65 (patch)
treee33806bca6827580d8d604eaa904d91ce54cca3a /src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c
parent88b56c454513f5097b7806ffaa5c313881861504 (diff)
nouveau: give resources a start property
Diffstat (limited to 'src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c')
-rw-r--r--src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c b/src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c
index 9919272ebe..e6481a20f2 100644
--- a/src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c
+++ b/src/mesa/drivers/dri/nouveau_winsys/nouveau_winsys.c
@@ -5,89 +5,6 @@
#include "pipe/nouveau/nouveau_winsys.h"
-int
-nouveau_resource_init(struct nouveau_resource **heap, int size)
-{
- struct nouveau_resource *r;
-
- r = calloc(1, sizeof(struct nouveau_resource));
- if (!r)
- return 1;
-
- r->start = 0;
- r->size = size;
- *heap = r;
- return 0;
-}
-
-int
-nouveau_resource_alloc(struct nouveau_resource *heap, int size, void *priv,
- struct nouveau_resource **res)
-{
- struct nouveau_resource *r;
-
- if (!heap || !size || !res || *res)
- return 1;
-
- while (heap) {
- if (!heap->in_use && heap->size >= size) {
- r = calloc(1, sizeof(struct nouveau_resource));
- if (!r)
- return 1;
-
- r->start = (heap->start + heap->size) - size;
- r->size = size;
- r->in_use = TRUE;
- r->priv = priv;
-
- heap->size -= size;
-
- r->next = heap->next;
- if (heap->next)
- heap->next->prev = r;
- r->prev = heap;
- heap->next = r;
-
- *res = r;
- return 0;
- }
-
- heap = heap->next;
- }
-
- return 1;
-}
-
-void
-nouveau_resource_free(struct nouveau_resource **res)
-{
- struct nouveau_resource *r;
-
- if (!res || !*res)
- return;
- r = *res;
-
- if (r->prev && !r->prev->in_use) {
- r->prev->next = r->next;
- if (r->next)
- r->next->prev = r->prev;
- r->prev->size += r->size;
- free(r);
- } else
- if (r->next && !r->next->in_use) {
- r->next->prev = r->prev;
- if (r->prev)
- r->prev->next = r->next;
- r->next->size += r->size;
- r->next->start = r->start;
- free(r);
- } else {
- r->in_use = FALSE;
- }
-
- *res = NULL;
-}
-
static int
nouveau_pipe_notifier_alloc(struct nouveau_winsys *nvws, int count,
struct nouveau_notifier **notify)