1. 接口名称
#define inerface_name "driver/dev"
struct proc_dir_entry * dev_debug_proc = NULL
2. 实现函数
static int debug_write(struct file *file,const char __user *buffer,unsigned long count, void * data)
{
char data_string[1];
int data;
if(count < sizeof(data_string)){
return -EINVAL;
}
if(copy_from_user(data_string,buffer,sieof(data_string)))
{
return -EINVAL;
}
sscanf(data_string,"%d",&data);
switch(data){
case 0:
break;
case 1:
break;
}
return count;
}
int __init create_dev_debug_proc(void)
{
struct proc_dir_entry *proc;
dev_debug_proc = create_proc_entry(interface_name,S_IFDIR,NULL);
if(dev_debug_proc == NULL){
printk("Unable to create %s proc dir.\n",interface_name);
return -EIO
}
proc = create_proc_entry("debug",S_IFREG|S_IRUGO|S_IWUSR,dev_debug_proc);
if(!proc){
remove_proc_entry(interface_name,NULL);
dev_debug_proc = NULL;
return -EIO;
}
proc->write_proc = debug_write;
proc->data=NULL;
return 0;
}
static XXX_driver_probe(struct platform_device *pdev)
{
create_dev_debug_proc();
}
3. 使用方法:
echo 1 > /proc/driver/dev/debug
echo 0 > /proc/driver/dev/debug