Changes in uspace/lib/c/generic/ddi.c [acc0efb:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/ddi.c
racc0efb r9d58539 34 34 35 35 #include <assert.h> 36 #include <atomic.h>37 36 #include <unistd.h> 38 #include <stdio.h>39 37 #include <errno.h> 40 38 #include <sys/types.h> … … 48 46 #include <libarch/config.h> 49 47 #include "private/libc.h" 50 51 48 52 49 /** Return unique device number. … … 123 120 * 124 121 */ 125 static int iospace_enable(task_id_t id, void *ioaddr, size_tsize)122 int iospace_enable(task_id_t id, void *ioaddr, unsigned long size) 126 123 { 127 const ddi_ioarg_t arg = {128 .task_id = id,129 .ioaddr = ioaddr,130 .size = size131 };124 ddi_ioarg_t arg; 125 126 arg.task_id = id; 127 arg.ioaddr = ioaddr; 128 arg.size = size; 132 129 133 130 return __SYSCALL1(SYS_IOSPACE_ENABLE, (sysarg_t) &arg); … … 139 136 * @param size Size of the I/O region. 140 137 * @param virt Virtual address for application's 141 * PIO operations. Can be NULL for PMIO.138 * PIO operations. 142 139 * 143 140 * @return EOK on success. … … 149 146 #ifdef IO_SPACE_BOUNDARY 150 147 if (pio_addr < IO_SPACE_BOUNDARY) { 151 if (virt) 152 *virt = pio_addr; 148 *virt = pio_addr; 153 149 return iospace_enable(task_get_id(), pio_addr, size); 154 150 } 155 151 #endif 156 if (!virt) 157 return EINVAL; 158 152 159 153 void *phys_frame = 160 154 (void *) ALIGN_DOWN((uintptr_t) pio_addr, PAGE_SIZE); … … 170 164 *virt = virt_page + offset; 171 165 return EOK; 172 }173 174 void pio_write_8(ioport8_t *reg, uint8_t val)175 {176 pio_trace_log(reg, val, true);177 arch_pio_write_8(reg, val);178 }179 180 void pio_write_16(ioport16_t *reg, uint16_t val)181 {182 pio_trace_log(reg, val, true);183 arch_pio_write_16(reg, val);184 }185 186 void pio_write_32(ioport32_t *reg, uint32_t val)187 {188 pio_trace_log(reg, val, true);189 arch_pio_write_32(reg, val);190 }191 192 uint8_t pio_read_8(ioport8_t *reg)193 {194 const uint8_t val = arch_pio_read_8(reg);195 pio_trace_log(reg, val, false);196 return val;197 }198 199 uint16_t pio_read_16(ioport16_t *reg)200 {201 const uint16_t val = arch_pio_read_16(reg);202 pio_trace_log(reg, val, false);203 return val;204 }205 206 uint32_t pio_read_32(ioport32_t *reg)207 {208 const uint32_t val = arch_pio_read_32(reg);209 pio_trace_log(reg, val, false);210 return val;211 166 } 212 167
Note:
See TracChangeset
for help on using the changeset viewer.