7 Interface to the reincarnation server
10 #include <minix/bitmap.h>
11 #include <minix/com.h>
13 #define SERVICE_LOGIN "service" /* passwd file entry for services */
15 /* RSS definitions. */
18 #define RSS_IRQ_ALL (RSS_NR_IRQ+1)
19 #define RSS_IO_ALL (RSS_NR_IO+1)
20 #define RSS_IPC_ALL "IPC_ALL"
21 #define RSS_IPC_ALL_SYS "IPC_ALL_SYS"
24 #define RSS_COPY 0x01 /* keep an in-memory copy of the binary */
25 #define RSS_REUSE 0x04 /* Try to reuse previously copied binary */
26 #define RSS_NOBLOCK 0x08 /* unblock caller immediately */
27 #define RSS_REPLICA 0x10 /* keep a replica of the service */
28 #define RSS_SELF_LU 0x20 /* perform self update */
29 #define RSS_SYS_BASIC_CALLS 0x40 /* include basic kernel calls */
30 #define RSS_VM_BASIC_CALLS 0x80 /* include basic vm calls */
32 /* Common definitions. */
33 #define RS_NR_CONTROL 8
34 #define RS_NR_PCI_DEVICE 32
35 #define RS_NR_PCI_CLASS 4
36 #define RS_MAX_LABEL_LEN 16
38 /* CPU special values */
39 #define RS_CPU_DEFAULT -1 /* use the default cpu or do not change the current one */
40 #define RS_CPU_BSP -2 /* use the bootstrap cpu */
42 /* Labels are copied over separately. */
49 /* Arguments needed to start a new driver or server */
56 endpoint_t rss_sigmgr
;
57 endpoint_t rss_scheduler
;
66 int rss_irq
[RSS_NR_IRQ
];
68 struct { unsigned base
; unsigned len
; } rss_io
[RSS_NR_IO
];
70 struct { u16_t vid
; u16_t did
; } rss_pci_id
[RS_NR_PCI_DEVICE
];
72 struct { u32_t pciclass
; u32_t mask
; } rss_pci_class
[RS_NR_PCI_CLASS
];
73 bitchunk_t rss_system
[SYS_CALL_MASK_SIZE
];
74 struct rss_label rss_label
;
77 bitchunk_t rss_vm
[VM_CALL_MASK_SIZE
];
79 struct rss_label rss_control
[RS_NR_CONTROL
];
84 * must be at the end of the structure for binary compatibility with
90 /* ACL information for access to PCI devices */
93 char rsp_label
[RS_MAX_LABEL_LEN
];
96 struct { u16_t vid
; u16_t did
; } rsp_device
[RS_NR_PCI_DEVICE
];
98 struct { u32_t pciclass
; u32_t mask
; } rsp_class
[RS_NR_PCI_CLASS
];
101 /* Definition of a public entry of the system process table. */
103 short in_use
; /* set when the entry is in use */
104 unsigned sys_flags
; /* sys flags */
105 endpoint_t endpoint
; /* process endpoint number */
107 int dev_flags
; /* device flags */
108 dev_t dev_nr
; /* major device number */
109 int dev_style
; /* device style */
110 int dev_style2
; /* device style for next major dev number */
112 char label
[RS_MAX_LABEL_LEN
]; /* label of this service */
113 char proc_name
[RS_MAX_LABEL_LEN
]; /* process name of this service */
115 bitchunk_t vm_call_mask
[VM_CALL_MASK_SIZE
]; /* vm call mask */
117 struct rs_pci pci_acl
; /* pci acl */
121 int minix_rs_lookup(const char *name
, endpoint_t
*value
);