7 Interface to the reincarnation server
10 #include <minix/bitmap.h>
11 #include <minix/com.h>
13 /* RSS definitions. */
18 #define RSS_COPY 0x01 /* Copy the brinary into RS to make it possible
19 * to restart the driver without accessing FS
21 #define RSS_IPC_VALID 0x02 /* rss_ipc and rss_ipclen are valid */
22 #define RSS_REUSE 0x04 /* Try to reuse previously copied binary */
24 /* Common definitions. */
25 #define RS_SYS_CALL_MASK_SIZE 2
26 #define RS_NR_CONTROL 8
27 #define RS_NR_PCI_DEVICE 32
28 #define RS_NR_PCI_CLASS 4
29 #define RS_MAX_LABEL_LEN 16
31 /* Labels are copied over separately. */
38 /* Arguments needed to start a new driver or server */
51 int rss_irq
[RSS_NR_IRQ
];
53 struct { unsigned base
; unsigned len
; } rss_io
[RSS_NR_IO
];
55 struct { u16_t vid
; u16_t did
; } rss_pci_id
[RS_NR_PCI_DEVICE
];
57 struct { u32_t
class; u32_t mask
; } rss_pci_class
[RS_NR_PCI_CLASS
];
58 u32_t rss_system
[RS_SYS_CALL_MASK_SIZE
];
59 struct rss_label rss_label
;
62 bitchunk_t rss_vm
[VM_CALL_MASK_SIZE
];
64 struct rss_label rss_control
[RS_NR_CONTROL
];
67 /* ACL information for access to PCI devices */
70 char rsp_label
[RS_MAX_LABEL_LEN
];
73 struct { u16_t vid
; u16_t did
; } rsp_device
[RS_NR_PCI_DEVICE
];
75 struct { u32_t
class; u32_t mask
; } rsp_class
[RS_NR_PCI_CLASS
];
78 /* Definition of a public entry of the system process table. */
80 short in_use
; /* set when the entry is in use */
81 unsigned sys_flags
; /* sys flags */
82 endpoint_t endpoint
; /* process endpoint number */
84 dev_t dev_nr
; /* major device number */
85 int dev_style
; /* device style */
86 long period
; /* heartbeat period (or zero) */
88 char label
[RS_MAX_LABEL_LEN
]; /* label of this service */
89 char proc_name
[RS_MAX_LABEL_LEN
]; /* process name of this service */
91 bitchunk_t vm_call_mask
[VM_CALL_MASK_SIZE
]; /* vm call mask */
93 struct rs_pci pci_acl
; /* pci acl */
96 _PROTOTYPE( int minix_rs_lookup
, (const char *name
, endpoint_t
*value
));