summaryrefslogtreecommitdiff
path: root/sys/arch/i386/include
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2006-05-29 09:54:21 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2006-05-29 09:54:21 +0000
commit3d23607e341b0c5daa94bc47338771cc3e4f8833 (patch)
tree6e13dc87ea2c952a230bbdc53af1db4628c72c33 /sys/arch/i386/include
parent6b97fa5185775cce92425a955bfcfdcba88958ff (diff)
implement reliable microtime on smp (joint work w/ otto):
send a bcast ipi from the cpu0 to all others to timestamp tsc on every clock intr. this way using local tsc provides accurate microtime() measurements. thus gettimeofday test passes now. otto@ deraadt@ ok
Diffstat (limited to 'sys/arch/i386/include')
-rw-r--r--sys/arch/i386/include/cpu.h11
-rw-r--r--sys/arch/i386/include/intr.h3
2 files changed, 8 insertions, 6 deletions
diff --git a/sys/arch/i386/include/cpu.h b/sys/arch/i386/include/cpu.h
index 10ce69a46ea..50251739c00 100644
--- a/sys/arch/i386/include/cpu.h
+++ b/sys/arch/i386/include/cpu.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.h,v 1.77 2006/05/19 19:43:41 dim Exp $ */
+/* $OpenBSD: cpu.h,v 1.78 2006/05/29 09:54:20 mickey Exp $ */
/* $NetBSD: cpu.h,v 1.35 1996/05/05 19:29:26 christos Exp $ */
/*-
@@ -114,10 +114,11 @@ struct cpu_info {
u_int32_t ci_imask[NIPL];
u_int32_t ci_iunmask[NIPL];
- paddr_t ci_idle_pcb_paddr; /* PA of idle PCB */
- u_long ci_flags; /* flags; see below */
- u_int32_t ci_ipis; /* interprocessor interrupts pending */
- int sc_apic_version; /* local APIC version */
+ paddr_t ci_idle_pcb_paddr; /* PA of idle PCB */
+ u_long ci_flags; /* flags; see below */
+ u_int32_t ci_ipis; /* interprocessor interrupts pending */
+ int sc_apic_version;/* local APIC version */
+ u_int64_t ci_tscbase;
u_int32_t ci_level;
u_int32_t ci_vendor[4];
diff --git a/sys/arch/i386/include/intr.h b/sys/arch/i386/include/intr.h
index 78d079ba87b..242fa7b169c 100644
--- a/sys/arch/i386/include/intr.h
+++ b/sys/arch/i386/include/intr.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.h,v 1.26 2006/03/12 02:04:15 brad Exp $ */
+/* $OpenBSD: intr.h,v 1.27 2006/05/29 09:54:20 mickey Exp $ */
/* $NetBSD: intr.h,v 1.5 1996/05/13 06:11:28 mycroft Exp $ */
/*
@@ -152,6 +152,7 @@ int i386_send_ipi(struct cpu_info *, int);
void i386_broadcast_ipi(int);
void i386_multicast_ipi(int, int);
void i386_ipi_handler(void);
+void i386_ipi_microset(struct cpu_info *);
void i386_intlock(int);
void i386_intunlock(int);
void i386_softintlock(void);