Ignore:
File:
1 edited

Legend:

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

    r8cd680c 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>
    42 #include <device/hw_res.h>
    43 #include <device/hw_res_parsed.h>
    44 #include <device/pio_window.h>
    4540#include <task.h>
    46 
    47 #define DMAMEM_16MiB  ((uintptr_t) UINT64_C(0xffffffffff000000))
    48 #define DMAMEM_4GiB   ((uintptr_t) UINT64_C(0xffffffff00000000))
    4941
    5042extern int device_assign_devno(void);
    5143
    52 extern int physmem_map(uintptr_t, size_t, unsigned int, void **);
    53 extern int physmem_unmap(void *);
     44extern int physmem_map(void *, size_t, unsigned int, void **);
    5445
    55 extern int dmamem_map(void *, size_t, unsigned int, unsigned int, uintptr_t *);
    56 extern int dmamem_map_anonymous(size_t, uintptr_t, unsigned int, unsigned int,
    57     uintptr_t *, void **);
     46extern int dmamem_map(void *, size_t, unsigned int, unsigned int, void **);
     47extern int dmamem_map_anonymous(size_t, unsigned int, unsigned int, void **,
     48    void **);
    5849extern int dmamem_unmap(void *, size_t);
    5950extern int dmamem_unmap_anonymous(void *);
    6051
    61 extern int pio_enable_range(addr_range_t *, void **);
    62 extern int pio_enable_resource(pio_window_t *, hw_resource_t *, void **);
     52extern int iospace_enable(task_id_t, void *, unsigned long);
    6353extern int pio_enable(void *, size_t, void **);
    64 extern int pio_disable(void *, size_t);
    6554
    66 typedef void (*trace_fnc)(const volatile void *place, uint32_t val,
    67     volatile void* base, size_t size, void *data, bool write);
    68 
    69 extern int pio_trace_enable(void *, size_t, trace_fnc, void *);
    70 extern void pio_trace_log(const volatile void *, uint32_t val, bool write);
    71 extern void pio_trace_disable(void *);
    72 
    73 extern void pio_write_8(ioport8_t *, uint8_t);
    74 extern void pio_write_16(ioport16_t *, uint16_t);
    75 extern void pio_write_32(ioport32_t *, uint32_t);
    76 
    77 extern uint8_t pio_read_8(const ioport8_t *);
    78 extern uint16_t pio_read_16(const ioport16_t *);
    79 extern uint32_t pio_read_32(const ioport32_t *);
    80 
    81 static inline uint8_t pio_change_8(ioport8_t *reg, uint8_t val, uint8_t mask,
    82     useconds_t delay)
    83 {
    84         uint8_t v = pio_read_8(reg);
    85         udelay(delay);
    86         pio_write_8(reg, (v & ~mask) | val);
    87         return v;
    88 }
    89 
    90 static inline uint16_t pio_change_16(ioport16_t *reg, uint16_t val,
    91     uint16_t mask, useconds_t delay)
    92 {
    93         uint16_t v = pio_read_16(reg);
    94         udelay(delay);
    95         pio_write_16(reg, (v & ~mask) | val);
    96         return v;
    97 }
    98 
    99 static inline uint32_t pio_change_32(ioport32_t *reg, uint32_t val,
    100     uint32_t mask, useconds_t delay)
    101 {
    102         uint32_t v = pio_read_32(reg);
    103         udelay(delay);
    104         pio_write_32(reg, (v & ~mask) | val);
    105         return v;
    106 }
    107 
    108 static inline uint8_t pio_set_8(ioport8_t *r, uint8_t v, useconds_t d)
    109 {
    110         return pio_change_8(r, v, 0, d);
    111 }
    112 static inline uint16_t pio_set_16(ioport16_t *r, uint16_t v, useconds_t d)
    113 {
    114         return pio_change_16(r, v, 0, d);
    115 }
    116 static inline uint32_t pio_set_32(ioport32_t *r, uint32_t v, useconds_t d)
    117 {
    118         return pio_change_32(r, v, 0, d);
    119 }
    120 
    121 static inline uint8_t pio_clear_8(ioport8_t *r, uint8_t v, useconds_t d)
    122 {
    123         return pio_change_8(r, 0, v, d);
    124 }
    125 static inline uint16_t pio_clear_16(ioport16_t *r, uint16_t v, useconds_t d)
    126 {
    127         return pio_change_16(r, 0, v, d);
    128 }
    129 static inline uint32_t pio_clear_32(ioport32_t *r, uint32_t v, useconds_t d)
    130 {
    131         return pio_change_32(r, 0, v, d);
    132 }
     55extern int irq_register(int, int, int, irq_code_t *);
     56extern int irq_unregister(int, int);
    13357
    13458#endif
Note: See TracChangeset for help on using the changeset viewer.