Changes in uspace/lib/c/arch/ia64/include/ddi.h [63f8966:314f3a3c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia64/include/ddi.h
r63f8966 r314f3a3c 52 52 static inline void pio_write_8(ioport8_t *port, uint8_t v) 53 53 { 54 uintptr_t prt = (uintptr_t) port; 54 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 55 uintptr_t prt = (uintptr_t) port; 55 56 56 *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 57 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 57 *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 58 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 59 } else { 60 *port = v; 61 } 58 62 59 63 asm volatile ("mf\n" ::: "memory"); 64 asm volatile ("mf.a\n" ::: "memory"); 60 65 } 61 66 62 67 static inline void pio_write_16(ioport16_t *port, uint16_t v) 63 68 { 64 uintptr_t prt = (uintptr_t) port; 69 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 70 uintptr_t prt = (uintptr_t) port; 65 71 66 *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 67 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 72 *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 73 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 74 } else { 75 *port = v; 76 } 68 77 69 78 asm volatile ("mf\n" ::: "memory"); 79 asm volatile ("mf.a\n" ::: "memory"); 70 80 } 71 81 72 82 static inline void pio_write_32(ioport32_t *port, uint32_t v) 73 83 { 74 uintptr_t prt = (uintptr_t) port; 84 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 85 uintptr_t prt = (uintptr_t) port; 75 86 76 *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 77 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 87 *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 88 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 89 } else { 90 *port = v; 91 } 78 92 79 93 asm volatile ("mf\n" ::: "memory"); 94 asm volatile ("mf.a\n" ::: "memory"); 80 95 } 81 96 82 97 static inline uint8_t pio_read_8(ioport8_t *port) 83 98 { 84 uint ptr_t prt = (uintptr_t) port;99 uint8_t v; 85 100 86 101 asm volatile ("mf\n" ::: "memory"); 87 102 88 return *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 89 ((prt & 0xfff) | ((prt >> 2) << 12)))); 103 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 104 uintptr_t prt = (uintptr_t) port; 105 106 v = *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 107 ((prt & 0xfff) | ((prt >> 2) << 12)))); 108 } else { 109 v = *port; 110 } 111 112 asm volatile ("mf.a\n" ::: "memory"); 113 114 return v; 90 115 } 91 116 92 117 static inline uint16_t pio_read_16(ioport16_t *port) 93 118 { 94 uint ptr_t prt = (uintptr_t) port;119 uint16_t v; 95 120 96 121 asm volatile ("mf\n" ::: "memory"); 97 122 98 return *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 99 ((prt & 0xfff) | ((prt >> 2) << 12)))); 123 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 124 uintptr_t prt = (uintptr_t) port; 125 126 v = *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 127 ((prt & 0xfff) | ((prt >> 2) << 12)))); 128 } else { 129 v = *port; 130 } 131 132 asm volatile ("mf.a\n" ::: "memory"); 133 134 return v; 100 135 } 101 136 102 137 static inline uint32_t pio_read_32(ioport32_t *port) 103 138 { 104 uint ptr_t prt = (uintptr_t) port;139 uint32_t v; 105 140 106 141 asm volatile ("mf\n" ::: "memory"); 107 142 108 return *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 109 ((prt & 0xfff) | ((prt >> 2) << 12)))); 143 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 144 uintptr_t prt = (uintptr_t) port; 145 146 v = *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 147 ((prt & 0xfff) | ((prt >> 2) << 12)))); 148 } else { 149 v = *port; 150 } 151 152 asm volatile ("mf.a\n" ::: "memory"); 153 154 return v; 110 155 } 111 156
Note:
See TracChangeset
for help on using the changeset viewer.