XINU
device
nam
namopen.c
Go to the documentation of this file.
1
/* namopen.c - namopen */
2
3
#include <
xinu.h
>
4
5
/*------------------------------------------------------------------------
6
* namopen - Open a file or device based on the name
7
*------------------------------------------------------------------------
8
*/
9
devcall
namopen
(
10
struct
dentry
*devptr,
/* Entry in device switch table */
11
char
*name,
/* Name to open */
12
char
*mode
/* Mode argument */
13
)
14
{
15
char
newname[
NM_MAXLEN
];
/* Name with prefix replaced */
16
did32
newdev
;
/* Device ID after mapping */
17
18
/* Use namespace to map name to a new name and new descriptor */
19
20
newdev =
nammap
(name, newname, devptr->
dvnum
);
21
22
if
(newdev ==
SYSERR
) {
23
return
SYSERR
;
24
}
25
26
/* Open underlying device and return status */
27
28
return
open
(newdev, newname, mode);
29
}
xinu.h
全てのシステムヘッダファイルをインクルードする。
SYSERR
#define SYSERR
処理が失敗した場合
Definition:
kernel.h:79
nammap
devcall nammap(char *, char[], did32)
newdev
void newdev(char *)
Definition:
y.tab.c:2163
dentry
Definition:
conf.h:6
NM_MAXLEN
#define NM_MAXLEN
ファイル名の最大サイズ
Definition:
name.h:11
dentry::dvnum
int32 dvnum
Definition:
conf.h:7
did32
int32 did32
デバイスID
Definition:
kernel.h:28
open
syscall open(did32, char *, char *)
Definition:
open.c:9
namopen
devcall namopen(struct dentry *devptr, char *name, char *mode)
Definition:
namopen.c:9
devcall
int32 devcall
デバイスコール関数 返り値の型
Definition:
kernel.h:49
Generated by
1.8.13