XINU
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  */
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 }
全てのシステムヘッダファイルをインクルードする。
#define SYSERR
処理が失敗した場合
Definition: kernel.h:79
devcall nammap(char *, char[], did32)
void newdev(char *)
Definition: y.tab.c:2163
Definition: conf.h:6
#define NM_MAXLEN
ファイル名の最大サイズ
Definition: name.h:11
int32 dvnum
Definition: conf.h:7
int32 did32
デバイスID
Definition: kernel.h:28
syscall open(did32, char *, char *)
Definition: open.c:9
devcall namopen(struct dentry *devptr, char *name, char *mode)
Definition: namopen.c:9
int32 devcall
デバイスコール関数 返り値の型
Definition: kernel.h:49