Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119186
  • 博文数量: 24
  • 博客积分: 416
  • 博客等级: 下士
  • 技术积分: 238
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-07 19:16
文章分类
文章存档

2011年(24)

分类: LINUX

2011-07-19 15:55:24


在函数alloc_skb(unsigned int size,int gfp_mask)代表一种分配模式

gfp_mask标志在alloc_page,kmalloc函数中都有用到。该标志可以分为三类:行为修饰符,区修饰符,类型修饰符。

       行为修饰符表示内核应当如何分配所需的内存,在某些特定的情况下,只能使用某些特定的方法分配内存,例如,中断处理程序就要求内核在分配内存时不能睡眠(因为中断处理程序不能被重新调度)。常用标志值有__GPF_WAIT(分配器可以睡眠),__GFP_IO(分配器可以启动磁盘I/O),__GFP_FS(分配器可以启动文件系统I/O)等等。

      区修饰符表示从哪个区分配内存,内核优先从ZONE_NORMAL开始分配。区修饰符的值只有__GFP_DMA,__GFP_HIGHMEM。

     类型修饰符指定所需的行为和区描述符以完成特殊类型的处理。最常用的值为__GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS)

阅读(5305) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:skb->truesize,len,datalen,size,等的区别?

给主人留下些什么吧!~~