Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/bus.h
Show First 20 Lines • Show All 804 Lines • ▼ Show 20 Lines | |||||
/** | /** | ||||
* Generic ivar accessor generation macros for bus drivers | * Generic ivar accessor generation macros for bus drivers | ||||
*/ | */ | ||||
#define __BUS_ACCESSOR(varp, var, ivarp, ivar, type) \ | #define __BUS_ACCESSOR(varp, var, ivarp, ivar, type) \ | ||||
\ | \ | ||||
static __inline type varp ## _get_ ## var(device_t dev) \ | static __inline type varp ## _get_ ## var(device_t dev) \ | ||||
{ \ | { \ | ||||
uintptr_t v; \ | uintptr_t v; \ | ||||
BUS_READ_IVAR(device_get_parent(dev), dev, \ | int e; \ | ||||
e = BUS_READ_IVAR(device_get_parent(dev), dev, \ | |||||
ivarp ## _IVAR_ ## ivar, &v); \ | ivarp ## _IVAR_ ## ivar, &v); \ | ||||
if (e != 0) { \ | |||||
device_printf(dev, "failed to read ivar " \ | |||||
__XSTRING(ivarp ## _IVAR_ ## ivar) " on bus %s, " \ | |||||
"error = %d\n", \ | |||||
device_get_nameunit(device_get_parent(dev)), e); \ | |||||
} \ | |||||
return ((type) v); \ | return ((type) v); \ | ||||
} \ | } \ | ||||
\ | \ | ||||
static __inline void varp ## _set_ ## var(device_t dev, type t) \ | static __inline void varp ## _set_ ## var(device_t dev, type t) \ | ||||
{ \ | { \ | ||||
uintptr_t v = (uintptr_t) t; \ | uintptr_t v = (uintptr_t) t; \ | ||||
BUS_WRITE_IVAR(device_get_parent(dev), dev, \ | int e; \ | ||||
e = BUS_WRITE_IVAR(device_get_parent(dev), dev, \ | |||||
ivarp ## _IVAR_ ## ivar, v); \ | ivarp ## _IVAR_ ## ivar, v); \ | ||||
if (e != 0) { \ | |||||
device_printf(dev, "failed to write ivar " \ | |||||
__XSTRING(ivarp ## _IVAR_ ## ivar) " on bus %s, " \ | |||||
"error = %d\n", \ | |||||
device_get_nameunit(device_get_parent(dev)), e); \ | |||||
} \ | |||||
} | } | ||||
/** | /** | ||||
* Shorthand macros, taking resource argument | * Shorthand macros, taking resource argument | ||||
* Generated with sys/tools/bus_macro.sh | * Generated with sys/tools/bus_macro.sh | ||||
*/ | */ | ||||
#define bus_barrier(r, o, l, f) \ | #define bus_barrier(r, o, l, f) \ | ||||
▲ Show 20 Lines • Show All 132 Lines • Show Last 20 Lines |