XINU
meminit.c
Go to the documentation of this file.
1 
5 #include <xinu.h>
6 
8 void *minheap;
10 void *maxheap;
11 
19 void meminit(void)
20 {
21  struct memblk *memptr; /* Memory block pointer */
22 
23  /* Initialize the minheap and maxheap variables */
24 
25  minheap = (void *)&end;
26  maxheap = (void *)MAXADDR;
27 
28  /* Initialize the memory list as one big block */
29 
30  memlist.mnext = (struct memblk *)minheap;
31  memptr = memlist.mnext;
32 
33  memptr->mnext = (struct memblk *)NULL;
34  memlist.mlength = memptr->mlength =
36 }
#define NULL
連結リスト用のNULLポインタ
Definition: kernel.h:68
メモリブロックを管理するための構造体。
Definition: memory.h:53
void * maxheap
ヒープの終了アドレス
Definition: meminit.c:10
全てのシステムヘッダファイルをインクルードする。
#define MAXADDR
0x80000000から始まる512MB RAMの最終アドレス
Definition: armv7a.h:55
struct memblk * mnext
次のフリーメモリブロックへのポインタ
Definition: memory.h:56
void * minheap
ヒープの開始アドレス
Definition: meminit.c:8
struct memblk memlist
フリーメモリリストの先頭
Definition: initialize.c:27
int end
プログラムの終了アドレス(リンカが追加する)
uint32 mlength
memblk構造体のサイズを含むブロックサイズ
Definition: memory.h:58
void meminit(void)
BeagleBone Black向けのフリーメモリリストを初期化する。
Definition: meminit.c:19
unsigned int uint32
符号なし32ビット整数(unsigned int)
Definition: kernel.h:15