码迷,mamicode.com
首页 > 其他好文 > 详细

static inline extern等概念

时间:2020-06-24 13:54:37      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:match   poi   函数调用   string   struct   lock   ifd   you   prope   

写驱动时碰到如下函数调用,涉及知识点 static inline extern

 

include/of.h中有如下定义:

extern struct device_node *of_find_node_by_name(struct device_node *from,
const char *name);

 

static inline struct device_node *of_find_node_by_name(struct device_node *from,
const char *name)
{
return NULL;
}

 

drivers/of/base.c中定义如下:

/**
* of_find_node_by_name - Find a node by its "name" property
* @from: The node to start searching from or NULL, the node
* you pass will not be searched, only the next one
* will; typically, you pass what the previous call
* returned. of_node_put() will be called on it
* @name: The name string to match against
*
* Returns a node pointer with refcount incremented, use
* of_node_put() on it when done.
*/
struct device_node *of_find_node_by_name(struct device_node *from,
const char *name)
{
struct device_node *np;
unsigned long flags;

raw_spin_lock_irqsave(&devtree_lock, flags);
for_each_of_allnodes_from(from, np)
if (np->name && (of_node_cmp(np->name, name) == 0)
&& of_node_get(np))
break;
of_node_put(from);
raw_spin_unlock_irqrestore(&devtree_lock, flags);
return np;
}
EXPORT_SYMBOL(of_find_node_by_name);

 

后来发觉是一场误会:

#ifdef CONFIG_OF

extern struct device_node *of_find_node_by_name(struct device_node *from,
const char *name);

#else /* CONFIG_OF */

static inline struct device_node *of_find_node_by_name(struct device_node *from,
const char *name)
{
return NULL;
}

#endif /* CONFIG_OF */

 

static inline extern等概念

标签:match   poi   函数调用   string   struct   lock   ifd   you   prope   

原文地址:https://www.cnblogs.com/idyllcheung/p/13186884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!