summaryrefslogtreecommitdiff
path: root/usr/src/uts/i86pc/sys/machsystm.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/i86pc/sys/machsystm.h')
-rw-r--r--usr/src/uts/i86pc/sys/machsystm.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/usr/src/uts/i86pc/sys/machsystm.h b/usr/src/uts/i86pc/sys/machsystm.h
index 43a3a94df1..caacf71e30 100644
--- a/usr/src/uts/i86pc/sys/machsystm.h
+++ b/usr/src/uts/i86pc/sys/machsystm.h
@@ -18,8 +18,9 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -41,6 +42,9 @@
#include <sys/varargs.h>
#include <sys/thread.h>
#include <sys/cpuvar.h>
+#include <sys/privregs.h>
+#include <sys/systm.h>
+#include <sys/traptrace.h>
#include <vm/page.h>
#ifdef __cplusplus
@@ -49,7 +53,9 @@ extern "C" {
#ifdef _KERNEL
-extern void mp_halt(char *);
+extern void mach_cpu_idle(void);
+extern void mach_cpu_halt(char *);
+extern int mach_cpu_start(cpu_t *, void *);
extern int Cpudelay;
extern void setcpudelay(void);
@@ -61,10 +67,11 @@ extern void return_instr(void);
extern int kcpc_hw_load_pcbe(void);
extern void kcpc_hw_init(cpu_t *cp);
+extern void kcpc_hw_fini(cpu_t *cp);
extern int kcpc_hw_overflow_intr_installed;
struct memconf {
- pfn_t mcf_spfn; /* begin page fram number */
+ pfn_t mcf_spfn; /* begin page frame number */
pfn_t mcf_epfn; /* end page frame number */
};
@@ -84,6 +91,9 @@ extern int cpuid2nodeid(int);
extern void map_kaddr(caddr_t, pfn_t, int, int);
extern void memscrub_init(void);
+extern void trap(struct regs *, caddr_t, processorid_t);
+
+extern void do_interrupt(struct regs *, trap_trace_rec_t *);
extern void memscrub_disable(void);
extern unsigned int microdata;
@@ -92,6 +102,11 @@ extern int use_mp;
extern struct cpu cpus[]; /* pointer to other cpus */
extern struct cpu *cpu[]; /* pointer to all cpus */
+extern int mach_cpucontext_init(void);
+extern void mach_cpucontext_fini(void);
+extern void *mach_cpucontext_alloc(struct cpu *);
+extern void mach_cpucontext_free(struct cpu *, void *, int);
+
extern uintptr_t hole_start, hole_end;
#define INVALID_VADDR(a) \
@@ -102,6 +117,11 @@ extern size_t kpm_size;
extern uchar_t kpm_size_shift;
extern caddr_t kpm_vbase;
+struct memlist;
+extern void memlist_add(uint64_t, uint64_t, struct memlist *,
+ struct memlist **);
+extern page_t *page_get_physical(uintptr_t);
+
#endif /* _KERNEL */
#ifdef __cplusplus