+#include "../../udi_internal.h"
+
+typedef void _udi_pio_do_io_op_t(uint32_t child_ID, udi_ubit32_t regset_idx, udi_ubit32_t ofs, size_t len,
+ void *data, bool isOutput);
+
+// === STRUCTURES ===
+struct udi_pio_handle_s
+{
+ tUDI_DriverInstance *Inst;
+ udi_index_t RegionIdx;
+
+ _udi_pio_do_io_op_t *IOFunc;
+ udi_ubit32_t Offset;
+ udi_ubit32_t Length;
+
+ size_t nTransOps;
+ udi_pio_trans_t *TransOps;
+
+ udi_ubit16_t PIOAttributes;
+ udi_ubit32_t Pace;
+ udi_index_t Domain;
+
+ // TODO: Cached labels
+};
+
+// === IMPORTS ===
+extern _udi_pio_do_io_op_t pci_pio_do_io;