20 } IOBUS_TransactionState;
23 typedef uint64_t IOBusAddr;
28 IOBUS_TransactionState state;
36 size_t (*GetReadCount)(IOBus);
37 size_t (*GetWriteSpace)(IOBus);
38 size_t (*Read)(IOBus, IOBusAddr,
void*, size_t,
IOTime);
39 size_t (*Write)(IOBus, IOBusAddr,
const void*, size_t,
IOTime);
42 size_t (*RawWrite)(IOBus,
const void*, size_t,
IOTime);
43 size_t (*SearchDevices)(IOBus, IOBusAddr*,
IOTime);
50 #define IOBUS_Init(iobus) (iobus)->Init((iobus))
52 #define IOBUS_Deinit(iobus) (iobus)->Deinit((iobus))
54 #define IOBUS_EnableWrite(iobus) (iobus)->EnableWrite((iobus))
56 #define IOBUS_DisableWrite(iobus) (iobus)->DisableWrite((iobus))
58 #define IOBUS_EnableRead(iobus) (iobus)->EnableRead((iobus))
60 #define IOBUS_DisableRead(iobus) (iobus)->DisableRead((iobus))
62 #define IOBUS_GetReadCount(iobus) (iobus)->GetReadCount((iobus))
64 #define IOBUS_GetWriteSpace(iobus) (iobus)->GetWriteSpace((iobus))
66 #define IOBUS_Read(iobus, addr, data, size, timeout) (iobus)->Read((iobus), (addr), (data), (size), (timeout))
68 #define IOBUS_Write(iobus, addr, data, size, timeout) (iobus)->Write((iobus), (addr), (data), (size), (timeout))
70 #define IOBUS_StartTransaction(iobus) (iobus)->StartTransaction((iobus))
72 #define IOBUS_EndTransaction(iobus) (iobus)->EndTransaction((iobus))
74 #define IOBUS_RawWrite(iobus, data, size, timeout) (iobus)->RawWrite((iobus), (data), (size), (timeout))
76 #define IOBUS_SearchDevices(iobus, data, timeout) (iobus)->SearchDevices((iobus), (data), (timeout))
94 #define IOBUS_DEVICE_DECLARE(name, IOBus, addr, parameters) \
95 struct IOBusDeviceDesc name ## _desc = { \
98 .param = (parameters) \
100 IOBusDevice name = &name ## _desc;
HALRESULT
Definition: hal_defs.h:16
Definition: hal_iobus.h:82
OSTime IOTime
Definition: hal_iodevice.h:270
Definition: hal_iobus.h:26