XINU
init.c
Go to the documentation of this file.
1 
5 #include <xinu.h>
6 
18 {
19  intmask mask; /* Saved interrupt mask */
20  struct dentry *devptr; /* Entry in device switch table */
21  int32 retval; /* Value to return to caller */
22 
23  mask = disable();
24  if (isbaddev(descrp))
25  {
26  restore(mask);
27  return SYSERR;
28  }
29  devptr = (struct dentry *)&devtab[descrp];
30  retval = (*devptr->dvinit)(devptr);
31  restore(mask);
32  return retval;
33 }
void restore(intmask)
全てのシステムヘッダファイルをインクルードする。
#define SYSERR
処理が失敗した場合
Definition: kernel.h:79
devcall(* dvinit)(struct dentry *)
Definition: conf.h:10
Definition: conf.h:6
syscall init(did32 descrp)
デバイスとデバイスドライバを初期化する。
Definition: init.c:17
struct dentry devtab[]
Definition: conf.c:11
uint32 intmask
保存された割り込みマスク
Definition: kernel.h:38
int int32
符号あり32ビット整数(int)
Definition: kernel.h:11
#define isbaddev(f)
デバイスIDを検証するマクロ。
Definition: device.h:15
int32 did32
デバイスID
Definition: kernel.h:28
int32 syscall
システムコール関数 返り値の型
Definition: kernel.h:47
intmask disable(void)
割り込み禁止(intr.Sに定義がある)