Module Name:    src
Committed By:   jakllsch
Date:           Mon Oct 22 16:43:06 UTC 2012

Modified Files:
        src/sys/dev/ic: siisata.c

Log Message:
Work around missing __BUS_SPACE_HAS_STREAM_METHODS on some ports.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/ic/siisata.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/siisata.c
diff -u src/sys/dev/ic/siisata.c:1.22 src/sys/dev/ic/siisata.c:1.23
--- src/sys/dev/ic/siisata.c:1.22	Tue Jul 31 15:50:34 2012
+++ src/sys/dev/ic/siisata.c	Mon Oct 22 16:43:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: siisata.c,v 1.22 2012/07/31 15:50:34 bouyer Exp $ */
+/* $NetBSD: siisata.c,v 1.23 2012/10/22 16:43:05 jakllsch Exp $ */
 
 /* from ahcisata_core.c */
 
@@ -79,7 +79,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.22 2012/07/31 15:50:34 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.23 2012/10/22 16:43:05 jakllsch Exp $");
 
 #include <sys/types.h>
 #include <sys/malloc.h>
@@ -110,6 +110,28 @@ int siisata_debug_mask = 0;
 
 #define ATA_DELAY 10000		/* 10s for a drive I/O */
 
+#ifndef __BUS_SPACE_HAS_STREAM_METHODS
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+#define bus_space_read_stream_4 bus_space_read_4
+#define bus_space_read_region_stream_4 bus_space_read_region_4
+#else
+static inline uint32_t
+bus_space_read_stream_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o)
+{
+	return htole32(bus_space_read_4(t, h, o);
+}
+
+static inline void
+bus_space_read_region_stream_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint32_t *p, bus_size_t c)
+{
+	bus_space_read_region_4(t, h, o, p, c);
+	for (bus_size_t i = 0; i < c; i++) {
+		p[i] = htole32(p[i]);
+	}
+}
+#endif
+#endif
+
 static void siisata_attach_port(struct siisata_softc *, int);
 static void siisata_intr_port(struct siisata_channel *);
 

Reply via email to