Index: uspace/lib/c/include/ddi.h
===================================================================
--- uspace/lib/c/include/ddi.h	(revision 9e9ced0300cf1ad870193c8f3e55f88232dedc48)
+++ uspace/lib/c/include/ddi.h	(revision cede6f8f774fec84d9323564ee08a010e506545a)
@@ -40,4 +40,5 @@
 #include <stdint.h>
 #include <sys/time.h>
+#include <byteorder.h>
 #include <abi/ddi/irq.h>
 #include <device/hw_res.h>
@@ -86,4 +87,54 @@
 extern uint64_t pio_read_64(const ioport64_t *);
 
+static inline void pio_write_le16(ioport16_t *reg, uint16_t val)
+{
+	pio_write_16(reg, host2uint16_t_le(val));
+}
+static inline void pio_write_be16(ioport16_t *reg, uint16_t val)
+{
+	pio_write_16(reg, host2uint16_t_be(val));
+}
+static inline void pio_write_le32(ioport32_t *reg, uint32_t val)
+{
+	pio_write_32(reg, host2uint32_t_le(val));
+}
+static inline void pio_write_be32(ioport32_t *reg, uint32_t val)
+{
+	pio_write_32(reg, host2uint32_t_be(val));
+}
+static inline void pio_write_le64(ioport64_t *reg, uint64_t val)
+{
+	pio_write_64(reg, host2uint64_t_le(val));
+}
+static inline void pio_write_be64(ioport64_t *reg, uint64_t val)
+{
+	pio_write_64(reg, host2uint64_t_be(val));
+}
+
+static inline uint16_t pio_read_le16(const ioport16_t *reg)
+{
+	return uint16_t_le2host(pio_read_16(reg));
+}
+static inline uint16_t pio_read_be16(const ioport16_t *reg)
+{
+	return uint16_t_be2host(pio_read_16(reg));
+}
+static inline uint32_t pio_read_le32(const ioport32_t *reg)
+{
+	return uint32_t_le2host(pio_read_32(reg));
+}
+static inline uint32_t pio_read_be32(const ioport32_t *reg)
+{
+	return uint32_t_be2host(pio_read_32(reg));
+}
+static inline uint64_t pio_read_le64(const ioport64_t *reg)
+{
+	return uint64_t_le2host(pio_read_64(reg));
+}
+static inline uint64_t pio_read_be64(const ioport64_t *reg)
+{
+	return uint64_t_be2host(pio_read_64(reg));
+}
+
 static inline uint8_t pio_change_8(ioport8_t *reg, uint8_t val, uint8_t mask,
     useconds_t delay)
