alHeapAlloc.htm
1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.03j">
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">alHeapAlloc(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
alHeapAlloc
<P>
→ NINTENDO64上のオーディオヒープからメモリへアロケーションする。
<BR>
<P>
<B>構文<BR>
</B>
<P>
#include <libaudio.h>
<P>
void *alHeapAlloc(ALHeap *hp, s32 num, s32 size);
<BR>
<P>
<B>パラメータ<BR>
</B>
<P>
<B>hp</B> ALHeap構造体へのポインタ
<P>
<B>num</B> アロケーションを行う記録数
<P>
<B>size</B> アロケーションする記録のバイト単位でのサイズ
<BR>
</FONT>
<P>
<B>説明<BR>
</B>
<P>
<B>alHeapAlloc</B>はオーディオDRAMヒープからキャッシュ整列されたメモリへのアロケーションに使います。
<BR>
<P>
libultraのデバッグバージョン(libultra_d)では<B>alHeapAlloc</B>はヒープとの一致を確認するために<A HREF="alHeapCheck.htm" >alHeapCheck</A>を行うためのデバッグ情報をインサートします。
<BR>
<P>
ほとんどのメモリ管理手法ではメモリ領域の管理を容易にするための領域ヘッダー用に追加メモリをアロケートします。デバッグバージョン以外の<B>alHeapAlloc</B>ではキャッシュ整列のためにリクエストされ、必要とされる以外のメモリをアロケートしません。結果として、オーディオヒープからアロケートされたメモリはフリーにはなり得ません。
<BR>
<P>
キャッシュ整列はRCPでシェアされるエレメントを含む構造体にとって重要です。
<BR>
<P>
<B>参照<BR>
</B>
<P>
<A HREF="alHeapInit.htm" >alHeapInit(3P)</A>、<A HREF="alHeapCheck.htm" >alHeapCheck(3P)</A>
<BR>
<P>
</BODY>
</HTML>