spibusvar.h revision 257064
1/* $FreeBSD: head/sys/dev/spibus/spibusvar.h 257064 2013-10-24 16:56:38Z loos $ */
2
3#define SPIBUS_IVAR(d) (struct spibus_ivar *) device_get_ivars(d)
4#define SPIBUS_SOFTC(d) (struct spibus_softc *) device_get_softc(d)
5
6struct spibus_softc
7{
8	device_t	dev;
9};
10
11struct spibus_ivar
12{
13	uint32_t	cs;
14};
15
16enum {
17	SPIBUS_IVAR_CS		/* chip select that we're on */
18};
19
20#define SPIBUS_ACCESSOR(A, B, T)					\
21static inline int							\
22spibus_get_ ## A(device_t dev, T *t)					\
23{									\
24	return BUS_READ_IVAR(device_get_parent(dev), dev,		\
25	    SPIBUS_IVAR_ ## B, (uintptr_t *) t);			\
26}
27
28SPIBUS_ACCESSOR(cs,		CS,		uint32_t)
29
30extern driver_t spibus_driver;
31extern devclass_t spibus_devclass;
32