有关linux 内核源码pte_lockptr 的定义

hry8310 2012-12-27 10:40:14
本人在看 linux2.6.24内核的时候,pte_lockptr 的定义看不懂,请教大侠们,像以下定义(在 include/linux/mm.h 中):
#define pte_lockptr(mm, pmd) ({(void)(mm); __pte_lockptr(pmd_page(*(pmd)));})

#define pte_lockptr(mm, pmd) ({(void)(pmd); &(mm)->page_table_lock;})
(void)(mm) / (void)(pmd) 有什么作用?内核中还有很多类似 (void)(var)的语句,请问内核为什么要这样做?

小弟没什么分,只求各位有识之士指点一下

...全文
476 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
犇犇犇程序猿 2013-01-04
  • 打赏
  • 举报
回复
你删除了可以编译是因为某些模块没有引用到这个宏定义,其它的模块可能用到了。这种宏定义可以看做函数。
hry8310 2013-01-03
  • 打赏
  • 举报
回复
本人曾经试过把 (void)(var) 这些定义删除,是可以编译和运行的,但不知有没有其他作用。
jimette 2013-01-01
  • 打赏
  • 举报
回复
lz上机验证了么 不应该没用吧
nevil 2012-12-28
  • 打赏
  • 举报
回复
只要简单地表示这个变量在这个宏定义里没有使用 个人感觉这么实现只是为了统一和直观,比如#define pte_lockptr(mm, pmd)这个宏,这个宏在特定的情况下只使用特定的一个变量,另一个就用类似 (void)(var)表明没有使用,易于阅读,风格也统一.

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧