Android4.0的驱动如何建立proc的文件节点

本文档详细介绍了如何在Android 4.0系统中建立proc文件节点,涉及添加头文件、定义变量、编写读写函数以及注册过程。通过示例展示了如何创建并操作`proc/ps_value`,允许通过`cat`和`echo`命令进行读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
仅供参考,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值