[rtems-libbsd commit] freebsd/bus: Check return value of bus_accessor.

Sebastian Huber sebh at rtems.org
Fri Nov 10 13:22:23 UTC 2017


Module:    rtems-libbsd
Branch:    master
Commit:    e7f3260886b8819657b5faf7eee50fe422314ae6
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=e7f3260886b8819657b5faf7eee50fe422314ae6

Author:    Christian Mauderer <Christian.Mauderer at embedded-brains.de>
Date:      Wed Nov  8 10:44:48 2017 +0100

freebsd/bus: Check return value of bus_accessor.

---

 freebsd/sys/sys/bus.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/freebsd/sys/sys/bus.h b/freebsd/sys/sys/bus.h
index 61cb5b9..e882823 100644
--- a/freebsd/sys/sys/bus.h
+++ b/freebsd/sys/sys/bus.h
@@ -781,6 +781,7 @@ DECLARE_MODULE(name##_##busname, name##_##busname##_mod,		\
 /**
  * Generic ivar accessor generation macros for bus drivers
  */
+#ifndef __rtems__
 #define __BUS_ACCESSOR(varp, var, ivarp, ivar, type)			\
 									\
 static __inline type varp ## _get_ ## var(device_t dev)			\
@@ -797,6 +798,28 @@ static __inline void varp ## _set_ ## var(device_t dev, type t)		\
 	BUS_WRITE_IVAR(device_get_parent(dev), dev,			\
 	    ivarp ## _IVAR_ ## ivar, v);				\
 }
+#else /* __rtems__ */
+#define __BUS_ACCESSOR(varp, var, ivarp, ivar, type)			\
+									\
+static __inline type varp ## _get_ ## var(device_t dev)			\
+{									\
+	uintptr_t v;							\
+	int err;							\
+	err = BUS_READ_IVAR(device_get_parent(dev), dev,		\
+	    ivarp ## _IVAR_ ## ivar, &v);				\
+	BSD_ASSERT(err == 0);						\
+	return ((type) v);						\
+}									\
+									\
+static __inline void varp ## _set_ ## var(device_t dev, type t)		\
+{									\
+	uintptr_t v = (uintptr_t) t;					\
+	int err;							\
+	BUS_WRITE_IVAR(device_get_parent(dev), dev,			\
+	    ivarp ## _IVAR_ ## ivar, v);				\
+	BSD_ASSERT(err == 0);						\
+}
+#endif /* __rtems__ */
 
 /**
  * Shorthand macros, taking resource argument



More information about the vc mailing list