14aad8f51SJason Wessel /* 24aad8f51SJason Wessel * Created by: Jason Wessel <jason.wessel@windriver.com> 34aad8f51SJason Wessel * 44aad8f51SJason Wessel * Copyright (c) 2010 Wind River Systems, Inc. All Rights Reserved. 54aad8f51SJason Wessel * 64aad8f51SJason Wessel * This file is licensed under the terms of the GNU General Public 74aad8f51SJason Wessel * License version 2. This program is licensed "as is" without any 84aad8f51SJason Wessel * warranty of any kind, whether express or implied. 94aad8f51SJason Wessel */ 104aad8f51SJason Wessel 114aad8f51SJason Wessel #include <linux/module.h> 124aad8f51SJason Wessel #include <linux/kdb.h> 134aad8f51SJason Wessel 144aad8f51SJason Wessel /* 154aad8f51SJason Wessel * All kdb shell command call backs receive argc and argv, where 164aad8f51SJason Wessel * argv[0] is the command the end user typed 174aad8f51SJason Wessel */ 184aad8f51SJason Wessel static int kdb_hello_cmd(int argc, const char **argv) 194aad8f51SJason Wessel { 204aad8f51SJason Wessel if (argc > 1) 214aad8f51SJason Wessel return KDB_ARGCOUNT; 224aad8f51SJason Wessel 234aad8f51SJason Wessel if (argc) 244aad8f51SJason Wessel kdb_printf("Hello %s.\n", argv[1]); 254aad8f51SJason Wessel else 264aad8f51SJason Wessel kdb_printf("Hello world!\n"); 274aad8f51SJason Wessel 284aad8f51SJason Wessel return 0; 294aad8f51SJason Wessel } 304aad8f51SJason Wessel 31*c25abcd6SSumit Garg static kdbtab_t hello_cmd = { 32*c25abcd6SSumit Garg .cmd_name = "hello", 33*c25abcd6SSumit Garg .cmd_func = kdb_hello_cmd, 34*c25abcd6SSumit Garg .cmd_usage = "[string]", 35*c25abcd6SSumit Garg .cmd_help = "Say Hello World or Hello [string]", 36*c25abcd6SSumit Garg }; 374aad8f51SJason Wessel 384aad8f51SJason Wessel static int __init kdb_hello_cmd_init(void) 394aad8f51SJason Wessel { 404aad8f51SJason Wessel /* 414aad8f51SJason Wessel * Registration of a dynamically added kdb command is done with 42*c25abcd6SSumit Garg * kdb_register(). 434aad8f51SJason Wessel */ 44*c25abcd6SSumit Garg kdb_register(&hello_cmd); 454aad8f51SJason Wessel return 0; 464aad8f51SJason Wessel } 474aad8f51SJason Wessel 484aad8f51SJason Wessel static void __exit kdb_hello_cmd_exit(void) 494aad8f51SJason Wessel { 50*c25abcd6SSumit Garg kdb_unregister(&hello_cmd); 514aad8f51SJason Wessel } 524aad8f51SJason Wessel 534aad8f51SJason Wessel module_init(kdb_hello_cmd_init); 544aad8f51SJason Wessel module_exit(kdb_hello_cmd_exit); 554aad8f51SJason Wessel 564aad8f51SJason Wessel MODULE_AUTHOR("WindRiver"); 574aad8f51SJason Wessel MODULE_DESCRIPTION("KDB example to add a hello command"); 584aad8f51SJason Wessel MODULE_LICENSE("GPL"); 59