aboutsummaryrefslogtreecommitdiff
path: root/sys/alpha/include/swiz.h
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>2000-08-28 21:48:13 +0000
committerDoug Rabson <dfr@FreeBSD.org>2000-08-28 21:48:13 +0000
commit21c3015a2483a7dd798e1baab65786a5abe7ed0a (patch)
treea117c5438eb796bf8d29ccd3951677aa5ef43dca /sys/alpha/include/swiz.h
parent5809aaba6742a9ef299b8b86706145105cdcf3e5 (diff)
downloadsrc-21c3015a2483a7dd798e1baab65786a5abe7ed0a.tar.gz
src-21c3015a2483a7dd798e1baab65786a5abe7ed0a.zip
* Completely rewrite the alpha busspace to hide the implementation from
the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly. With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
Notes
Notes: svn path=/head/; revision=65176
Diffstat (limited to 'sys/alpha/include/swiz.h')
-rw-r--r--sys/alpha/include/swiz.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/alpha/include/swiz.h b/sys/alpha/include/swiz.h
index 4b6397aeccec..465a81a23371 100644
--- a/sys/alpha/include/swiz.h
+++ b/sys/alpha/include/swiz.h
@@ -70,4 +70,26 @@
#define SPARSE_WRITE_LONG(base, o, d) \
SPARSE_WRITE(base + SPARSE_LONG_OFFSET(o), d)
+#ifdef _KERNEL
+
+/*
+ * A kernel object for accessing memory-like spaces (port and
+ * memory spaces) using SWIZ instructions.
+ */
+
+typedef u_int32_t (*swiz_sethae_fn)(void *arg, u_int32_t hae);
+
+struct swiz_space {
+ struct alpha_busspace_ops *ops;
+ u_int64_t base; /* base address of space */
+ swiz_sethae_fn sethae; /* function to set HAE */
+ void *arg; /* arg to sethae() */
+};
+
+void swiz_init_space(struct swiz_space *swiz, u_int64_t base);
+void swiz_init_space_hae(struct swiz_space *swiz, u_int64_t base,
+ swiz_sethae_fn sethae, void *arg);
+
+#endif /* _KERNEL */
+
#endif /* !_MACHINE_SWIZ_H_ */