summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--freebsd/sys/sys/bus.h23
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