XINU
device
lfs
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
*/
10
status
lfdbfree
(
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
}
dbid32
int32 dbid32
データブロックID(ファイルシステムで使用する)
Definition:
kernel.h:42
lfdbfree::lf_nextdb
dbid32 lf_nextdb
Definition:
lfilesys.h:107
xinu.h
全てのシステムヘッダファイルをインクルードする。
Lf_data
struct lfdata Lf_data
Definition:
lfsinit.c:5
lfdbfree
Definition:
lfilesys.h:106
lfdir
Definition:
lfilesys.h:114
OK
#define OK
処理が成功した場合
Definition:
kernel.h:77
status
int32 status
ステータスを意味する返り値の型(OK/SYSERR)
Definition:
kernel.h:57
LF_AREA_DIR
#define LF_AREA_DIR
Definition:
lfilesys.h:67
lfdbfree
status lfdbfree(did32 diskdev, dbid32 dnum)
Definition:
lfdbfree.c:10
write
syscall write(did32, char *, uint32)
Definition:
write.c:9
lfdata::lf_dir
struct lfdir lf_dir
Definition:
lfilesys.h:134
did32
int32 did32
デバイスID
Definition:
kernel.h:28
Generated by
1.8.13