首页 > 其他 > 详细

static inline extern等概念

时间:2020-06-24 12:53:13      阅读:55      评论:0      收藏:0      [点我收藏+]

写驱动时碰到如下函数调用,涉及知识点 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等概念

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!