Changes in kernel/generic/src/console/cmd.c [2f33fbc:3266412] in mainline
- File:
-
- 1 edited
-
kernel/generic/src/console/cmd.c (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/console/cmd.c
r2f33fbc r3266412 45 45 #include <console/kconsole.h> 46 46 #include <print.h> 47 #include <log.h> 47 48 #include <panic.h> 48 49 #include <typedefs.h> … … 69 70 #include <sysinfo/sysinfo.h> 70 71 #include <symtab.h> 72 #include <synch/workqueue.h> 73 #include <synch/rcu.h> 71 74 #include <errno.h> 72 75 … … 203 206 .func = cmd_test, 204 207 .argc = 1, 205 .argv = test_argv 208 .argv = test_argv, 209 .hints_enum = tests_hints_enum 206 210 }; 207 211 … … 243 247 .func = cmd_desc, 244 248 .argc = 1, 245 .argv = &desc_argv 249 .argv = &desc_argv, 250 .hints_enum = cmdtab_enum 246 251 }; 247 252 … … 259 264 .func = cmd_symaddr, 260 265 .argc = 1, 261 .argv = &symaddr_argv 266 .argv = &symaddr_argv, 267 .hints_enum = symtab_hints_enum, 262 268 }; 263 269 … … 300 306 .func = cmd_call0, 301 307 .argc = 1, 302 .argv = &call0_argv 308 .argv = &call0_argv, 309 .hints_enum = symtab_hints_enum 303 310 }; 304 311 … … 315 322 .func = cmd_mcall0, 316 323 .argc = 1, 317 .argv = &mcall0_argv 324 .argv = &mcall0_argv, 325 .hints_enum = symtab_hints_enum 318 326 }; 319 327 … … 337 345 .func = cmd_call1, 338 346 .argc = 2, 339 .argv = call1_argv 347 .argv = call1_argv, 348 .hints_enum = symtab_hints_enum 340 349 }; 341 350 … … 364 373 .func = cmd_call2, 365 374 .argc = 3, 366 .argv = call2_argv 375 .argv = call2_argv, 376 .hints_enum = symtab_hints_enum 367 377 }; 368 378 … … 397 407 .func = cmd_call3, 398 408 .argc = 4, 399 .argv = call3_argv 409 .argv = call3_argv, 410 .hints_enum = symtab_hints_enum 400 411 }; 401 412 … … 523 534 .argc = 1, 524 535 .argv = &zone_argv 536 }; 537 538 /* Data and methods for the 'workq' command */ 539 static int cmd_workq(cmd_arg_t *argv); 540 static cmd_info_t workq_info = { 541 .name = "workq", 542 .description = "Show global workq information.", 543 .func = cmd_workq, 544 .argc = 0 545 }; 546 547 /* Data and methods for the 'workq' command */ 548 static int cmd_rcu(cmd_arg_t *argv); 549 static cmd_info_t rcu_info = { 550 .name = "rcu", 551 .description = "Show RCU run-time statistics.", 552 .func = cmd_rcu, 553 .argc = 0 525 554 }; 526 555 … … 588 617 &physmem_info, 589 618 &reboot_info, 619 &rcu_info, 590 620 &sched_info, 591 621 &set4_info, … … 598 628 &uptime_info, 599 629 &version_info, 630 &workq_info, 600 631 &zones_info, 601 632 &zone_info, … … 639 670 for (i = 0; basic_commands[i]; i++) { 640 671 if (!cmd_register(basic_commands[i])) { 641 printf("Cannot register command %s\n", 672 log(LF_OTHER, LVL_ERROR, 673 "Cannot register command %s", 642 674 basic_commands[i]->name); 643 675 } … … 656 688 657 689 size_t len = 0; 658 list_foreach(cmd_list, cur) { 659 cmd_info_t *hlp; 660 hlp = list_get_instance(cur, cmd_info_t, link); 661 690 list_foreach(cmd_list, link, cmd_info_t, hlp) { 662 691 spinlock_lock(&hlp->lock); 663 692 if (str_length(hlp->name) > len) … … 668 697 unsigned int _len = (unsigned int) len; 669 698 if ((_len != len) || (((int) _len) < 0)) { 670 printf("Command length overflow\n");699 log(LF_OTHER, LVL_ERROR, "Command length overflow"); 671 700 return 1; 672 701 } 673 702 674 list_foreach(cmd_list, cur) { 675 cmd_info_t *hlp; 676 hlp = list_get_instance(cur, cmd_info_t, link); 677 703 list_foreach(cmd_list, link, cmd_info_t, hlp) { 678 704 spinlock_lock(&hlp->lock); 679 705 printf("%-*s %s\n", _len, hlp->name, hlp->description); … … 912 938 spinlock_lock(&cmd_lock); 913 939 914 list_foreach(cmd_list, cur) { 915 cmd_info_t *hlp; 916 917 hlp = list_get_instance(cur, cmd_info_t, link); 940 list_foreach(cmd_list, link, cmd_info_t, hlp) { 918 941 spinlock_lock(&hlp->lock); 919 942 … … 1156 1179 int cmd_set4(cmd_arg_t *argv) 1157 1180 { 1158 uintptr_t addr ;1181 uintptr_t addr = 0; // Prevent -Werror=maybe-uninitialized 1159 1182 uint32_t arg1 = argv[1].intval; 1160 1183 bool pointer = false; … … 1280 1303 } 1281 1304 1305 /** Prints information about the global work queue. 1306 * 1307 * @param argv Ignores 1308 * 1309 * @return Always 1 1310 */ 1311 int cmd_workq(cmd_arg_t *argv) 1312 { 1313 workq_global_print_info(); 1314 return 1; 1315 } 1316 1317 /** Prints RCU statistics. 1318 * 1319 * @param argv Ignores 1320 * 1321 * @return Always 1 1322 */ 1323 int cmd_rcu(cmd_arg_t *argv) 1324 { 1325 rcu_print_stat(); 1326 return 1; 1327 } 1328 1282 1329 /** Command for listing memory zones 1283 1330 * … … 1364 1411 printf("The kernel will now relinquish the console.\n"); 1365 1412 release_console(); 1366 1367 event_notify_0(EVENT_KCONSOLE, false);1368 1413 indev_pop_character(stdin); 1369 1414
Note:
See TracChangeset
for help on using the changeset viewer.
