/* /drivers/base/dd.c */intdev_set_drvdata(struct device*dev,void*data){int error;if(!dev->p){error=device_private_init(dev);if(error)returnerror;}dev->p->driver_data=data;return0;} /* /linux/device.h */struct device{struct device*parent;struct device_private*p;struct kobject ko...
问container_of、dev_set_drvdata和dev_get_drvdata的使用EN在linux 内核编程中,会经常见到一个宏函数container_of(ptr,type,member), 但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢??? 哎,算了,还是放弃吧。。。)。这就是内核大佬们...
问container_of、dev_set_drvdata和dev_get_drvdata的使用EN在linux 内核编程中,会经常见到一个宏函数container_of(ptr,type,member), 但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢??? 哎,算了,还是放弃吧。。。)。这就是内核大佬们...
通常,会在驱动的probe函数中获取device的相关信息,然后使用 platform_set_drvdata进行保存。在其他函数中要用到时(比如remove),通过platform_get_drvdata来获取。 内核中的定义为: #define platform_get_drvdata(_dev)dev_get_drvdata(&(_dev)->dev) #define platform_set_drvdata(_dev,data)dev_set_drvdata...
_dev指的是struct platform_device,可以看到其实调用的是dev_get_drvdata和dev_set_drvdata。 struct platform_device { const char* name; intid; struct devicedev; u32num_resources; struct resource* resource; const struct platform_device_id*id_entry; ...
在Linux 中,`platform_set_drvdata` 函数用于将私有数据与某个平台设备相关联。 该函数的原型如下: ```c void platform_set_drvdata(struct platform_device *pdev, void *data); ``` 该函数有两个参数: - `pdev`:指向要设置私有数据的平台设备的指针。
_dev指的是struct platform_device,可以看到其实调用的是dev_get_drvdata和dev_set_drvdata。 struct platform_device { const char* name; intid; struct devicedev; u32num_resources; struct resource* resource; const struct platform_device_id*id_entry; ...
spi_set_drvdata函数定义 首先SPI的一些基本介绍参照相关芯片的库函数或者使用手册,以下介绍SPI库函数的基本用法和参数的定义。 1、SPI_Definite函数的功能是将外设S Pix寄存器重设为默认值。输入参数S Pix可以是1和2,是用来选择SPI外设的。 2、SPI_Inst函数的功能是根据SPI_Instruct中指定的参数初始化外设S Pix...
ndev是我们在probe函数中定义的局部变量,如果我想在其他地方使用它怎么办呢? 这就需要把它保存起来。内核提供了这个方法,使用函数platform_set_drvdata()可以将ndev保存成平台总线设备的私有数据。以后再要使用它时只需调用platform_get_drvdata()就可以了。
函数名称:dev_get_drvdata 函数原型:static inline void *dev_get_drvdata(const struct device *dev) 返回类型:void 参数: 类型参数名称 const struct device *dev 1419返回:Driver data, set and get with dev_set_drvdata/dev_get_drvdata 源代码转换工具 ...