XINU
device
rfs
rflseek.c
Go to the documentation of this file.
1
/* rflseek.c - rflseek */
2
3
#include <
xinu.h
>
4
5
/*------------------------------------------------------------------------
6
* rflseek - Change the current position in an open file
7
*------------------------------------------------------------------------
8
*/
9
devcall
rflseek
(
10
struct
dentry
*devptr,
/* Entry in device switch table */
11
uint32
pos
/* New file position */
12
)
13
{
14
struct
rflcblk
*rfptr;
/* Pointer to control block */
15
16
/* Wait for exclusive access */
17
18
wait
(
Rf_data
.
rf_mutex
);
19
20
/* Verify remote file device is open */
21
22
rfptr = &
rfltab
[devptr->
dvminor
];
23
if
(rfptr->
rfstate
==
RF_FREE
) {
24
signal
(
Rf_data
.
rf_mutex
);
25
return
SYSERR
;
26
}
27
28
/* Set the new position */
29
30
rfptr->
rfpos
= pos;
31
signal
(
Rf_data
.
rf_mutex
);
32
return
OK
;
33
}
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
rflseek
devcall rflseek(struct dentry *devptr, uint32 pos)
Definition:
rflseek.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
rflcblk::rfpos
uint32 rfpos
Definition:
rfilesys.h:53
wait
syscall wait(sid32)
Definition:
wait.c:9
signal
syscall signal(sid32)
セマフォにシグナルを送り、待機プロセスがある場合は解除する。
Definition:
signal.c:18
uint32
unsigned int uint32
符号なし32ビット整数(unsigned int)
Definition:
kernel.h:15
devcall
int32 devcall
デバイスコール関数 返り値の型
Definition:
kernel.h:49
Generated by
1.8.13