XINU
lfdbfree.c
Go to the documentation of this file.
1 /* lfdbfree.c - lfdbfree */
2 
3 #include <xinu.h>
4 
5 /*------------------------------------------------------------------------
6  * lfdbfree - Free a data block given its block number (assumes
7  * directory mutex is held)
8  *------------------------------------------------------------------------
9  */
11  did32 diskdev, /* ID of disk device to use */
12  dbid32 dnum /* ID of data block to free */
13  )
14 {
15  struct lfdir *dirptr; /* Pointer to directory */
16  struct lfdbfree buf; /* Buffer to hold data block */
17 
18  dirptr = &Lf_data.lf_dir;
19  buf.lf_nextdb = dirptr->lfd_dfree;
20  dirptr->lfd_dfree = dnum;
21  write(diskdev, (char *)&buf, dnum);
22  write(diskdev, (char *)dirptr, LF_AREA_DIR);
23 
24  return OK;
25 }
int32 dbid32
データブロックID(ファイルシステムで使用する)
Definition: kernel.h:42
dbid32 lf_nextdb
Definition: lfilesys.h:107
全てのシステムヘッダファイルをインクルードする。
struct lfdata Lf_data
Definition: lfsinit.c:5
#define OK
処理が成功した場合
Definition: kernel.h:77
int32 status
ステータスを意味する返り値の型(OK/SYSERR)
Definition: kernel.h:57
#define LF_AREA_DIR
Definition: lfilesys.h:67
status lfdbfree(did32 diskdev, dbid32 dnum)
Definition: lfdbfree.c:10
syscall write(did32, char *, uint32)
Definition: write.c:9
struct lfdir lf_dir
Definition: lfilesys.h:134
int32 did32
デバイスID
Definition: kernel.h:28