4 * (C) Copyright hsl 2009
5 * Released under GPL v2.
9 * for debug function by sysfs
14 #include <linux/types.h>
15 #include <linux/init.h>
16 #include <linux/module.h>
17 #include <linux/moduleparam.h>
21 #include <linux/sched.h>
22 #include <linux/cdev.h>
24 #include <linux/wait.h>
26 #include <linux/uaccess.h>
27 #include <linux/errno.h>
28 #include <linux/poll.h>
29 #include <linux/timer.h>
30 #include <linux/spinlock_types.h>
31 #include <linux/string.h>
32 #include <linux/sysfs.h>
33 #include <linux/delay.h>
34 #include <linux/kallsyms.h>
35 #include <linux/rtc.h>
36 #include <asm/atomic.h>
37 #include <asm/signal.h>
39 static struct kobject *dbg_kobj;
41 extern int dbg_parse_cmd( char * cdb );
43 static char dbg_lastcmd[512];
45 /* default kobject attribute operations */
46 static ssize_t dbg_call_attr_show(struct kobject *kobj, struct kobj_attribute *attr,
49 strcpy( buf , dbg_lastcmd );
53 static ssize_t dbg_call_attr_store(struct kobject *kobj, struct kobj_attribute *attr,
54 const char *buf, size_t count)
57 int len = sizeof(dbg_lastcmd)>count ? count:sizeof(dbg_lastcmd);
58 //printk("count=%d,cmd=%s!\n" , count , buf );
59 strncpy( dbg_lastcmd , buf , len );
60 if( dbg_lastcmd[len-1] == '\n' ){
61 dbg_lastcmd[len-1] = 0;
64 strncpy( cmd , dbg_lastcmd , sizeof(cmd) );
71 static struct kobj_attribute _call_attr = {
76 .show = dbg_call_attr_show,
77 .store = dbg_call_attr_store,
80 static struct attribute * g[] = {
85 static struct attribute_group attr_group = {
92 //dbg_kobj = kobject_create_and_add("dbg", NULL ); /*kernel_kobj*/
95 //return sysfs_create_group(dbg_kobj, &attr_group);
96 return sysfs_create_group(kernel_kobj, &attr_group);
99 late_initcall(dbg_init);