spibusvar.h revision 160452
1/* $FreeBSD: head/sys/dev/spibus/spibusvar.h 160452 2006-07-17 21:18:03Z cognet $ */
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)					\
21__inline static 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