On 12/10/12 16:40, Niclas Zeising wrote:
On 12/11/12 00:32, Carl Delsey wrote:
On 12/10/12 16:20, Niclas Zeising wrote:
On 12/06/12 23:33, Jim Harris wrote:
Author: jimharris
Date: Thu Dec 6 22:33:31 2012
New Revision: 243960
URL: http://svnweb.freebsd.org/changeset/base/243960
Log:
Add amd64 implementations for 8-byte bus_space routines.
+#include <sys/systm.h>
#include <x86/bus.h>
+
+#define KASSERT_BUS_SPACE_MEM_ONLY(tag) \
+ KASSERT((tag) == X86_BUS_SPACE_MEM, \
+ ("%s: can only handle mem space", __func__))
+
+static __inline uint64_t
+bus_space_read_8(bus_space_tag_t tag, bus_space_handle_t bsh,
+ bus_size_t ofs)
+{
+
+ KASSERT_BUS_SPACE_MEM_ONLY(tag);
+
+ return (*(volatile uint64_t *)(bsh + ofs));
+}
Hi!
Can the include of <sys/systm.h> and the added KASSERTs please be hidden
under #ifdef _KERNEL or something similar? devel/libpciaccess from the
experimental xorg-dev tree
(http://trillian.chruetertee.ch/ports/browser/trunk/devel/libpciaccess)
uses machine/bus.h on amd64 and i386 to be able to read/write to the pci
bus, and this change breaks the compile of devel/libpciaccess.
It is probably so that libpciaccess is wrong in using <machine/bus.h>
but I have no idea how to fix it. If you have a better suggestion on
how to fix libpciaccess I am all ears.
Regards!
Does libpciaccess make use of the bus_space_read/write_* routines in
these files, or does it just use some constants and types from them?
libpciaccess uses bus_space_[read,write]_[1,2,4], which are defined in
x86/bus.h. It does not use the quad functions.
Regards!
Ok. In that case I won't ifdef out the functions themselves, just the
KASSERT in case libpciaccess expands in the future to 8 byte accesses
:-) I had another related change in the works. I'll add this change in.
Thanks,
Carl
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"