[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