Changes in uspace/lib/c/include/ddi.h [b5c2f56:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/ddi.h
rb5c2f56 r9d58539 36 36 #define LIBC_DDI_H_ 37 37 38 #include <bool.h>39 38 #include <sys/types.h> 40 #include <sys/time.h>41 39 #include <abi/ddi/irq.h> 42 40 #include <task.h> … … 52 50 extern int dmamem_unmap_anonymous(void *); 53 51 52 extern int iospace_enable(task_id_t, void *, unsigned long); 54 53 extern int pio_enable(void *, size_t, void **); 55 56 typedef void (*trace_fnc)(const volatile void *place, uint32_t val,57 volatile void* base, size_t size, void *data, bool write);58 59 extern int pio_trace_enable(void *, size_t, trace_fnc, void *);60 extern void pio_trace_log(const volatile void *, uint32_t val, bool write);61 extern void pio_trace_disable(void *);62 63 extern void pio_write_8(ioport8_t *, uint8_t);64 extern void pio_write_16(ioport16_t *, uint16_t);65 extern void pio_write_32(ioport32_t *, uint32_t);66 67 extern uint8_t pio_read_8(const ioport8_t *);68 extern uint16_t pio_read_16(const ioport16_t *);69 extern uint32_t pio_read_32(const ioport32_t *);70 71 static inline uint8_t pio_change_8(72 ioport8_t *reg, uint8_t val, uint8_t mask, useconds_t delay)73 {74 uint8_t v = pio_read_8(reg);75 udelay(delay);76 pio_write_8(reg, (v & ~mask) | val);77 return v;78 }79 80 static inline uint16_t pio_change_16(81 ioport16_t *reg, uint16_t val, uint16_t mask, useconds_t delay)82 {83 uint16_t v = pio_read_16(reg);84 udelay(delay);85 pio_write_16(reg, (v & ~mask) | val);86 return v;87 }88 89 static inline uint32_t pio_change_32(90 ioport32_t *reg, uint32_t val, uint32_t mask, useconds_t delay)91 {92 uint32_t v = pio_read_32(reg);93 udelay(delay);94 pio_write_32(reg, (v & ~mask) | val);95 return v;96 }97 98 static inline uint8_t pio_set_8(ioport8_t *r, uint8_t v, useconds_t d)99 {100 return pio_change_8(r, v, 0, d);101 }102 static inline uint16_t pio_set_16(ioport16_t *r, uint16_t v, useconds_t d)103 {104 return pio_change_16(r, v, 0, d);105 }106 static inline uint32_t pio_set_32(ioport32_t *r, uint32_t v, useconds_t d)107 {108 return pio_change_32(r, v, 0, d);109 }110 111 static inline uint8_t pio_clear_8(ioport8_t *r, uint8_t v, useconds_t d)112 {113 return pio_change_8(r, 0, v, d);114 }115 static inline uint16_t pio_clear_16(ioport16_t *r, uint16_t v, useconds_t d)116 {117 return pio_change_16(r, 0, v, d);118 }119 static inline uint32_t pio_clear_32(ioport32_t *r, uint32_t v, useconds_t d)120 {121 return pio_change_32(r, 0, v, d);122 }123 54 124 55 extern int irq_register(int, int, int, irq_code_t *);
Note:
See TracChangeset
for help on using the changeset viewer.