Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/ddi.h

    r3e6a98c5 r9d58539  
    3636#define LIBC_DDI_H_
    3737
    38 #include <stdbool.h>
    3938#include <sys/types.h>
    40 #include <sys/time.h>
    4139#include <abi/ddi/irq.h>
    4240#include <task.h>
     
    5250extern int dmamem_unmap_anonymous(void *);
    5351
     52extern int iospace_enable(task_id_t, void *, unsigned long);
    5453extern 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 }
    12354
    12455extern int irq_register(int, int, int, irq_code_t *);
Note: See TracChangeset for help on using the changeset viewer.