nuauheap.c 3 KB
/*======================================================================*/
/*		NuSystem						*/
/*		nuaumgr.c						*/
/*									*/
/*		Copyright (C) 1998, NINTENDO Co,Ltd.			*/
/*	98/12/21	Created  by K.Ohki(SLANP)			*/
/*======================================================================*/
/* $Id: nuauheap.c,v 1.1.1.1 2002/10/30 02:07:09 blythe Exp $		*/
/*======================================================================*/
#include <nusys.h>
#include <nualsgi.h>

ALHeap		nuAuHeap;			/* Heap構造体 */

/*----------------------------------------------------------------------*/
/*      nuAuHeapInit - メモリの初期化                                 	*/
/*                                                                      */
/*      IN:     *heap	ヒープ構造体					*/
/*		*baffer	ヒープバッファ位置				*/
/*		length	ヒープサイズ					*/
/*      RET:    確保したヒープのポインタ                                */
/*----------------------------------------------------------------------*/
void nuAuHeapInit(ALHeap* hp, u8* base, s32 len)
{
    alHeapInit(hp, base, len);
}

/*----------------------------------------------------------------------*/
/*      nuAuHeapAlloc - メモリの確保                                 	*/
/*                                                                      */
/*      オーディオヒープ領域の確保。                                    */
/*                                                                      */
/*      IN:     length                                                  */
/*      RET:    確保したヒープのポインタ                                */
/*----------------------------------------------------------------------*/
void* nuAuHeapAlloc(s32 length)
{
    return alHeapAlloc(&nuAuHeap, 1, length);
}

/*----------------------------------------------------------------------*/
/*      nuAuHeapGetFree - ヒープの残りサイズの取得                   	*/
/*                                                                      */
/*      オーディオヒープ領域の残り領域のサイズを取得します。            */
/*                                                                      */
/*      IN:     無し                                                    */
/*      RET:    ヒープ残りサイズ	                                */
/*----------------------------------------------------------------------*/
s32 nuAuHeapGetFree(void)
{
    return (nuAuHeap.len - nuAuHeapGetUsed());
}

/*----------------------------------------------------------------------*/
/*      nuAuHeapGetUsed - ヒープの使用サイズの取得			*/
/*                                                                      */
/*      オーディオヒープ領域の使用サイズを取得します。                  */
/*                                                                      */
/*      IN:     length                                                  */
/*      RET:    使用したヒープのサイズ					*/
/*----------------------------------------------------------------------*/
s32 nuAuHeapGetUsed(void)
{
    return ((s32)nuAuHeap.cur - (s32)nuAuHeap.base);
}