minix/servers/rs/glo.h
Cristiano Giuffrida 0164957abb Unified crash recovery and live update.
RS CHANGES:
- Crash recovery is now implemented like live update. Two instances are kept
side by side and the dead version is live updated into the new one. The endpoint
doesn't change and the failure is not exposed (by default) to other system
services.
- The new instance can be created reactively (when a crash is detected) or
proactively. In the latter case, RS can be instructed to keep a replica of
the system service to perform a hot swap when the service fails. The flag
SF_USE_REPL is set in that case.
- The new flag SF_USE_REPL is supported for services in the boot image and
dynamically started services through the RS interface (i.e. -p option in the
service utility).
- Fixed a free unallocated memory bug for core system services.
2010-04-27 11:17:30 +00:00

56 lines
1.6 KiB
C

/* Global variables used in RS.
*/
#ifndef RS_GLO_H
#define RS_GLO_H
#ifdef _TABLE
#undef EXTERN
#define EXTERN
#endif
/* The boot image priv table. This table has entries for all system
* services in the boot image.
*/
extern struct boot_image_priv boot_image_priv_table[];
/* The boot image sys table. This table has entries for system services in
* the boot image that override default sys properties.
*/
extern struct boot_image_sys boot_image_sys_table[];
/* The boot image dev table. This table has entries for system services in
* the boot image that support dev properties.
*/
extern struct boot_image_dev boot_image_dev_table[];
/* The buffer where the boot image is copied during initialization. */
EXTERN int boot_image_buffer_size;
EXTERN char *boot_image_buffer;
/* The system process table. This table only has entries for system
* services (servers and drivers), and thus is not directly indexed by
* slot number. The size of the table must match the size of the privilege
* table in the kernel.
*/
EXTERN struct rprocpub rprocpub[NR_SYS_PROCS]; /* public entries */
EXTERN struct rproc rproc[NR_SYS_PROCS];
EXTERN struct rproc *rproc_ptr[NR_PROCS]; /* mapping for fast access */
/* Global init descriptor. This descriptor holds data to initialize system
* services.
*/
EXTERN sef_init_info_t rinit;
/* Global update descriptor. This descriptor holds data when a live update
* is in progress.
*/
EXTERN struct rupdate rupdate;
/* Enable/disable verbose output. */
EXTERN long rs_verbose;
/* Set when we are shutting down. */
EXTERN int shutting_down;
#endif /* RS_GLO_H */