diff options
author | Doug Rabson <dfr@FreeBSD.org> | 2000-08-28 21:48:13 +0000 |
---|---|---|
committer | Doug Rabson <dfr@FreeBSD.org> | 2000-08-28 21:48:13 +0000 |
commit | 21c3015a2483a7dd798e1baab65786a5abe7ed0a (patch) | |
tree | a117c5438eb796bf8d29ccd3951677aa5ef43dca /sys/alpha/include/swiz.h | |
parent | 5809aaba6742a9ef299b8b86706145105cdcf3e5 (diff) | |
download | src-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.h | 22 |
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_ */ |