1:添加头文件
#include <linux/proc_fs.h>
#include <linux/fs.h>
2:定义的变量
#if H500_TP_PS_MODIFY
int sound8976_galley_select_flag = 0;
#define MODEM_SWITCH_PROC_NAME "ps_value"
#define PROC_NAME "ps"
static struct proc_dir_entry * s_proc = NULL;
//extern struct proc_dir_entry proc_root;
struct proc_dir_entry *root_entry =NULL;
struct proc_dir_entry *entry = NULL;
int psvalue = 0;
#endif
3:读写函数
#if H500_TP_PS_MODIFY
static int modem_switch_writeproc(struct file *file,const char *buffer,
unsigned long count, void *data)
{
int value;
sscanf(buffer, "%d", &psvalue);
printk("************************luu value ==value %d***********************\n",psvalue);
return count;
}
static int modem_switch_readproc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
int len;
printk("************************luread ***********************\n");
len = sprintf(page, "%d\n", psvalue==0?0:(psvalue==1?1:(psvalue==2?2:3))); //wangyulu
/*
if (off + count >= len)
*eof = 1;
if (len < off)
return 0;
*start = page + off;
return ((count < len - off) ? count : len - off);
*/
return len;
}
#endif
4:注册(添加在probe函数里面)
#if H500_TP_PS_MODIFY
//root_entry = proc_mkdir(PROC_NAME, &proc_root);
s_proc = create_proc_entry(MODEM_SWITCH_PROC_NAME, 0777, NULL);
if (s_proc != NULL)
{
s_proc->write_proc = modem_switch_writeproc;
s_proc->read_proc = modem_switch_readproc;
}
#endif
5:成功以后可以在系统的
看见 proc/ps_value
使用 cat ps_value
echo 1 > ps_value
仅供参考,谢谢!