36 struct memblk *next, *prev, *block;
47 block = (
struct memblk *)blkaddr;
51 while ((next !=
NULL) && (next < block))
94 block->
mlength += next->mlength;
95 block->mnext = next->mnext;
#define NULL
連結リスト用のNULLポインタ
#define roundmb(x)
メモリブロックサイズ(8の倍数)にアドレスを変換するために、8の倍数で丸める。
syscall freemem(char *blkaddr, uint32 nbytes)
メモリブロックを解放し、ブロックを空きリストに戻す。
struct memblk * mnext
次のフリーメモリブロックへのポインタ
struct memblk memlist
フリーメモリリストの先頭
void * maxheap
最上位かつ正常なヒープアドレス
uint32 intmask
保存された割り込みマスク
uint32 mlength
memblk構造体のサイズを含むブロックサイズ
int32 syscall
システムコール関数 返り値の型
unsigned int uint32
符号なし32ビット整数(unsigned int)
intmask disable(void)
割り込み禁止(intr.Sに定義がある)