summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/mm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/mm.h')
-rw-r--r--src/mesa/main/mm.h66
1 files changed, 46 insertions, 20 deletions
diff --git a/src/mesa/main/mm.h b/src/mesa/main/mm.h
index 83a4ac8c74d..33c986b4c7d 100644
--- a/src/mesa/main/mm.h
+++ b/src/mesa/main/mm.h
@@ -19,11 +19,21 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
*/
-#ifndef MM_INC
-#define MM_INC
+
+/**
+ * Memory manager code. Primarily used by device drivers to manage texture
+ * heaps, etc.
+ */
+
+
+#ifndef MM_H
+#define MM_H
+
+
+#include "imports.h"
+
struct mem_block_t {
struct mem_block_t *next;
@@ -33,25 +43,39 @@ struct mem_block_t {
unsigned int free:1;
unsigned int reserved:1;
};
+
typedef struct mem_block_t TMemBlock;
+
typedef struct mem_block_t *PMemBlock;
/* a heap is just the first block in a chain */
typedef struct mem_block_t memHeap_t;
-static __inline__ int mmBlockSize(PMemBlock b)
-{ return b->size; }
-static __inline__ int mmOffset(PMemBlock b)
-{ return b->ofs; }
+/* XXX are these needed? */
+#if 0
+static INLINE int
+mmBlockSize(PMemBlock b)
+{
+ return b->size;
+}
-/*
+static INLINE int
+mmOffset(PMemBlock b)
+{
+ return b->ofs;
+}
+#endif
+
+
+
+/**
* input: total size in bytes
* return: a heap pointer if OK, NULL if error
*/
-memHeap_t *mmInit( int ofs, int size );
+extern memHeap_t *mmInit(int ofs, int size);
-/*
+/**
* Allocate 'size' bytes with 2^align2 bytes alignment,
* restrict the search to free memory after 'startSearch'
* depth and back buffers should be in different 4mb banks
@@ -61,29 +85,31 @@ memHeap_t *mmInit( int ofs, int size );
* startSearch = linear offset from start of heap to begin search
* return: pointer to the allocated block, 0 if error
*/
-PMemBlock mmAllocMem( memHeap_t *heap, int size, int align2,
- int startSearch );
+extern PMemBlock mmAllocMem(memHeap_t *heap, int size, int align2,
+ int startSearch);
-/*
+/**
* Free block starts at offset
* input: pointer to a block
* return: 0 if OK, -1 if error
*/
-int mmFreeMem( PMemBlock b );
+extern int mmFreeMem(PMemBlock b);
-/*
+/**
* Free block starts at offset
* input: pointer to a heap, start offset
* return: pointer to a block
*/
-PMemBlock mmFindBlock( memHeap_t *heap, int start);
+extern PMemBlock mmFindBlock(memHeap_t *heap, int start);
-/*
+/**
* destroy MM
*/
-void mmDestroy( memHeap_t *mmInit );
+extern void mmDestroy(memHeap_t *mmInit);
-/* For debuging purpose. */
-void mmDumpMemInfo( memHeap_t *mmInit );
+/**
+ * For debuging purpose.
+ */
+extern void mmDumpMemInfo(const memHeap_t *mmInit);
#endif