linux内核宏的阅读方法

预编译将内核代码中的宏替换掉,再把得到的c代码对齐阅读
下面是预编译后的一个例子:


extern void task_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st);
extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, cputime_t *st);
# 2318 "include/linux/sched.h"
static inline gfp_t memalloc_noio_flags(gfp_t flags)
{
 if (unlikely(get_current()->flags & 0x00080000))
  flags &= ~((( gfp_t)0x40u) | (( gfp_t)0x80u));
 return flags;
}

static inline unsigned int memalloc_noio_save(void)
{
 unsigned int flags = get_current()->flags & 0x00080000;
 get_current()->flags |= 0x00080000;
 return flags;
}

static inline void memalloc_noio_restore(unsigned int flags)
{
 get_current()->flags = (get_current()->flags & ~0x00080000) | flags;
}
发布了31 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Hsu_smile/article/details/103106648
今日推荐