Ignore:
Timestamp:
2017-11-22T17:36:54Z (6 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7a6065c
Parents:
c4c6025
git-author:
Jiri Svoboda <jiri@…> (2017-11-22 15:53:34)
git-committer:
Jiri Svoboda <jiri@…> (2017-11-22 17:36:54)
Message:

Convert char_dev_iface users to chardev.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tester/hw/serial/serial1.c

    rc4c6025 r74017ce  
    3535 */
    3636
    37 #include <inttypes.h>
     37#include <async.h>
    3838#include <errno.h>
     39#include <io/chardev.h>
     40#include <io/serial.h>
     41#include <ipc/services.h>
     42#include <loc.h>
    3943#include <stdlib.h>
    4044#include <stdio.h>
    4145#include <stddef.h>
    42 #include <async.h>
     46#include <str.h>
    4347#include <thread.h>
    44 #include <ipc/services.h>
    45 #include <loc.h>
    46 #include <char_dev_iface.h>
    47 #include <str.h>
    48 #include <io/serial.h>
    4948#include "../../tester.h"
    5049
     
    5756        size_t cnt;
    5857        serial_t *serial;
     58        chardev_t *chardev;
     59        int rc;
     60        size_t nread;
     61        size_t nwritten;
    5962       
    6063        if (test_argc < 1)
     
    8386                return "Failed connecting to serial device";
    8487       
     88        res = chardev_open(sess, &chardev);
     89        if (res != EOK) {
     90                async_hangup(sess);
     91                return "Failed opening serial port";
     92        }
     93       
    8594        res = serial_open(sess, &serial);
    86         if (res != EOK)
     95        if (res != EOK) {
     96                chardev_close(chardev);
     97                async_hangup(sess);
    8798                return "Failed opening serial port";
     99        }
    88100       
    89101        char *buf = (char *) malloc(cnt + 1);
    90102        if (buf == NULL) {
     103                chardev_close(chardev);
    91104                serial_close(serial);
    92105                async_hangup(sess);
     
    103116        if (res != EOK) {
    104117                free(buf);
     118                chardev_close(chardev);
    105119                serial_close(serial);
    106120                async_hangup(sess);
     
    111125        if (EOK != res) {
    112126                free(buf);
     127                chardev_close(chardev);
    113128                serial_close(serial);
    114129                async_hangup(sess);
     
    121136        size_t total = 0;
    122137        while (total < cnt) {
    123                 ssize_t read = char_dev_read(sess, buf, cnt - total);
    124                
    125                 if (read < 0) {
     138               
     139                rc = chardev_read(chardev, buf, cnt - total, &nread);
     140                if (rc != EOK) {
    126141                        (void) serial_set_comm_props(serial, old_baud,
    127142                            old_par, old_word_size, old_stop);
    128143                       
    129144                        free(buf);
     145                        chardev_close(chardev);
    130146                        serial_close(serial);
    131147                        async_hangup(sess);
     
    133149                }
    134150               
    135                 if ((size_t) read > cnt - total) {
     151                if (nread > cnt - total) {
    136152                        (void) serial_set_comm_props(serial, old_baud,
    137153                            old_par, old_word_size, old_stop);
    138154                       
    139155                        free(buf);
     156                        chardev_close(chardev);
    140157                        serial_close(serial);
    141158                        async_hangup(sess);
     
    143160                }
    144161               
    145                 TPRINTF("Read %zd bytes\n", read);
    146                
    147                 if (read == 0)
     162                TPRINTF("Read %zd bytes\n", nread);
     163               
     164                if (nread == 0)
    148165                        thread_usleep(DEFAULT_SLEEP);
    149166                else {
    150                         buf[read] = 0;
     167                        buf[nread] = 0;
    151168                       
    152169                        /*
     
    154171                         * direction of data transfer.
    155172                         */
    156                         ssize_t written = char_dev_write(sess, buf, read);
    157                        
    158                         if (written < 0) {
     173                        rc = chardev_write(chardev, buf, nread, &nwritten);
     174                        if (rc != EOK) {
    159175                                (void) serial_set_comm_props(serial, old_baud,
    160176                                    old_par, old_word_size, old_stop);
    161177                               
    162178                                free(buf);
     179                                chardev_close(chardev);
    163180                                serial_close(serial);
    164181                                async_hangup(sess);
     
    166183                        }
    167184                       
    168                         if (written != read) {
     185                        if (nwritten != nread) {
    169186                                (void) serial_set_comm_props(serial, old_baud,
    170187                                    old_par, old_word_size, old_stop);
    171188                               
    172189                                free(buf);
     190                                chardev_close(chardev);
    173191                                serial_close(serial);
    174192                                async_hangup(sess);
     
    176194                        }
    177195                       
    178                         TPRINTF("Written %zd bytes\n", written);
    179                 }
    180                
    181                 total += read;
     196                        TPRINTF("Written %zd bytes\n", nwritten);
     197                }
     198               
     199                total += nread;
    182200        }
    183201       
     
    185203       
    186204        size_t eot_size = str_size(EOT);
    187         ssize_t written = char_dev_write(sess, (void *) EOT, eot_size);
     205        rc = chardev_write(chardev, (void *) EOT, eot_size, &nwritten);
    188206       
    189207        (void) serial_set_comm_props(serial, old_baud, old_par, old_word_size,
     
    191209       
    192210        free(buf);
     211        chardev_close(chardev);
    193212        serial_close(serial);
    194213        async_hangup(sess);
    195214       
    196         if (written < 0)
     215        if (rc != EOK)
    197216                return "Failed to write EOT banner to serial device";
    198217       
    199         if ((size_t) written != eot_size)
     218        if (nwritten != eot_size)
    200219                return "Written less data than the size of the EOT banner "
    201220                    "to serial device";
Note: See TracChangeset for help on using the changeset viewer.