of_property_read_string的参数是什么
时间: 2023-12-10 18:02:48 浏览: 275
of_property_read_string是Linux内核中用于读取设备树节点属性值的函数,其参数包括:
1. struct device_node *np:要读取属性值的设备树节点指针。
2. const char *propname:要读取的属性名称。
3. char **res:保存属性值的指针,函数执行成功后,该指针指向一个动态分配的缓冲区,缓冲区中包含属性值的字符串。
如果函数执行失败,则该指针值为NULL。
相关问题
``` of_property_read_string ```of_property_read_string函数
of_property_read_string函数是Linux内核中的一个函数,用于从设备树中读取字符串类型的属性值。设备树是一种描述硬件设备和其配置信息的数据结构,它在Linux内核中被广泛使用。
该函数的定义如下:
```c
int of_property_read_string(const struct device_node *np, const char *propname, const char **out_string)
```
参数说明:
- `np`:指向设备树节点的指针。
- `propname`:要读取的属性名称。
- `out_string`:用于存储读取到的属性值的指针。
函数的作用是在设备树节点`np`中查找名称为`propname`的属性,并将其值存储在`out_string`指向的内存中。如果找到了属性并成功读取到值,则返回0;否则返回负数错误码。
该函数的使用示例:
```c
const char *value;
int ret;
ret = of_property_read_string(np, "property_name", &value);
if (ret == 0) {
// 成功读取到属性值
printk(KERN_INFO "Property value: %s\n", value);
} else {
// 未找到属性或读取失败
printk(KERN_ERR "Failed to read property\n");
}
```
of_property_read_string设备树函数怎么用
of_property_read_string() 是 Linux 内核中用于读取设备树属性值的函数之一,其函数原型如下:
```
int of_property_read_string(const struct device_node *np, const char *propname, const char **out_string);
```
它的作用是读取设备树节点 np 中名为 propname 的字符串属性的值,并将其存储在 out_string 指向的内存中。
使用该函数的步骤如下:
1. 获取设备节点的指针
```
struct device_node *np = of_find_node_by_name(NULL, "node_name");
if (!np) {
printk(KERN_ERR "Failed to find device node\n");
return -ENODEV;
}
```
这里的 "node_name" 是需要读取属性值的设备节点的名称,如果找到了该节点,则返回该节点的指针 np。
2. 读取属性值
```
const char *prop_value;
if (of_property_read_string(np, "prop_name", &prop_value)) {
printk(KERN_ERR "Failed to read property value\n");
return -EINVAL;
}
```
这里的 "prop_name" 是需要读取的属性名称,如果读取成功,则将其值存储在 prop_value 指向的内存中。
注意:当该函数返回值不为 0 时,表示读取失败,此时需要进行错误处理。
3. 使用属性值
```
printk(KERN_INFO "Property value: %s\n", prop_value);
```
这里将属性值打印出来,可以根据实际需求进行处理。
完整的示例代码如下:
```
struct device_node *np = of_find_node_by_name(NULL, "node_name");
if (!np) {
printk(KERN_ERR "Failed to find device node\n");
return -ENODEV;
}
const char *prop_value;
if (of_property_read_string(np, "prop_name", &prop_value)) {
printk(KERN_ERR "Failed to read property value\n");
return -EINVAL;
}
printk(KERN_INFO "Property value: %s\n", prop_value);
```
阅读全文