1 /* This file contains the definition of the boot image info tables.
4 * Nov 22, 2009: Created (Cristiano Giuffrida)
11 /* Define kernel calls that processes are allowed to make.
13 * Calls are unordered lists, converted by RS to bitmasks
16 #define FS_KC SYS_KILL, SYS_VIRCOPY, SYS_SAFECOPYFROM, SYS_SAFECOPYTO, \
17 SYS_UMAP, SYS_GETINFO, SYS_EXIT, SYS_TIMES, SYS_SETALARM, \
18 SYS_PRIVCTL, SYS_TRACE , SYS_SETGRANT, SYS_PROFBUF, SYS_SYSCTL, \
19 SYS_SAFEMAP, SYS_SAFEREVMAP, SYS_SAFEUNMAP
20 #define DRV_KC FS_KC, SYS_SEGCTL, SYS_IRQCTL, SYS_INT86, SYS_DEVIO, \
21 SYS_SDEVIO, SYS_VDEVIO, SYS_SETGRANT, SYS_PROFBUF, SYS_SYSCTL
24 pm_kc
[] = { SYS_ALL_C
, SYS_NULL_C
},
25 vfs_kc
[] = { FS_KC
, SYS_NULL_C
},
26 rs_kc
[] = { SYS_ALL_C
, SYS_NULL_C
},
27 ds_kc
[] = { SYS_ALL_C
, SYS_NULL_C
},
28 vm_kc
[] = { SYS_ALL_C
, SYS_NULL_C
},
29 tty_kc
[] = { DRV_KC
, SYS_PHYSCOPY
, SYS_ABORT
, SYS_IOPENABLE
,
30 SYS_READBIOS
, SYS_NULL_C
},
31 mem_kc
[] = { DRV_KC
, SYS_PHYSCOPY
, SYS_IOPENABLE
, SYS_NULL_C
},
32 log_kc
[] = { DRV_KC
, SYS_NULL_C
},
33 mfs_kc
[] = { FS_KC
, SYS_NULL_C
},
34 pfs_kc
[] = { FS_KC
, SYS_NULL_C
},
35 rusr_kc
[] = { SYS_NULL_C
},
36 no_kc
[] = { SYS_NULL_C
}; /* no kernel call */
38 /* Define VM calls that processes are allowed to make.
40 * Calls are unordered lists, converted by RS to bitmasks
44 pm_vmc
[] = { VM_BASIC_CALLS
, VM_EXIT
, VM_FORK
, VM_BRK
, VM_EXEC_NEWMEM
,
45 VM_PUSH_SIG
, VM_WILLEXIT
, VM_ADDDMA
, VM_DELDMA
, VM_GETDMA
,
46 VM_NOTIFY_SIG
, SYS_NULL_C
},
47 vfs_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
48 rs_vmc
[] = { VM_BASIC_CALLS
, VM_RS_SET_PRIV
, SYS_NULL_C
},
49 ds_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
50 vm_vmc
[] = { SYS_NULL_C
},
51 tty_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
52 mem_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
53 log_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
54 mfs_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
55 pfs_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
56 rusr_vmc
[] = { VM_BASIC_CALLS
, SYS_NULL_C
},
57 no_vmc
[] = { SYS_NULL_C
}; /* no vm call */
59 /* Definition of the boot image priv table. The order of entries in this table
60 * reflects the order boot system services are made runnable and initialized
63 PUBLIC
struct boot_image_priv boot_image_priv_table
[] = {
64 /*endpoint, label, flags, traps, ipcto, kcalls, vmcalls */
65 { RS_PROC_NR
, "rs", RSYS_F
, RSYS_T
, RSYS_M
, rs_kc
, rs_vmc
},
66 { VM_PROC_NR
, "vm", VM_F
, SRV_T
, SRV_M
, vm_kc
, vm_vmc
},
67 { PM_PROC_NR
, "pm", SRV_F
, SRV_T
, SRV_M
, pm_kc
, pm_vmc
},
68 { VFS_PROC_NR
, "vfs", SRV_F
, SRV_T
, SRV_M
, vfs_kc
, vfs_vmc
},
69 { DS_PROC_NR
, "ds", SRV_F
, SRV_T
, SRV_M
, ds_kc
, ds_vmc
},
70 { TTY_PROC_NR
, "tty", SRV_F
, SRV_T
, SRV_M
, tty_kc
, tty_vmc
},
71 { MEM_PROC_NR
, "memory", SRV_F
, SRV_T
, SRV_M
, mem_kc
, mem_vmc
},
72 { LOG_PROC_NR
, "log", SRV_F
, SRV_T
, SRV_M
, log_kc
, log_vmc
},
73 { MFS_PROC_NR
, "fs_imgrd", SRV_F
, SRV_T
, SRV_M
, mfs_kc
, mfs_vmc
},
74 { PFS_PROC_NR
, "pfs", SRV_F
, SRV_T
, SRV_M
, pfs_kc
, pfs_vmc
},
75 { INIT_PROC_NR
, "init", RUSR_F
, RUSR_T
, RUSR_M
, rusr_kc
, rusr_vmc
},
76 { NULL_BOOT_NR
, "", 0, 0, 0, no_kc
, no_vmc
}
79 /* Definition of the boot image sys table. */
80 PUBLIC
struct boot_image_sys boot_image_sys_table
[] = {
82 { RS_PROC_NR
, SRV_SF
},
83 { VM_PROC_NR
, VM_SF
},
84 { LOG_PROC_NR
, SRVC_SF
},
85 { MFS_PROC_NR
, SRVC_SF
},
86 { PFS_PROC_NR
, SRVC_SF
},
87 { DEFAULT_BOOT_NR
, SRV_SF
} /* default entry */
90 /* Definition of the boot image dev table. */
91 PUBLIC
struct boot_image_dev boot_image_dev_table
[] = {
92 /*endpoint, dev_nr, dev_style, period */
93 { TTY_PROC_NR
, TTY_MAJOR
, STYLE_TTY
, 0 },
94 { MEM_PROC_NR
, MEMORY_MAJOR
, STYLE_DEV
, 0 },
95 { LOG_PROC_NR
, LOG_MAJOR
, STYLE_DEV
, 0 },
96 { DEFAULT_BOOT_NR
, 0, STYLE_NDEV
, 0 } /* default entry */