add cpu_set_init_frame to initialize init's syscall frame
[unix-history] / usr / src / sys / i386 / include / cpu.h
index 66d37b2..4a82b13 100644 (file)
@@ -1,49 +1,43 @@
 /*-
 /*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1990, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * William Jolitz.
  *
  * %sccs.include.redist.c%
  *
  *
  * This code is derived from software contributed to Berkeley by
  * William Jolitz.
  *
  * %sccs.include.redist.c%
  *
- *     @(#)cpu.h       5.4 (Berkeley) %G%
+ *     @(#)cpu.h       8.3 (Berkeley) %G%
  */
 
 /*
  * Definitions unique to i386 cpu support.
  */
  */
 
 /*
  * Definitions unique to i386 cpu support.
  */
-#include "machine/frame.h"
-#include "machine/segments.h"
+#include <machine/frame.h>
+#include <machine/segments.h>
 
 /*
  * definitions of cpu-dependent requirements
  * referenced in generic code
  */
 
 /*
  * definitions of cpu-dependent requirements
  * referenced in generic code
  */
-#undef COPY_SIGCODE            /* don't copy sigcode above user stack in exec */
+#undef COPY_SIGCODE    /* don't copy sigcode above user stack in exec */
 
 
-/*
- * function vs. inline configuration;
- * these are defined to get generic functions
- * rather than inline or machine-dependent implementations
- */
-#define        NEED_MINMAX             /* need {,i,l,ul}{min,max} functions */
-#define        NEED_FFS                /* need ffs function */
-#define        NEED_BCMP               /* need bcmp function */
-#define        NEED_STRLEN             /* need strlen function */
-
-#define        cpu_exec(p)     /* nothing */
+#define        cpu_exec(p)                     /* nothing */
+#define cpu_setstack(p, ap)            (p)->p_md.md_regs[SP] = ap
+#define cpu_set_init_frame(p, fp)      (p)->p_md.md_regs = fp
 
 /*
  * Arguments to hardclock, softclock and gatherstats
  * encapsulate the previous machine state in an opaque
  * clockframe; for now, use generic intrframe.
  */
 
 /*
  * Arguments to hardclock, softclock and gatherstats
  * encapsulate the previous machine state in an opaque
  * clockframe; for now, use generic intrframe.
  */
-typedef struct intrframe clockframe;
+struct clockframe {
+       struct intrframe        cf_if;
+};
 
 
-#define        CLKF_USERMODE(framep)   (ISPL((framep)->if_cs) == SEL_UPL)
-#define        CLKF_BASEPRI(framep)    ((framep)->if_ppl == 0)
-#define        CLKF_PC(framep)         ((framep)->if_eip)
+#define        CLKF_USERMODE(framep)   (ISPL((framep)->cf_if.if_cs) == SEL_UPL)
+#define        CLKF_BASEPRI(framep)    ((framep)->cf_if.if_ppl == 0)
+#define        CLKF_PC(framep)         ((framep)->cf_if.if_eip)
 
 #define        resettodr()     /* no todr to set */
 
 
 #define        resettodr()     /* no todr to set */
 
@@ -58,7 +52,7 @@ typedef struct intrframe clockframe;
  * interrupt.  On tahoe, request an ast to send us through trap(),
  * marking the proc as needing a profiling tick.
  */
  * interrupt.  On tahoe, request an ast to send us through trap(),
  * marking the proc as needing a profiling tick.
  */
-#define        profile_tick(p, framep) { (p)->p_flag |= SOWEUPC; aston(); }
+#define        profile_tick(p, framep) { (p)->p_flag |= P_OWEUPC; aston(); }
 
 /*
  * Notify the current process (p) that it has a signal pending,
 
 /*
  * Notify the current process (p) that it has a signal pending,
@@ -80,3 +74,14 @@ int  want_resched;           /* resched() was called */
 #define        CPU_486SX       2
 #define        CPU_486         3
 #define        CPU_586         4
 #define        CPU_486SX       2
 #define        CPU_486         3
 #define        CPU_586         4
+
+/*
+ * CTL_MACHDEP definitions.
+ */
+#define        CPU_CONSDEV             1       /* dev_t: console terminal device */
+#define        CPU_MAXID               2       /* number of valid machdep ids */
+
+#define CTL_MACHDEP_NAMES { \
+       { 0, 0 }, \
+       { "console_device", CTLTYPE_STRUCT }, \
+}