From e7f3260886b8819657b5faf7eee50fe422314ae6 Mon Sep 17 00:00:00 2001 From: Christian Mauderer Date: Wed, 8 Nov 2017 10:44:48 +0100 Subject: 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 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 -- cgit v1.2.3