#include <xinu.h>
#include <ramdisk.h>
Go to the source code of this file.
◆ lfsckfmt()
Definition at line 10 of file lfsckfmt.c.
References lfiblk::ib_next, kprintf(), LF_AREA_DIR, LF_DNULL, LF_INULL, lfibget(), lfscheck(), OK, panic(), read(), and SYSERR.
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);
48 nextib = iblock.ib_next;
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)
void lfibget(did32, ibid32, struct lfiblk *)
int int32
符号あり32ビット整数(int)
void panic(char *)
Panic状態に陥った旨のメッセージを表示し、全てのプロセスを停止させる。
unsigned int uint32
符号なし32ビット整数(unsigned int)
status lfscheck(struct lfdir *)