3 /* some IO addresses require buffering, so we create some generic buffering
7 /* create port-specific #defines: */
8 #define buffered_port(p) \
9 u8 addr_##p##_buffer = 0; \
11 void __inline__ outb_##p(u8 b) { \
12 addr_##p##_buffer = b; \
16 void __inline__ bset_##p(u8 mask) { \
17 bset((addr_t)&addr_##p##_buffer, mask); \
18 outb(p, addr_##p##_buffer); \
21 void __inline__ bclr_##p(u8 mask) { \
22 bclr((addr_t)&addr_##p##_buffer, mask); \
23 outb(p, addr_##p##_buffer); \
26 void __inline__ outb(addr_t addr, u8 byte) {
31 void __inline__ bset(addr_t addr, u8 mask) {
32 /* FIXME again. asm? */
35 void __inline__ bclr(addr_t addr, u8 mask) {
36 /* FIXME again. asm? */
40 /* FIXME fill me in */
43 /* ports declared here must be defined with buffered_port_h() in vend.h too */