Title: [5867] trunk/arch/blackfin/kernel: merge kgdb test code using common CONFIG_KGDB_TESTS
Revision
5867
Author
vapier
Date
2008-12-16 16:49:46 -0600 (Tue, 16 Dec 2008)

Log Message

merge kgdb test code using common CONFIG_KGDB_TESTS

Modified Paths


Added Paths

Diff

Modified: trunk/arch/blackfin/kernel/Makefile (5866 => 5867)


--- trunk/arch/blackfin/kernel/Makefile	2008-12-16 18:32:14 UTC (rev 5866)
+++ trunk/arch/blackfin/kernel/Makefile	2008-12-16 22:49:46 UTC (rev 5867)
@@ -19,5 +19,6 @@
 obj-$(CONFIG_CPLB_INFO)              += cplbinfo.o
 obj-$(CONFIG_MODULES)                += module.o
 obj-$(CONFIG_KGDB)                   += kgdb.o
+obj-$(CONFIG_KGDB_TESTS)             += kgdb_test.o
 obj-$(CONFIG_EARLY_PRINTK)           += early_printk.o
 obj-$(CONFIG_DEBUG_MMRS)             += debug-mmrs.o

Added: trunk/arch/blackfin/kernel/kgdb_test.c (0 => 5867)


--- trunk/arch/blackfin/kernel/kgdb_test.c	                        (rev 0)
+++ trunk/arch/blackfin/kernel/kgdb_test.c	2008-12-16 22:49:46 UTC (rev 5867)
@@ -0,0 +1,89 @@
+/*
+ * arch/blackfin/kernel/kgdb_test.c - Blackfin kgdb tests
+ *
+ * Copyright 2005-2008 Analog Devices Inc.
+ *
+ * Licensed under the GPL-2 or later.
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/proc_fs.h>
+
+#include <asm/current.h>
+#include <asm/uaccess.h>
+#include <asm/system.h>
+
+#include <asm/blackfin.h>
+
+static char cmdline[256];
+static unsigned long len;
+
+int kgdb_test(char *name, int len, int count, int z)
+{
+	printk(KERN_DEBUG "kgdb name(%d): %s, %d, %d\n", len, name, count, z);
+	count = z;
+	return count;
+}
+
+static int test_proc_output(char *buf)
+{
+	kgdb_test("hello world!", 12, 0x55, 0x10);
+	return 0;
+}
+
+static int test_read_proc(char *page, char **start, off_t off,
+                          int count, int *eof, void *data)
+{
+	int len;
+
+	len = test_proc_output(page);
+	if (len <= off+count)
+		*eof = 1;
+	*start = page + off;
+	len -= off;
+	if (len > count)
+		len = count;
+	if (len < 0)
+		len = 0;
+	return len;
+}
+
+static int test_write_proc(struct file *file, const char *buffer,
+                           unsigned long count, void *data)
+{
+	if (count >= 256)
+		len = 255;
+	else
+		len = count;
+
+	memcpy(cmdline, buffer, count);
+	cmdline[len] = 0;
+
+	return len;
+}
+
+static int __init cplbtest_init(void)
+{
+	struct proc_dir_entry *entry;
+
+	entry = create_proc_entry("kgdbtest", 0, NULL);
+	if (entry == NULL)
+		return -ENOMEM;
+
+	entry->read_proc = test_read_proc;
+	entry->write_proc = test_write_proc;
+	entry->data = ""
+
+	return 0;
+}
+
+static void __exit cplbtest_exit(void)
+{
+	remove_proc_entry("kgdbtest", NULL);
+}
+
+module_init(cplbtest_init);
+module_exit(cplbtest_exit);
+MODULE_LICENSE("GPL");
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to