Changes in uspace/app/sportdmp/sportdmp.c [5c65e61:4c73361] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sportdmp/sportdmp.c
r5c65e61 r4c73361 27 27 */ 28 28 29 #include < char_dev_iface.h>29 #include <device/char_dev.h> 30 30 #include <errno.h> 31 31 #include <ipc/serial_ctl.h> … … 44 44 sysarg_t baud = 9600; 45 45 service_id_t svc_id; 46 46 47 47 int arg = 1; 48 48 int rc; 49 49 50 50 if (argc > arg && str_test_prefix(argv[arg], "--baud=")) { 51 51 size_t arg_offset = str_lsize(argv[arg], 7); … … 65 65 arg++; 66 66 } 67 67 68 68 if (argc > arg) { 69 69 rc = loc_service_get_id(argv[arg], &svc_id, 0); … … 77 77 else { 78 78 category_id_t serial_cat_id; 79 79 80 80 rc = loc_category_get_id("serial", &serial_cat_id, 0); 81 81 if (rc != EOK) { … … 84 84 return 1; 85 85 } 86 86 87 87 service_id_t *svc_ids; 88 88 size_t svc_count; 89 90 rc = loc_category_get_svcs(serial_cat_id, &svc_ids, &svc_count); 91 if (rc != EOK) { 89 90 rc = loc_category_get_svcs(serial_cat_id, &svc_ids, &svc_count); if (rc != EOK) { 92 91 fprintf(stderr, "Failed getting list of services\n"); 93 92 return 1; 94 93 } 95 94 96 95 if (svc_count == 0) { 97 96 fprintf(stderr, "No service in category 'serial'\n"); … … 99 98 return 1; 100 99 } 101 100 102 101 svc_id = svc_ids[0]; 103 102 free(svc_ids); 104 103 } 105 104 106 105 if (argc > arg) { 107 106 fprintf(stderr, "Too many arguments\n"); … … 109 108 return 1; 110 109 } 111 112 110 111 113 112 async_sess_t *sess = loc_service_connect(EXCHANGE_SERIALIZE, svc_id, 114 113 IPC_FLAG_BLOCKING); … … 116 115 fprintf(stderr, "Failed connecting to service\n"); 117 116 } 118 117 119 118 async_exch_t *exch = async_exchange_begin(sess); 120 119 rc = async_req_4_0(exch, SERIAL_SET_COM_PROPS, baud, 121 120 SERIAL_NO_PARITY, 8, 1); 122 121 async_exchange_end(exch); 123 122 124 123 if (rc != EOK) { 125 124 fprintf(stderr, "Failed setting serial properties\n"); 126 125 return 2; 127 126 } 128 127 129 128 uint8_t *buf = (uint8_t *) malloc(BUF_SIZE); 130 129 if (buf == NULL) { … … 132 131 return 3; 133 132 } 134 133 135 134 while (true) { 136 135 ssize_t read = char_dev_read(sess, buf, BUF_SIZE); … … 145 144 fflush(stdout); 146 145 } 147 146 148 147 free(buf); 149 148 return 0; 150 149 } 151
Note:
See TracChangeset
for help on using the changeset viewer.