forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add an example of how to add a dynamic kdb shell command via a kernel module. Signed-off-by: Jason Wessel <[email protected]>
- Loading branch information
Showing
5 changed files
with
81 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Makefile for Linux samples code | ||
|
||
obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ tracepoints/ trace_events/ \ | ||
hw_breakpoint/ kfifo/ | ||
hw_breakpoint/ kfifo/ kdb/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
obj-$(CONFIG_SAMPLE_KDB) += kdb_hello.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* Created by: Jason Wessel <[email protected]> | ||
* | ||
* Copyright (c) 2010 Wind River Systems, Inc. All Rights Reserved. | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
#include <linux/module.h> | ||
#include <linux/kdb.h> | ||
|
||
/* | ||
* All kdb shell command call backs receive argc and argv, where | ||
* argv[0] is the command the end user typed | ||
*/ | ||
static int kdb_hello_cmd(int argc, const char **argv) | ||
{ | ||
if (argc > 1) | ||
return KDB_ARGCOUNT; | ||
|
||
if (argc) | ||
kdb_printf("Hello %s.\n", argv[1]); | ||
else | ||
kdb_printf("Hello world!\n"); | ||
|
||
return 0; | ||
} | ||
|
||
|
||
static int __init kdb_hello_cmd_init(void) | ||
{ | ||
/* | ||
* Registration of a dynamically added kdb command is done with | ||
* kdb_register() with the arguments being: | ||
* 1: The name of the shell command | ||
* 2: The function that processes the command | ||
* 3: Description of the usage of any arguments | ||
* 4: Descriptive text when you run help | ||
* 5: Number of characters to complete the command | ||
* 0 == type the whole command | ||
* 1 == match both "g" and "go" for example | ||
*/ | ||
kdb_register("hello", kdb_hello_cmd, "[string]", | ||
"Say Hello World or Hello [string]", 0); | ||
return 0; | ||
} | ||
|
||
static void __exit kdb_hello_cmd_exit(void) | ||
{ | ||
kdb_unregister("hello"); | ||
} | ||
|
||
module_init(kdb_hello_cmd_init); | ||
module_exit(kdb_hello_cmd_exit); | ||
|
||
MODULE_AUTHOR("WindRiver"); | ||
MODULE_DESCRIPTION("KDB example to add a hello command"); | ||
MODULE_LICENSE("GPL"); |