sysfs文件使用

<span style="font-size:14px;">#include <linux/init.h>
#include <linux/module.h>
#include <linux/kobject.h>
#include <linux/sysfs.h>
#include <linux/string.h>
static int sysfs_value;
static ssize_t sysfs_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
   return sprintf(buf, "%d\n", sysfs_value);
}

static ssize_t sysfs_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)

{
   sscanf(buf, "%du", &sysfs_value);
   return count;
}

static struct kobj_attribute sysfs_value_attribute = __ATTR(sysfs_value, S_IRUGO|S_IWUSR, sysfs_show, sysfs_store);
static struct kobject *sysfs_kobj;
static int __init sysfs_test_init(void)
{
   int retval;
   sysfs_kobj = kobject_create_and_add("sysfs", kernel_kobj);
   if (!sysfs_kobj)
             return -ENOMEM;
   retval = sysfs_create_file(sysfs_kobj, &sysfs_value_attribute.attr);
   if (retval)
      kobject_put(sysfs_kobj);
   return retval;
}

static void __exit sysfs_test_exit(void)
{
   kobject_put(sysfs_kobj);
}
module_init(sysfs_test_init);
module_exit(sysfs_test_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("luzheng");
</span>
<span style="font-size:14px;">makefile</span>
<span style="font-size:14px;">obj-m:=sysfs.o
KERNELDIR:=/lib/modules/3.13.6/build
PWD:=$(shell pwd)
modules:
        $(MAKE)  -C  $(KERNELDIR)  M=$(PWD)  modules
install:
        $(MAKE)  -C $(KERNELDIR)  M=$(PWD)  modules_install</span>
<span style="font-size:14px;">clean:
         rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
</span>

问题:如果只有show函数,kobj_attribute sysfs_value_attribute该如何设置?





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值