97 lines
4.6 KiB
C
97 lines
4.6 KiB
C
/* Global constants used in RS.
|
|
*/
|
|
#ifndef RS_CONST_H
|
|
#define RS_CONST_H
|
|
|
|
#define DEBUG_DEFAULT 0
|
|
|
|
#ifndef DEBUG
|
|
#define DEBUG DEBUG_DEFAULT
|
|
#endif
|
|
|
|
/* Space reserved for program and arguments. */
|
|
#define MAX_COMMAND_LEN 512 /* maximum argument string length */
|
|
#define MAX_SCRIPT_LEN 256 /* maximum restart script name length */
|
|
#define MAX_NR_ARGS 4 /* maximum number of arguments */
|
|
|
|
#define MAX_IPC_LIST 256 /* Max size of list for IPC target
|
|
* process names
|
|
*/
|
|
|
|
/* Flag values. */
|
|
#define RS_IN_USE 0x001 /* set when process slot is in use */
|
|
#define RS_EXITING 0x002 /* set when exit is expected */
|
|
#define RS_REFRESHING 0x004 /* set when refresh must be done */
|
|
#define RS_NOPINGREPLY 0x008 /* service failed to reply to a ping request */
|
|
#define RS_TERMINATED 0x010 /* service has terminated */
|
|
#define RS_LATEREPLY 0x020 /* no reply sent to RS_DOWN caller yet */
|
|
#define RS_INITIALIZING 0x040 /* set when init is in progress */
|
|
#define RS_UPDATING 0x080 /* set when update is in progress */
|
|
#define RS_ACTIVE 0x100 /* set for the active instance of a service */
|
|
|
|
/* Sys flag values. */
|
|
#define SF_CORE_SRV 0x001 /* set for core system services */
|
|
#define SF_SYNCH_BOOT 0X002 /* set when process needs synch boot init */
|
|
#define SF_NEED_COPY 0x004 /* set when process needs copy to start */
|
|
#define SF_USE_COPY 0x008 /* set when process has a copy in memory */
|
|
#define SF_NEED_REPL 0x010 /* set when process needs replica to start */
|
|
#define SF_USE_REPL 0x020 /* set when process has a replica */
|
|
|
|
/* Constants determining RS period and binary exponential backoff. */
|
|
#define RS_INIT_T (system_hz * 10) /* allow T ticks for init */
|
|
#define RS_DELTA_T (system_hz) /* check every T ticks */
|
|
#define BACKOFF_BITS (sizeof(long)*8) /* bits in backoff field */
|
|
#define MAX_BACKOFF 30 /* max backoff in RS_DELTA_T */
|
|
|
|
/* Magic process table addresses. */
|
|
#define BEG_RPROC_ADDR (&rproc[0])
|
|
#define END_RPROC_ADDR (&rproc[NR_SYS_PROCS])
|
|
|
|
/* Constants for live update. */
|
|
#define RS_DEFAULT_PREPARE_MAXTIME 2*RS_DELTA_T /* default prepare max time */
|
|
#define RS_MAX_PREPARE_MAXTIME 20*RS_DELTA_T /* max prepare max time */
|
|
|
|
|
|
/* Definitions for boot info tables. */
|
|
#define NULL_BOOT_NR NR_BOOT_PROCS /* marks a null boot entry */
|
|
#define DEFAULT_BOOT_NR NR_BOOT_PROCS /* marks the default boot entry */
|
|
#define SYS_ALL_C (-1) /* specifies all calls */
|
|
#define SYS_NULL_C (-2) /* marks a null call entry */
|
|
|
|
/* Define privilege flags for the various process types. */
|
|
#define SRV_F (SYS_PROC | PREEMPTIBLE) /* system services */
|
|
#define DSRV_F (SRV_F | DYN_PRIV_ID | CHECK_IO_PORT | CHECK_IRQ)
|
|
/* dynamic system services */
|
|
#define VM_F (SYS_PROC) /* vm */
|
|
#define RUSR_F (BILLABLE | PREEMPTIBLE) /* root user proc */
|
|
|
|
/* Define system call traps for the various process types. These call masks
|
|
* determine what system call traps a process is allowed to make.
|
|
*/
|
|
#define SRV_T (~0) /* system services */
|
|
#define DSRV_T SRV_T /* dynamic system services */
|
|
#define RUSR_T (1 << SENDREC) /* root user proc */
|
|
|
|
/* Send masks determine to whom processes can send messages or notifications. */
|
|
#define SRV_M (~0) /* system services */
|
|
#define RUSR_M \
|
|
( spi_to(PM_PROC_NR) | spi_to(FS_PROC_NR) | spi_to(RS_PROC_NR) \
|
|
| spi_to(VM_PROC_NR) ) /* root user proc */
|
|
|
|
/* Define the signal manager for the various process types. */
|
|
#define SRV_SM RS_PROC_NR /* system services */
|
|
#define DSRV_SM RS_PROC_NR /* dynamic system services */
|
|
#define RUSR_SM PM_PROC_NR /* root user proc */
|
|
|
|
/* Define sys flags for the various process types. */
|
|
#define SRV_SF (SF_CORE_SRV | SF_NEED_COPY) /* system services */
|
|
#define SRVR_SF (SRV_SF | SF_NEED_REPL) /* services needing a replica */
|
|
#define DSRV_SF (0) /* dynamic system services */
|
|
#define VM_SF (SRVR_SF | SF_SYNCH_BOOT) /* vm */
|
|
|
|
/* Define device flags for the various process types. */
|
|
#define SRV_DF (DRV_FORCED) /* system services */
|
|
#define DSRV_DF (SRV_DF) /* dynamic system services */
|
|
|
|
#endif /* RS_CONST_H */
|
|
|