diff -ru V7EM/h/systm.h V7JEM/h/systm.h
--- V7EM/h/systm.h	Mon Jan 28 06:52:32 2002
+++ V7JEM/h/systm.h	Sun Mar  3 03:01:14 2002
@@ -3,12 +3,12 @@
  * used by more than one
  * routine.
  */
-char	canonb[CANBSIZ];	/* buffer for erase and kill (#@) */
-struct inode *rootdir;		/* pointer to inode of root directory */
-struct proc *runq;		/* head of linked list of running processes */
-int	cputype;		/* type of cpu =40, 45, or 70 */
-int	lbolt;			/* time of day in 60th not in time */
-time_t	time;			/* time in sec from 1970 */
+extern char	canonb[CANBSIZ];	/* buffer for erase and kill (#@) */
+extern struct inode *rootdir;		/* pointer to inode of root directory */
+extern struct proc *runq;		/* head of linked list of running processes */
+extern int	cputype;		/* type of cpu =40, 45, or 70 */
+extern int	lbolt;			/* time of day in 60th not in time */
+extern time_t	time;			/* time in sec from 1970 */
 
 /*
  * Nblkdev is the number of entries
@@ -18,58 +18,58 @@
  * Used in bounds checking on major
  * device numbers.
  */
-int	nblkdev;
+extern int	nblkdev;
 
 /*
  * Number of character switch entries.
  * Set by cinit/tty.c
  */
-int	nchrdev;
+extern int	nchrdev;
 
-int	mpid;			/* generic for unique process id's */
-char	runin;			/* scheduling flag */
-char	runout;			/* scheduling flag */
-char	runrun;			/* scheduling flag */
-char	curpri;			/* more scheduling */
-int	maxmem;			/* actual max memory per process */
-physadr	lks;			/* pointer to clock device */
-daddr_t	swplo;			/* block number of swap space */
-int	nswap;			/* size of swap space */
-int	updlock;		/* lock for sync */
-daddr_t	rablock;		/* block to be read ahead */
+extern int	mpid;			/* generic for unique process id's */
+extern char	runin;			/* scheduling flag */
+extern char	runout;			/* scheduling flag */
+extern char	runrun;			/* scheduling flag */
+extern char	curpri;			/* more scheduling */
+extern int	maxmem;			/* actual max memory per process */
+extern physadr	lks;			/* pointer to clock device */
+extern daddr_t	swplo;			/* block number of swap space */
+extern int	nswap;			/* size of swap space */
+extern int	updlock;		/* lock for sync */
+extern daddr_t	rablock;		/* block to be read ahead */
 extern	char	regloc[];	/* locs. of saved user registers (trap.c) */
-char	msgbuf[MSGBUFS];	/* saved "printf" characters */
-dev_t	rootdev;		/* device of the root */
-dev_t	swapdev;		/* swapping device */
-dev_t	pipedev;		/* pipe device */
+extern char	msgbuf[MSGBUFS];	/* saved "printf" characters */
+extern dev_t	rootdev;		/* device of the root */
+extern dev_t	swapdev;		/* swapping device */
+extern dev_t	pipedev;		/* pipe device */
 extern	int	icode[];	/* user init code */
 extern	int	szicode;	/* its size */
 
-dev_t getmdev();
-daddr_t	bmap();
-struct inode *ialloc();
-struct inode *iget();
-struct inode *owner();
-struct inode *maknode();
-struct inode *namei();
-struct buf *alloc();
-struct buf *getblk();
-struct buf *geteblk();
-struct buf *bread();
-struct buf *breada();
-struct filsys *getfs();
-struct file *getf();
-struct file *falloc();
-int	uchar();
+extern dev_t getmdev();
+extern daddr_t	bmap();
+extern struct inode *ialloc();
+extern struct inode *iget();
+extern struct inode *owner();
+extern struct inode *maknode();
+extern struct inode *namei();
+extern struct buf *alloc();
+extern struct buf *getblk();
+extern struct buf *geteblk();
+extern struct buf *bread();
+extern struct buf *breada();
+extern struct filsys *getfs();
+extern struct file *getf();
+extern struct file *falloc();
+extern int	uchar();
 /*
  * Instrumentation
  */
-int	dk_busy;
-long	dk_time[32];
-long	dk_numb[3];
-long	dk_wds[3];
-long	tk_nin;
-long	tk_nout;
+extern int	dk_busy;
+extern long	dk_time[32];
+extern long	dk_numb[3];
+extern long	dk_wds[3];
+extern long	tk_nin;
+extern long	tk_nout;
 
 /*
  * Structure of the system-entry table
diff -ru V7EM/sys/c.c V7JEM/sys/c.c
--- V7EM/sys/c.c	Tue Jan 29 16:42:04 2002
+++ V7JEM/sys/c.c	Sun Mar  3 03:05:03 2002
@@ -11,6 +11,63 @@
 #include "../h/inode.h"
 #include "../h/acct.h"
 
+/* h/systm.h common data */
+/*
+ * Random set of variables
+ * used by more than one
+ * routine.
+ */
+char	canonb[CANBSIZ];	/* buffer for erase and kill (#@) */
+struct inode *rootdir;		/* pointer to inode of root directory */
+struct proc *runq;		/* head of linked list of running processes */
+int	cputype;		/* type of cpu =40, 45, or 70 */
+int	lbolt;			/* time of day in 60th not in time */
+time_t	time;			/* time in sec from 1970 */
+
+/*
+ * Nblkdev is the number of entries
+ * (rows) in the block switch. It is
+ * set in binit/bio.c by making
+ * a pass over the switch.
+ * Used in bounds checking on major
+ * device numbers.
+ */
+int	nblkdev;
+
+/*
+ * Number of character switch entries.
+ * Set by cinit/tty.c
+ */
+int	nchrdev;
+
+int	mpid;			/* generic for unique process id's */
+char	runin;			/* scheduling flag */
+char	runout;			/* scheduling flag */
+char	runrun;			/* scheduling flag */
+char	curpri;			/* more scheduling */
+int	maxmem;			/* actual max memory per process */
+physadr	lks;			/* pointer to clock device */
+daddr_t	swplo;			/* block number of swap space */
+int	nswap;			/* size of swap space */
+int	updlock;		/* lock for sync */
+daddr_t	rablock;		/* block to be read ahead */
+char	msgbuf[MSGBUFS];	/* saved "printf" characters */
+dev_t	rootdev;		/* device of the root */
+dev_t	swapdev;		/* swapping device */
+dev_t	pipedev;		/* pipe device */
+
+/*
+ * Instrumentation
+ */
+int	dk_busy;
+long	dk_time[32];
+long	dk_numb[3];
+long	dk_wds[3];
+long	tk_nin;
+long	tk_nout;
+ 
+/* end systm definition */
+
 int	nulldev();
 int	nodev();
 int	emstrategy();
