Changes in uspace/app/tester/hw/serial/serial1.c [74017ce:c4c6025] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/tester/hw/serial/serial1.c
r74017ce rc4c6025 35 35 */ 36 36 37 #include < async.h>37 #include <inttypes.h> 38 38 #include <errno.h> 39 #include <io/chardev.h>40 #include <io/serial.h>41 #include <ipc/services.h>42 #include <loc.h>43 39 #include <stdlib.h> 44 40 #include <stdio.h> 45 41 #include <stddef.h> 42 #include <async.h> 43 #include <thread.h> 44 #include <ipc/services.h> 45 #include <loc.h> 46 #include <char_dev_iface.h> 46 47 #include <str.h> 47 #include < thread.h>48 #include <io/serial.h> 48 49 #include "../../tester.h" 49 50 … … 56 57 size_t cnt; 57 58 serial_t *serial; 58 chardev_t *chardev;59 int rc;60 size_t nread;61 size_t nwritten;62 59 63 60 if (test_argc < 1) … … 86 83 return "Failed connecting to serial device"; 87 84 88 res = chardev_open(sess, &chardev); 89 if (res != EOK) { 90 async_hangup(sess); 85 res = serial_open(sess, &serial); 86 if (res != EOK) 91 87 return "Failed opening serial port"; 92 }93 94 res = serial_open(sess, &serial);95 if (res != EOK) {96 chardev_close(chardev);97 async_hangup(sess);98 return "Failed opening serial port";99 }100 88 101 89 char *buf = (char *) malloc(cnt + 1); 102 90 if (buf == NULL) { 103 chardev_close(chardev);104 91 serial_close(serial); 105 92 async_hangup(sess); … … 116 103 if (res != EOK) { 117 104 free(buf); 118 chardev_close(chardev);119 105 serial_close(serial); 120 106 async_hangup(sess); … … 125 111 if (EOK != res) { 126 112 free(buf); 127 chardev_close(chardev);128 113 serial_close(serial); 129 114 async_hangup(sess); … … 136 121 size_t total = 0; 137 122 while (total < cnt) { 138 139 rc = chardev_read(chardev, buf, cnt - total, &nread);140 if (r c != EOK) {123 ssize_t read = char_dev_read(sess, buf, cnt - total); 124 125 if (read < 0) { 141 126 (void) serial_set_comm_props(serial, old_baud, 142 127 old_par, old_word_size, old_stop); 143 128 144 129 free(buf); 145 chardev_close(chardev);146 130 serial_close(serial); 147 131 async_hangup(sess); … … 149 133 } 150 134 151 if ( nread > cnt - total) {135 if ((size_t) read > cnt - total) { 152 136 (void) serial_set_comm_props(serial, old_baud, 153 137 old_par, old_word_size, old_stop); 154 138 155 139 free(buf); 156 chardev_close(chardev);157 140 serial_close(serial); 158 141 async_hangup(sess); … … 160 143 } 161 144 162 TPRINTF("Read %zd bytes\n", nread);163 164 if ( nread == 0)145 TPRINTF("Read %zd bytes\n", read); 146 147 if (read == 0) 165 148 thread_usleep(DEFAULT_SLEEP); 166 149 else { 167 buf[ nread] = 0;150 buf[read] = 0; 168 151 169 152 /* … … 171 154 * direction of data transfer. 172 155 */ 173 rc = chardev_write(chardev, buf, nread, &nwritten); 174 if (rc != EOK) { 156 ssize_t written = char_dev_write(sess, buf, read); 157 158 if (written < 0) { 175 159 (void) serial_set_comm_props(serial, old_baud, 176 160 old_par, old_word_size, old_stop); 177 161 178 162 free(buf); 179 chardev_close(chardev);180 163 serial_close(serial); 181 164 async_hangup(sess); … … 183 166 } 184 167 185 if ( nwritten != nread) {168 if (written != read) { 186 169 (void) serial_set_comm_props(serial, old_baud, 187 170 old_par, old_word_size, old_stop); 188 171 189 172 free(buf); 190 chardev_close(chardev);191 173 serial_close(serial); 192 174 async_hangup(sess); … … 194 176 } 195 177 196 TPRINTF("Written %zd bytes\n", nwritten);197 } 198 199 total += nread;178 TPRINTF("Written %zd bytes\n", written); 179 } 180 181 total += read; 200 182 } 201 183 … … 203 185 204 186 size_t eot_size = str_size(EOT); 205 rc = chardev_write(chardev, (void *) EOT, eot_size, &nwritten);187 ssize_t written = char_dev_write(sess, (void *) EOT, eot_size); 206 188 207 189 (void) serial_set_comm_props(serial, old_baud, old_par, old_word_size, … … 209 191 210 192 free(buf); 211 chardev_close(chardev);212 193 serial_close(serial); 213 194 async_hangup(sess); 214 195 215 if ( rc != EOK)196 if (written < 0) 216 197 return "Failed to write EOT banner to serial device"; 217 198 218 if ( nwritten != eot_size)199 if ((size_t) written != eot_size) 219 200 return "Written less data than the size of the EOT banner " 220 201 "to serial device";
Note:
See TracChangeset
for help on using the changeset viewer.