diff options
author | Christian Mauderer <Christian.Mauderer@embedded-brains.de> | 2017-11-08 10:44:48 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-10 14:13:18 +0100 |
commit | e7f3260886b8819657b5faf7eee50fe422314ae6 (patch) | |
tree | c74413446c4bfa3f14a5d140d1c93282f6aaef16 | |
parent | ec29b2a0c25c1c5fc3f213c0da1b6156a4dd4cdc (diff) |
freebsd/bus: Check return value of bus_accessor.
-rw-r--r-- | freebsd/sys/sys/bus.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/freebsd/sys/sys/bus.h b/freebsd/sys/sys/bus.h index 61cb5b9c..e882823d 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 |