Removed SYS_EXIT kernel call.
#define IS_PROC_NR 5 /* information server */
#define TTY 6 /* terminal (TTY) driver */
#define MEMORY 8 /* memory driver (RAM disk, null, etc.) */
+#define SM_PROC_NR 3 /* system management server */
#define AT_WINI (MEMORY + ENABLE_AT_WINI) /* AT Winchester */
#define FLOPPY (AT_WINI + ENABLE_FLOPPY) /* floppy disk */
#define PRINTER (FLOPPY + ENABLE_PRINTER) /* Centronics */
/* Number of processes contained in the system image. */
#define IMAGE_SIZE (NR_TASKS + \
- 5 + ENABLE_AT_WINI + ENABLE_FLOPPY + \
+ 6 + ENABLE_AT_WINI + ENABLE_FLOPPY + \
ENABLE_PRINTER + ENABLE_RTL8139 + ENABLE_FXP + 1 )
# define SYS_IOPENABLE 27 /* sys_enable_iop() */
# define SYS_SEGCTL 28 /* sys_segctl(*idx, *seg, *off, phys, size) */
-# define SYS_EXIT 29 /* sys_exit(status) */
+
# define SYS_VIRCOPY 30 /* sys_vircopy(src,seg,addr,dst,seg,addr,cnt) */
# define SYS_PHYSCOPY 31 /* sys_physcopy(src_addr,dst_addr,count) */
# define SYS_VIRVCOPY 32 /* sys_virvcopy(vec_ptr, vec_size) */
#define IRQ_PROC_NR m5_i2 /* process number, SELF, NONE */
#define IRQ_HOOK_ID m5_l3 /* id of irq hook at kernel */
-/* Names of message field and paramaters for SYS_EXIT request. */
-#define EXIT_STATUS m2_i1 /* zero for normal exit, non-zero else */
-
/* Field names for SYS_SEGCTL. */
#define SEG_SELECT m4_l1 /* segment selector returned */
#define SEG_OFFSET m4_l2 /* offset in segment returned */
* Oct 10, 2004 removed sys_findproc (Jorrit N. Herder)
* Sep 23, 2004 added sys_getsig (Jorrit N. Herder)
* Sep 09, 2004 added sys_physcopy, sys_vircopy (Jorrit N. Herder)
- * Sep 02, 2004 added sys_exit (Jorrit N. Herder)
* Aug 15, 2004 added sys_getinfo (Jorrit N. Herder)
* Jul 23, 2004 added sys_umap (Jorrit N. Herder)
* Jul 13, 2004 added sys_enable_iop, sys_segctl (Jorrit N. Herder)
_PROTOTYPE( int sys_times, (int proc_nr, clock_t *ptr) );
_PROTOTYPE( int sys_getuptime, (clock_t *ticks) );
_PROTOTYPE( int sys_trace, (int req, int proc, long addr, long *data_p) );
-_PROTOTYPE( int sys_xit, (int parent, int proc) );
+
+/* A system server can directly exit itself with the sys_xit call. The
+ * status argument is here to resemble exit(2), but not passed to kernel.
+ */
+#define sys_exit(status) sys_xit(SELF)
+_PROTOTYPE( int sys_xit, (int proc) );
+
_PROTOTYPE( int sys_svrctl, (int proc, int req, int priv,vir_bytes argp));
#define sys_getlocktimings(dst) sys_getinfo(GET_LOCKTIMING, dst, 0,0,0)
_PROTOTYPE(int sys_getinfo, (int request, void *val_ptr, int val_len,
void *key_ptr, int key_len) );
-_PROTOTYPE(int sys_exit, (int status) );
/* Signal control. */
vir_bytes iov_size; /* sizeof an I/O buffer */
} iovec_t;
-typedef struct {
- vir_bytes cpv_src; /* src address of data */
- vir_bytes cpv_dst; /* dst address of data */
- vir_bytes cpv_size; /* size of data */
-} cpvec_t;
-
-/* virtual copy vector */
-typedef struct {
- int cpvv_src_seg, cpvv_dst_seg; /* src & dst segments */
- vir_bytes cpvv_src; /* src address of data */
- vir_bytes cpvv_dst; /* dst address of data */
- vir_bytes cpvv_size; /* size of data */
-} cpvvec_t;
/* MM passes the address of a structure of this type to KERNEL when
* do_sendsig() is invoked as part of the signal catching mechanism.