2011-12-22 16:19:25 +01:00
|
|
|
#ifndef __ENV_DDE_KIT_H__
|
|
|
|
#define __ENV_DDE_KIT_H__
|
|
|
|
|
|
|
|
/* bits/io.h */
|
|
|
|
|
2015-03-26 13:47:14 +01:00
|
|
|
#include <dde_support.h>
|
2011-12-22 16:19:25 +01:00
|
|
|
|
|
|
|
static inline uint8_t inb(volatile uint8_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
return dde_inb((dde_addr_t) io_addr);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline uint16_t inw(volatile uint16_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
return dde_inw((dde_addr_t) io_addr);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline uint32_t inl(volatile uint32_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
return dde_inl((dde_addr_t) io_addr);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void outb(uint8_t data, volatile uint8_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
dde_outb((dde_addr_t) io_addr, data);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void outw(uint16_t data, volatile uint16_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
dde_outw((dde_addr_t) io_addr, data);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void outl(uint32_t data, volatile uint32_t *io_addr)
|
|
|
|
{
|
2015-03-26 13:47:14 +01:00
|
|
|
dde_outl((dde_addr_t) io_addr, data);
|
2011-12-22 16:19:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-10-22 15:15:40 +02:00
|
|
|
static inline uint8_t readb(volatile uint8_t *io_addr)
|
|
|
|
{
|
|
|
|
return *io_addr;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-12-22 16:19:25 +01:00
|
|
|
static inline uint16_t readw(volatile uint16_t *io_addr)
|
|
|
|
{
|
|
|
|
return *io_addr;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static inline uint32_t readl(volatile uint32_t *io_addr)
|
|
|
|
{
|
|
|
|
return *io_addr;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-10-22 15:15:40 +02:00
|
|
|
static inline void writeb(uint8_t data, volatile uint8_t *io_addr)
|
|
|
|
{
|
|
|
|
*io_addr = data;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-12-22 16:19:25 +01:00
|
|
|
static inline void writew(uint16_t data, volatile uint16_t *io_addr)
|
|
|
|
{
|
|
|
|
*io_addr = data;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static inline void writel(uint32_t data, volatile uint32_t *io_addr)
|
|
|
|
{
|
|
|
|
*io_addr = data;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static inline void mb(void)
|
|
|
|
{
|
|
|
|
asm volatile ("lock; addl $0, 0(%%esp)" : : : "memory");
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* __ENV_DDE_KIT_H__ */
|