XINU
device
rfs
rflclose.c
Go to the documentation of this file.
1
/* rflclose.c - rflclose */
2
3
#include <
xinu.h
>
4
5
/*------------------------------------------------------------------------
6
* rflclose - Close a remote file device
7
*------------------------------------------------------------------------
8
*/
9
devcall
rflclose
(
10
struct
dentry
*devptr
/* Entry in device switch table */
11
)
12
{
13
struct
rflcblk
*rfptr;
/* Pointer to control block */
14
15
/* Wait for exclusive access */
16
17
wait
(
Rf_data
.
rf_mutex
);
18
19
/* Verify remote file device is open */
20
21
rfptr = &
rfltab
[devptr->
dvminor
];
22
if
(rfptr->
rfstate
==
RF_FREE
) {
23
signal
(
Rf_data
.
rf_mutex
);
24
return
SYSERR
;
25
}
26
27
/* Mark device closed */
28
29
rfptr->
rfstate
=
RF_FREE
;
30
signal
(
Rf_data
.
rf_mutex
);
31
return
OK
;
32
}
dentry::dvminor
int32 dvminor
Definition:
conf.h:8
xinu.h
全てのシステムヘッダファイルをインクルードする。
SYSERR
#define SYSERR
処理が失敗した場合
Definition:
kernel.h:79
OK
#define OK
処理が成功した場合
Definition:
kernel.h:77
rfltab
struct rflcblk rfltab[]
Definition:
rflinit.c:5
rflcblk::rfstate
int32 rfstate
Definition:
rfilesys.h:50
dentry
Definition:
conf.h:6
Rf_data
struct rfdata Rf_data
Definition:
rfsinit.c:10
rflclose
devcall rflclose(struct dentry *devptr)
Definition:
rflclose.c:9
rflcblk
Definition:
rfilesys.h:49
rfdata::rf_mutex
sid32 rf_mutex
Definition:
rfilesys.h:38
RF_FREE
#define RF_FREE
Definition:
rfilesys.h:46
wait
syscall wait(sid32)
Definition:
wait.c:9
signal
syscall signal(sid32)
セマフォにシグナルを送り、待機プロセスがある場合は解除する。
Definition:
signal.c:18
devcall
int32 devcall
デバイスコール関数 返り値の型
Definition:
kernel.h:49
Generated by
1.8.13