28 panic(
"cannot read directory");
30 kprintf(
"Have read directory from disk device %d\n\r",
36 panic(
"directory does not contain a Xinu file system");
38 kprintf(
"Directory corresponds to a local Xinu file system\n");
43 nextib = dir.lfd_ifree;
44 kprintf(
"initial index block is %d\n\r", nextib);
50 ibsectors = (lfiblks + 6) /7;
51 kprintf(
"Found %d index blocks (%d sectors)\n\r", lfiblks, ibsectors);
56 nextdb = dir.lfd_dfree;
57 kprintf(
"initial data block is %d\n\r", nextdb);
60 read(disk, (
char *)&dblock, nextdb);
61 nextdb = dblock.lf_nextdb;
63 kprintf(
"Found %d data blocks\n\r", dblks);
syscall kprintf(char *fmt,...)
ポーリングI/Oを使用して、フォーマットされた文字列をコンソールに出力する。
int32 dbid32
データブロックID(ファイルシステムで使用する)
int32 ibid32
ブロックIDのインデックス(ファイルシステムで使用する)
syscall read(did32, char *, uint32)
int32 status
ステータスを意味する返り値の型(OK/SYSERR)
void lfibget(did32, ibid32, struct lfiblk *)
status lfsckfmt(did32 disk)
int int32
符号あり32ビット整数(int)
void panic(char *)
Panic状態に陥った旨のメッセージを表示し、全てのプロセスを停止させる。
unsigned int uint32
符号なし32ビット整数(unsigned int)
status lfscheck(struct lfdir *)