X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Futil%2Fu_mm.c;h=c15f62dd731462554c9496f86c664ba7ac6c0837;hp=45ce257b5e5102154e2007ea8643c9ea874c8acb;hb=35fab1ba3395604f748cd13ba82991372ca0cae7;hpb=32e6be6362e44609d36c2fb20a4c858f57c908fb diff --git a/src/gallium/auxiliary/util/u_mm.c b/src/gallium/auxiliary/util/u_mm.c index 45ce257b5e5..c15f62dd731 100644 --- a/src/gallium/auxiliary/util/u_mm.c +++ b/src/gallium/auxiliary/util/u_mm.c @@ -24,7 +24,7 @@ #include "pipe/p_compiler.h" -#include "pipe/p_debug.h" +#include "util/u_debug.h" #include "util/u_memory.h" #include "util/u_mm.h" @@ -33,30 +33,39 @@ void u_mmDumpMemInfo(const struct mem_block *heap) { - debug_printf("Memory heap %p:\n", (void *)heap); - if (heap == 0) { + debug_printf("Memory heap %p:\n", (void *) heap); + if (heap == NULL) { debug_printf(" heap == 0\n"); - } else { + } + else { const struct mem_block *p; - - for(p = heap->next; p != heap; p = p->next) { - debug_printf(" Offset:%08x, Size:%08x, %c%c\n",p->ofs,p->size, - p->free ? 'F':'.', - p->reserved ? 'R':'.'); + int total_used = 0, total_free = 0; + + for (p = heap->next; p != heap; p = p->next) { + debug_printf(" Offset:%08x, Size:%08x, %c%c\n", p->ofs, p->size, + p->free ? 'F':'.', + p->reserved ? 'R':'.'); + if (p->free) + total_free += p->size; + else + total_used += p->size; } + debug_printf("'\nMemory stats: total = %d, used = %d, free = %d\n", + total_used + total_free, total_used, total_free); debug_printf("\nFree list:\n"); - for(p = heap->next_free; p != heap; p = p->next_free) { - debug_printf(" FREE Offset:%08x, Size:%08x, %c%c\n",p->ofs,p->size, - p->free ? 'F':'.', - p->reserved ? 'R':'.'); + for (p = heap->next_free; p != heap; p = p->next_free) { + debug_printf(" FREE Offset:%08x, Size:%08x, %c%c\n", p->ofs, p->size, + p->free ? 'F':'.', + p->reserved ? 'R':'.'); } } debug_printf("End of memory blocks\n"); } + struct mem_block * u_mmInit(int ofs, int size) { @@ -97,7 +106,7 @@ u_mmInit(int ofs, int size) static struct mem_block * SliceBlock(struct mem_block *p, int startofs, int size, - int reserved, int alignment) + int reserved, UNUSED int alignment) { struct mem_block *newblock; @@ -174,7 +183,10 @@ u_mmAllocMem(struct mem_block *heap, int size, int align2, int startSearch) assert(size >= 0); assert(align2 >= 0); - assert(align2 <= 12); /* sanity check, 2^12 (4KB) enough? */ + /* Make sure that a byte alignment isn't getting passed for our + * power-of-two alignment arg. + */ + assert(align2 < 32); if (!heap || align2 < 0 || size <= 0) return NULL; @@ -215,7 +227,7 @@ u_mmFindBlock(struct mem_block *heap, int start) } -static INLINE int +static inline int Join2Blocks(struct mem_block *p) { /* XXX there should be some assertions here */