| 1 | #define u8 unsigned char |
| 2 | #define u16 unsigned short |
| 3 | #define u32 unsigned int |
| 4 | |
| 5 | #define noinline __attribute__((noinline)) |
| 6 | #define unused __attribute__((unused)) |
| 7 | #define _packed __attribute__((packed)) |
| 8 | |
| 9 | #define mem_barrier() \ |
| 10 | asm volatile("":::"memory") |
| 11 | |
| 12 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) |
| 13 | |
| 14 | #define MKLONG(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) |
| 15 | |
| 16 | #define read8(a) \ |
| 17 | *((volatile u8 *) (a)) |
| 18 | #define read16(a) \ |
| 19 | *((volatile u16 *) (a)) |
| 20 | #define read32(a) \ |
| 21 | *((volatile u32 *) (a)) |
| 22 | #define write8(a, d) \ |
| 23 | *((volatile u8 *) (a)) = (d) |
| 24 | #define write16(a, d) \ |
| 25 | *((volatile u16 *) (a)) = (d) |
| 26 | #define write32(a, d) \ |
| 27 | *((volatile u32 *) (a)) = (d) |
| 28 | |
| 29 | enum x32x_cmd { |
| 30 | CMD_ECHO = 1, |
| 31 | CMD_READ_FRT = 2, // read Free-Running Timer |
| 32 | }; |
| 33 | |
| 34 | // vim:ts=4:sw=4:expandtab |