Fixed extern declaration from pointer to array
[minix.git] / servers / rs / table.c
blob6217ba617ee6e1e0446759262e12503149146c3a
1 /* This file contains the definition of the boot image info tables.
3 * Changes:
4 * Nov 22, 2009: Created (Cristiano Giuffrida)
5 */
7 #define _TABLE
9 #include "inc.h"
11 /* Define kernel calls that processes are allowed to make.
13 * Calls are unordered lists, converted by RS to bitmasks
14 * once at runtime.
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
23 PRIVATE int
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
41 * once at runtime.
43 PRIVATE int
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
61 * at boot time.
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[] = {
81 /*endpoint, flags */
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 */