This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.1'.
[unix-history] / sys / sys / kernel.h
index dcff99e..c8f5e19 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * Copyright (c) UNIX System Laboratories, Inc.  All or some portions
+ * of this file are derived from material licensed to the
+ * University of California by American Telephone and Telegraph Co.
+ * or UNIX System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ */
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  * SUCH DAMAGE.
  *
  *     from: @(#)kernel.h      7.4 (Berkeley) 2/15/91
  * SUCH DAMAGE.
  *
  *     from: @(#)kernel.h      7.4 (Berkeley) 2/15/91
- *     $Id$
+ *     $Id: kernel.h,v 1.8 1993/12/20 19:31:42 wollman Exp $
  */
 
  */
 
+#ifndef _SYS_KERNEL_H_
+#define _SYS_KERNEL_H_ 1
+
 /* Global variables for the kernel. */
 long rmalloc();
 
 /* 1.1 */
 /* Global variables for the kernel. */
 long rmalloc();
 
 /* 1.1 */
-long hostid;
-char hostname[MAXHOSTNAMELEN];
-int hostnamelen;
+extern long hostid;
+extern char hostname[MAXHOSTNAMELEN];
+extern int hostnamelen;
+extern char domainname[MAXHOSTNAMELEN];
+extern int domainnamelen;
 
 /* 1.2 */
 
 /* 1.2 */
-struct timeval boottime;
-struct timeval time;
-struct timezone tz;                    /* XXX */
+extern struct timeval boottime;
+extern struct timeval time;
+extern struct timezone tz;     /* XXX */
 
 
-int hz;                                        /* clock frequency */
-int phz;                               /* alternate clock's frequency */
-int tick;
-int lbolt;                             /* once a second sleep address */
-int realitexpire();
+extern int hz;                 /* clock frequency */
+extern int phz;                        /* alternate clock's frequency */
+extern int tick;               /* usec per clock tick */
+extern int lbolt;              /* once a second sleep address */
 
 
-fixpt_t        averunnable[3];
+extern fixpt_t averunnable[3];
 #if defined(COMPAT_43) && (defined(vax) || defined(tahoe))
 #if defined(COMPAT_43) && (defined(vax) || defined(tahoe))
-double avenrun[3];
+extern double  avenrun[3];
 #endif /* COMPAT_43 */
 
 #ifdef GPROF
 #endif /* COMPAT_43 */
 
 #ifdef GPROF
-u_long s_textsize;
-int profiling;
-u_short *kcount;
-char *s_lowpc;
+extern u_long s_textsize;
+extern int profiling;
+extern u_short *kcount;
+extern char *s_lowpc;
+#endif
+
+extern const char *panicstr;   /* panic message */
+extern const char version[];   /* system version */
+extern const char copyright[]; /* system copyright */
+
+extern int nblkdev;            /* number of entries in bdevsw */
+extern int nchrdev;            /* number of entries in cdevsw */
+extern int nswdev;             /* number of swap devices */
+extern int nswap;              /* size of swap space */
+
+extern int maxmem;             /* max memory per process */
+extern int physmem;            /* physical memory */
+
+extern dev_t dumpdev;          /* dump device */
+extern long dumplo;            /* offset into dumpdev */
+
+extern dev_t rootdev;          /* root device */
+extern struct vnode *rootvp;   /* vnode equivalent to above */
+
+extern dev_t swapdev;          /* swapping device */
+extern struct vnode *swapdev_vp;/* vnode equivalent to above */
+
+extern int boothowto;          /* reboot flags, from console subsystem */
+#ifdef KADB
+extern char *bootesym;         /* end of symbol info from boot */
 #endif
 #endif
+
+extern u_char curpri;          /* priority of current process */
+
+/*
+ * The following macros are used to declare global sets of objects, which
+ * are collected by the linker into a `struct linker_set' as defined below.
+ *
+ * NB: the constants defined below must match those defined in
+ * /usr/src/gnu/ld/ld.h.  Since their calculation requires arithmetic, we
+ * can't name them symbolically (e.g., 23 is N_SETT | N_EXT).
+ */
+#define MAKE_SET(set, sym, type) \
+       asm(".stabs \"_" #set "\", " #type ", 0, 0, _" #sym)
+#define TEXT_SET(set, sym) MAKE_SET(set, sym, 23)
+#define DATA_SET(set, sym) MAKE_SET(set, sym, 25)
+#define BSS_SET(set, sym)  MAKE_SET(set, sym, 27)
+#define ABS_SET(set, sym)  MAKE_SET(set, sym, 21)
+
+struct linker_set {
+       int ls_length;
+       caddr_t ls_items[1];    /* really ls_length of them, trailing NULL */
+};
+
+#endif /* _SYS_KERNEL_H_ */