Changeset 3f03199 in mainline for uspace/app
- Timestamp:
- 2013-09-15T06:33:53Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9348862
- Parents:
- dd7078c (diff), 1c0cef0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/app
- Files:
-
- 8 added
- 14 edited
-
bdsh/cmds/modules/mount/mount.c (modified) (1 diff)
-
corecfg/Makefile (added)
-
corecfg/corecfg.c (added)
-
devctl/devctl.c (modified) (7 diffs)
-
df/Makefile (added)
-
df/df.c (added)
-
download/Makefile (added)
-
download/main.c (added)
-
edit/sheet.c (modified) (4 diffs)
-
init/init.c (modified) (2 diffs)
-
klog/klog.c (modified) (1 diff)
-
netspeed/Makefile (added)
-
netspeed/netspeed.c (added)
-
sportdmp/sportdmp.c (modified) (9 diffs)
-
tester/mm/common.c (modified) (2 diffs)
-
trace/trace.c (modified) (1 diff)
-
usbinfo/dump.c (modified) (1 diff)
-
usbinfo/hid.c (modified) (1 diff)
-
wavplay/dplay.c (modified) (5 diffs)
-
wavplay/drec.c (modified) (1 diff)
-
wavplay/main.c (modified) (2 diffs)
-
wavplay/wave.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bdsh/cmds/modules/mount/mount.c
rdd7078c r3f03199 74 74 get_mtab_list(&mtab_list); 75 75 76 list_foreach(mtab_list, cur) { 77 mtab_ent_t *mtab_ent = list_get_instance(cur, mtab_ent_t, 78 link); 79 76 list_foreach(mtab_list, link, mtab_ent_t, mtab_ent) { 80 77 if (old_ent) 81 78 free(old_ent); -
uspace/app/devctl/devctl.c
rdd7078c r3f03199 35 35 #include <devman.h> 36 36 #include <errno.h> 37 #include <stdbool.h> 37 38 #include <stdio.h> 38 39 #include <stdlib.h> … … 44 45 #define MAX_NAME_LENGTH 1024 45 46 46 char name[MAX_NAME_LENGTH]; 47 char drv_name[MAX_NAME_LENGTH]; 47 static char name[MAX_NAME_LENGTH]; 48 static char drv_name[MAX_NAME_LENGTH]; 49 static bool verbose = false; 50 51 static const char *drv_state_str(driver_state_t state) 52 { 53 const char *sstate; 54 55 switch (state) { 56 case DRIVER_NOT_STARTED: 57 sstate = "not started"; 58 break; 59 case DRIVER_STARTING: 60 sstate = "starting"; 61 break; 62 case DRIVER_RUNNING: 63 sstate = "running"; 64 break; 65 default: 66 sstate = "unknown"; 67 } 68 69 return sstate; 70 } 48 71 49 72 static int fun_subtree_print(devman_handle_t funh, int lvl) … … 52 75 devman_handle_t *cfuns; 53 76 size_t count, i; 77 unsigned int score; 54 78 int rc; 55 79 int j; … … 74 98 printf("%s : %s\n", name, drv_name); 75 99 100 if (verbose) { 101 for (i = 0; true; i++) { 102 rc = devman_fun_get_match_id(funh, i, name, MAX_NAME_LENGTH, 103 &score); 104 if (rc != EOK) 105 break; 106 107 for (j = 0; j < lvl; j++) 108 printf(" "); 109 110 printf(" %u %s\n", score, name); 111 } 112 } 113 76 114 rc = devman_fun_get_child(funh, &devh); 77 115 if (rc == ENOENT) … … 159 197 } 160 198 199 static int drv_list(void) 200 { 201 devman_handle_t *devs; 202 devman_handle_t *drvs; 203 driver_state_t state; 204 const char *sstate; 205 size_t ndrvs; 206 size_t ndevs; 207 size_t i; 208 int rc; 209 210 rc = devman_get_drivers(&drvs, &ndrvs); 211 if (rc != EOK) 212 return rc; 213 214 for (i = 0; i < ndrvs; i++) { 215 devs = NULL; 216 217 rc = devman_driver_get_name(drvs[i], drv_name, MAX_NAME_LENGTH); 218 if (rc != EOK) 219 goto skip; 220 rc = devman_driver_get_state(drvs[i], &state); 221 if (rc != EOK) 222 goto skip; 223 rc = devman_driver_get_devices(drvs[i], &devs, &ndevs); 224 if (rc != EOK) 225 goto skip; 226 227 sstate = drv_state_str(state); 228 229 printf("%-11s %3zu %s\n", sstate, ndevs, drv_name); 230 skip: 231 free(devs); 232 } 233 free(drvs); 234 235 return EOK; 236 } 237 238 static int drv_show(char *drvname) 239 { 240 devman_handle_t *devs; 241 devman_handle_t drvh; 242 devman_handle_t funh; 243 driver_state_t state; 244 const char *sstate; 245 unsigned int score; 246 size_t ndevs; 247 size_t i; 248 int rc; 249 250 rc = devman_driver_get_handle(drvname, &drvh); 251 if (rc != EOK) 252 return rc; 253 254 devs = NULL; 255 256 rc = devman_driver_get_name(drvh, drv_name, MAX_NAME_LENGTH); 257 if (rc != EOK) 258 return rc; 259 260 rc = devman_driver_get_state(drvh, &state); 261 if (rc != EOK) 262 return rc; 263 264 rc = devman_driver_get_devices(drvh, &devs, &ndevs); 265 if (rc != EOK) 266 return rc; 267 268 sstate = drv_state_str(state); 269 270 printf("Driver: %s\n", drv_name); 271 printf("State: %s\n", sstate); 272 273 printf("Attached devices:\n"); 274 275 for (i = 0; i < ndevs; i++) { 276 rc = devman_dev_get_parent(devs[i], &funh); 277 if (rc != EOK) 278 goto error; 279 280 rc = devman_fun_get_path(funh, name, MAX_NAME_LENGTH); 281 if (rc != EOK) 282 goto error; 283 printf("\t%s\n", name); 284 } 285 286 printf("Match IDs:\n"); 287 288 for (i = 0; true; i++) { 289 rc = devman_driver_get_match_id(drvh, i, name, MAX_NAME_LENGTH, 290 &score); 291 if (rc != EOK) 292 break; 293 294 printf("\t%u %s\n", score, name); 295 } 296 297 error: 298 free(devs); 299 300 return EOK; 301 } 302 303 static int drv_load(const char *drvname) 304 { 305 int rc; 306 devman_handle_t drvh; 307 308 rc = devman_driver_get_handle(drvname, &drvh); 309 if (rc != EOK) { 310 printf("Failed resolving driver '%s' (%d).\n", drvname, rc); 311 return rc; 312 } 313 314 rc = devman_driver_load(drvh); 315 if (rc != EOK) { 316 printf("Failed loading driver '%s' (%d).\n", drvname, rc); 317 return rc; 318 } 319 320 return EOK; 321 } 322 161 323 static void print_syntax(void) 162 324 { 163 printf("syntax: devctl [(online|offline) <function>]\n"); 325 printf("syntax:\n"); 326 printf("\tdevctl\n"); 327 printf("\tdevctl online <function>]\n"); 328 printf("\tdevctl offline <function>]\n"); 329 printf("\tdevctl list-drv\n"); 330 printf("\tdevctl show-drv <driver-name>\n"); 331 printf("\tdevctl load-drv <driver-name>\n"); 164 332 } 165 333 … … 168 336 int rc; 169 337 170 if (argc == 1) { 338 if (argc == 1 || argv[1][0] == '-') { 339 if (argc > 1) { 340 if (str_cmp(argv[1], "-v") == 0) { 341 verbose = true; 342 } else { 343 printf(NAME ": Invalid argument '%s'\n", argv[1]); 344 print_syntax(); 345 return 1; 346 } 347 } 171 348 rc = fun_tree_print(); 172 349 if (rc != EOK) … … 194 371 return 2; 195 372 } 373 } else if (str_cmp(argv[1], "list-drv") == 0) { 374 rc = drv_list(); 375 if (rc != EOK) 376 return 2; 377 } else if (str_cmp(argv[1], "show-drv") == 0) { 378 if (argc < 3) { 379 printf(NAME ": Argument missing.\n"); 380 print_syntax(); 381 return 1; 382 } 383 384 rc = drv_show(argv[2]); 385 if (rc != EOK) { 386 return 2; 387 } 388 } else if (str_cmp(argv[1], "load-drv") == 0) { 389 if (argc < 3) { 390 printf(NAME ": Argument missing.\n"); 391 print_syntax(); 392 return 1; 393 } 394 395 rc = drv_load(argv[2]); 396 if (rc != EOK) 397 return 2; 196 398 } else { 197 399 printf(NAME ": Invalid argument '%s'.\n", argv[1]); -
uspace/app/edit/sheet.c
rdd7078c r3f03199 105 105 char *ipp; 106 106 size_t sz; 107 tag_t *tag;108 107 char *newp; 109 108 … … 128 127 /* Adjust tags. */ 129 128 130 list_foreach(sh->tags, link) { 131 tag = list_get_instance(link, tag_t, link); 132 129 list_foreach(sh->tags, link, tag_t, tag) { 133 130 if (tag->b_off > pos->b_off) 134 131 tag->b_off += sz; … … 154 151 char *spp; 155 152 size_t sz; 156 tag_t *tag;157 153 char *newp; 158 154 size_t shrink_size; … … 165 161 166 162 /* Adjust tags. */ 167 list_foreach(sh->tags, link) { 168 tag = list_get_instance(link, tag_t, link); 169 163 list_foreach(sh->tags, link, tag_t, tag) { 170 164 if (tag->b_off >= epos->b_off) 171 165 tag->b_off -= sz; -
uspace/app/init/init.c
rdd7078c r3f03199 384 384 srv_start("/srv/input", HID_INPUT); 385 385 srv_start("/srv/output", HID_OUTPUT); 386 srv_start("/srv/hound"); 386 387 387 388 int rc = compositor(HID_INPUT, HID_COMPOSITOR_SERVER); … … 392 393 rc = console(HID_INPUT, HID_OUTPUT); 393 394 if (rc == EOK) { 394 #ifndef CONFIG_VC_COUNT 395 #define CONFIG_VC_COUNT 6 396 #endif 397 switch((unsigned)CONFIG_VC_COUNT) { 398 default: 399 case 6: getterm("term/vc5", "/app/bdsh", false); 400 case 5: getterm("term/vc4", "/app/bdsh", false); 401 case 4: getterm("term/vc3", "/app/bdsh", false); 402 case 3: getterm("term/vc2", "/app/bdsh", false); 403 case 2: getterm("term/vc1", "/app/bdsh", false); 404 case 1: getterm("term/vc0", "/app/bdsh", true); 405 } 406 #ifdef CONFIG_KERNEL_LOG_VC_6 395 getterm("term/vc0", "/app/bdsh", true); 396 getterm("term/vc1", "/app/bdsh", false); 397 getterm("term/vc2", "/app/bdsh", false); 398 getterm("term/vc3", "/app/bdsh", false); 399 getterm("term/vc4", "/app/bdsh", false); 400 getterm("term/vc5", "/app/bdsh", false); 407 401 getterm("term/vc6", "/app/klog", false); 408 #endif409 402 } 410 403 } 411 srv_start("/srv/hound");412 404 413 405 return 0; -
uspace/app/klog/klog.c
rdd7078c r3f03199 206 206 klog_length = size / sizeof(wchar_t); 207 207 208 rc = physmem_map( (void *) faddr, pages,209 AS_AREA_READ | AS_AREA_CACHEABLE,(void *) &klog);208 rc = physmem_map(faddr, pages, AS_AREA_READ | AS_AREA_CACHEABLE, 209 (void *) &klog); 210 210 if (rc != EOK) { 211 211 fprintf(stderr, "%s: Unable to map klog\n", NAME); -
uspace/app/sportdmp/sportdmp.c
rdd7078c r3f03199 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 111 112 112 113 async_sess_t *sess = loc_service_connect(EXCHANGE_SERIALIZE, svc_id, 113 114 IPC_FLAG_BLOCKING); … … 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 -
uspace/app/tester/mm/common.c
rdd7078c r3f03199 84 84 } 85 85 86 static bool overlap_match(link_t *link, void *addr, size_t size) 87 { 88 mem_block_t *block = list_get_instance(link, mem_block_t, link); 89 86 static bool overlap_match(mem_block_t *block, void *addr, size_t size) 87 { 90 88 /* Entry block control structure <mbeg, mend) */ 91 89 uint8_t *mbeg = (uint8_t *) block; … … 125 123 bool fnd = false; 126 124 127 list_foreach(mem_blocks, link ) {128 if (overlap_match( link, addr, size)) {125 list_foreach(mem_blocks, link, mem_block_t, block) { 126 if (overlap_match(block, addr, size)) { 129 127 fnd = true; 130 128 break; -
uspace/app/trace/trace.c
rdd7078c r3f03199 724 724 o = oper_new("stat", 0, arg_def, V_ERRNO, 0, resp_def); 725 725 proto_add_oper(p, VFS_IN_STAT, o); 726 o = oper_new("statfs", 0, arg_def, V_ERRNO, 0, resp_def); 727 proto_add_oper(p, VFS_IN_STATFS, o); 726 728 727 729 proto_register(SERVICE_VFS, p); -
uspace/app/usbinfo/dump.c
rdd7078c r3f03199 103 103 void dump_match_ids(match_id_list_t *matches, const char *line_prefix) 104 104 { 105 list_foreach(matches->ids, link) { 106 match_id_t *match = list_get_instance(link, match_id_t, link); 107 105 list_foreach(matches->ids, link, match_id_t, match) { 108 106 printf("%s%3d %s\n", line_prefix, match->score, match->id); 109 107 } -
uspace/app/usbinfo/hid.c
rdd7078c r3f03199 101 101 printf("%sParsed HID report descriptor for interface %d\n", 102 102 get_indent(0), iface_no); 103 list_foreach(report->reports, report_it) { 104 usb_hid_report_description_t *description = list_get_instance( 105 report_it, usb_hid_report_description_t, reports_link); 103 list_foreach(report->reports, reports_link, 104 usb_hid_report_description_t, description) { 106 105 printf("%sReport %d (type %d)\n", get_indent(1), 107 106 (int) description->report_id, 108 107 (int) description->type); 109 list_foreach(description->report_items, item_it) { 110 usb_hid_report_field_t *field = list_get_instance( 111 item_it, usb_hid_report_field_t, ritems_link); 108 list_foreach(description->report_items, ritems_link, 109 usb_hid_report_field_t, field) { 112 110 printf("%sUsage page = 0x%04x Usage = 0x%04x\n", 113 111 get_indent(2), -
uspace/app/wavplay/dplay.c
rdd7078c r3f03199 151 151 device_event_callback, pb); 152 152 if (ret != EOK) { 153 printf("Failed to register event callback.\n"); 153 printf("Failed to register event callback: %s.\n", 154 str_error(ret)); 154 155 return; 155 156 } … … 285 286 pb->f.sample_format); 286 287 if (ret != EOK) { 287 printf("Failed to start playback\n"); 288 printf("Failed to start playback: %s\n", 289 str_error(ret)); 288 290 return; 289 291 } … … 291 293 ret = audio_pcm_get_buffer_pos(pb->device, &pos); 292 294 if (ret != EOK) { 293 printf("Failed to update position indicator\n"); 295 printf("Failed to update position indicator " 296 "%s\n", str_error(ret)); 294 297 } 295 298 } … … 308 311 const int ret = audio_pcm_get_buffer_pos(pb->device, &pos); 309 312 if (ret != EOK) { 310 printf("Failed to update position indicator\n"); 313 printf("Failed to update position indicator %s\n", 314 str_error(ret)); 311 315 } 312 316 getuptime(&time); … … 350 354 ret = audio_pcm_get_info_str(session, &info); 351 355 if (ret != EOK) { 352 printf("Failed to get PCM info .\n");356 printf("Failed to get PCM info: %s.\n", str_error(ret)); 353 357 goto close_session; 354 358 } -
uspace/app/wavplay/drec.c
rdd7078c r3f03199 213 213 wave_header_t header; 214 214 fseek(rec.file, sizeof(header), SEEK_SET); 215 const char *error; 216 if (ret != EOK) { 217 printf("Error parsing wav header: %s.\n", error); 215 if (ret != EOK) { 216 printf("Error parsing wav header\n"); 218 217 goto cleanup; 219 218 } -
uspace/app/wavplay/main.c
rdd7078c r3f03199 79 79 &format.sampling_rate, &format.sample_format, &error); 80 80 if (ret != EOK) { 81 printf("Error parsing wav header: %s.\n", error);81 printf("Error parsing `%s' wav header: %s.\n", filename, error); 82 82 fclose(source); 83 83 return EINVAL; 84 84 } 85 86 printf("File `%s' format: %u channel(s), %uHz, %s.\n", filename, 87 format.channels, format.sampling_rate, 88 pcm_sample_format_str(format.sample_format)); 85 89 86 90 /* Allocate buffer and create new context */ … … 136 140 &format.sampling_rate, &format.sample_format, &error); 137 141 if (ret != EOK) { 138 printf("Error parsing wav header: %s.\n", error);142 printf("Error parsing `%s' wav header: %s.\n", filename, error); 139 143 fclose(source); 140 144 return EINVAL; 141 145 } 146 printf("File `%s' format: %u channel(s), %uHz, %s.\n", filename, 147 format.channels, format.sampling_rate, 148 pcm_sample_format_str(format.sample_format)); 142 149 143 150 /* Connect new playback context */ -
uspace/app/wavplay/wave.c
rdd7078c r3f03199 81 81 } 82 82 83 if (uint16_t_le2host(header->subchunk1_size) != PCM_SUBCHUNK1_SIZE) { 83 if (uint32_t_le2host(header->subchunk1_size) != PCM_SUBCHUNK1_SIZE) { 84 //TODO subchunk 1 sizes other than 16 are allowed ( 18, 40) 85 //http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/WAVE/WAVE.html 84 86 if (error) 85 87 *error = "invalid subchunk1 size"; 86 return EINVAL;88 // return EINVAL; 87 89 } 88 90 … … 94 96 95 97 if (str_lcmp(header->subchunk2_id, SUBCHUNK2_ID, 4) != 0) { 98 //TODO basedd on subchunk1 size, we might be reading wrong 99 //offset 96 100 if (error) 97 101 *error = "invalid subchunk2 id"; 98 return EINVAL;102 // return EINVAL; 99 103 } 100 104 101 105 106 //TODO data and data_size are incorrect in extended wav formats 107 //pcm params are OK 102 108 if (data) 103 109 *data = header->data;
Note:
See TracChangeset
for help on using the changeset viewer.
