Changes in uspace/app/sportdmp/sportdmp.c [4c73361:f9b2cb4c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sportdmp/sportdmp.c
r4c73361 rf9b2cb4c 27 27 */ 28 28 29 #include < device/char_dev.h>29 #include <char_dev_iface.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); if (rc != EOK) { 89 90 rc = loc_category_get_svcs(serial_cat_id, &svc_ids, &svc_count); 91 if (rc != EOK) { 91 92 fprintf(stderr, "Failed getting list of services\n"); 92 93 return 1; 93 94 } 94 95 95 96 if (svc_count == 0) { 96 97 fprintf(stderr, "No service in category 'serial'\n"); … … 98 99 return 1; 99 100 } 100 101 101 102 svc_id = svc_ids[0]; 102 103 free(svc_ids); 103 104 } 104 105 105 106 if (argc > arg) { 106 107 fprintf(stderr, "Too many arguments\n"); … … 108 109 return 1; 109 110 } 110 111 112 async_sess_t *sess = loc_service_connect( EXCHANGE_SERIALIZE, svc_id,111 112 113 async_sess_t *sess = loc_service_connect(svc_id, INTERFACE_DDF, 113 114 IPC_FLAG_BLOCKING); 114 115 if (!sess) { 115 116 fprintf(stderr, "Failed connecting to service\n"); 116 117 } 117 118 118 119 async_exch_t *exch = async_exchange_begin(sess); 119 120 rc = async_req_4_0(exch, SERIAL_SET_COM_PROPS, baud, 120 121 SERIAL_NO_PARITY, 8, 1); 121 122 async_exchange_end(exch); 122 123 123 124 if (rc != EOK) { 124 125 fprintf(stderr, "Failed setting serial properties\n"); 125 126 return 2; 126 127 } 127 128 128 129 uint8_t *buf = (uint8_t *) malloc(BUF_SIZE); 129 130 if (buf == NULL) { … … 131 132 return 3; 132 133 } 133 134 134 135 while (true) { 135 136 ssize_t read = char_dev_read(sess, buf, BUF_SIZE); … … 144 145 fflush(stdout); 145 146 } 146 147 147 148 free(buf); 148 149 return 0; 149 150 } 151
Note:
See TracChangeset
for help on using the changeset viewer.