Linux驱动开发中申请内存经常用到kmalloc函数,函数原型如下:

#include <linux/slab.h>
void *kmalloc(size_t size, int flags);

1.size参数

size,需要分配的的memory的大小。 kmalloc 能够处理的最小分配是 32 或者 64 字节,依赖系统的体系所使用的页大小。kmalloc 能够分配的内存块的大小有一个上限. 这个限制随着体系和内核配置选项而变化。如果你的代码是要完全可移植,它不能指望可以分配任何大于 128 KB。

2.flag参数

flag,用于控制kmalloc的行为:

GFP_KERNEL       // 分配一片连续的内存,可能睡眠,故不能在中断函数中使用
GFP_ATOMIC      // 用来从中断处理和进程上下文之外的其他代码中分配内存,从不睡眠。如果没有足够的空闲页,则返回失败
GFP_USER        // 用来为用户空间页来分配内存; 它可能睡眠.
GFP_HIGHUSER    // 如同 GFP_USER, 但是从高端内存分配, 如果有
__GFP_DMA       // 这个标志要求分配在能够 DMA 的内存区
__GFP_HIGHMEM   // 这个标志指示分配的内存可以位于高端内存
__GFP_HIGH      // 这个标志标识了一个高优先级请求, 它被允许来消耗甚至被内核保留给紧急状况的最后的内存页

Linux设备驱动-kmalloc相关推荐

  1. 【翻译】【linux设备驱动】linux地址类型

    [翻译][linux设备驱动]linux地址类型 Linux中使用的地址类型列表: 用户虚拟地址(User virtual addresses) 用户空间程序可见的普通地址.用户虚拟地址的长度为32位 ...

  2. LINUX设备驱动之设备模型一--kobject

    http://blog.csdn.net/yangzhu1982/article/details/6186016 Linux设备驱动之设备模型一kobject Eric Fang  2010-01-1 ...

  3. Linux设备驱动开发概述

    作者:宋宝华 email:author@linuxdriver.cn 在过去这些年,Linux已经成功应用于服务器和桌面系统,而近年来,随着嵌入式系统应用的持续升温,Linux也开始广泛应用于嵌入式领 ...

  4. linux设备驱动读书笔记

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

  5. Linux 设备驱动篇之I2c设备驱动

    ******************************************************************************************** 装载声明:希望 ...

  6. linux的led驱动的实验总结,linux设备驱动归纳总结(五):4.写个简单的LED驱动

    linux设备驱动归纳总结(五):4.写个简单的LED驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  7. LINUX设备驱动之设备模型一kobject

    LINUX设备驱动之设备模型一kobject -------------------------------------------------------------- 转载请注明出处:http:/ ...

  8. linux 设备驱动 ppt,linux设备驱动开发详解讲座ppt

    PPT内容 这是linux设备驱动开发详解讲座ppt下载,主要介绍了设备驱动简介:建立和运行模块:字符驱动:调试技术:并发和竞争:分配内存:硬件通讯:中断处理:块设备驱动,欢迎点击下载. 嵌入式Lin ...

  9. linux设备驱动读书笔记(转)

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

最新文章

  1. python中文意思k-Python中_,__,__xx__的区别
  2. Apache+Openssl
  3. 字符流复制Java文件
  4. 设置中文linux输入ubuntu,Linux_ubuntu怎么设置成中文?ubuntu中文设置图文方法,  很多朋友安装ubuntu后,发 - phpStudy...
  5. Maven史上最全总结
  6. spark学习-SparkSQL--07-SparkContext类和SparkConf类
  7. 以前是传xml的吗_李菲儿参加《浪姐2》,与黄晓明同台互动!不怕baby吃醋吗?...
  8. [arduino]-序言:面向仅有C语言基础之人的单片机开发板
  9. Java Socket总结
  10. [转]在创业公司做架构师,你需要解决哪些问题?
  11. oracle dmp和sql文件区别,数据库dbf与dmp文件
  12. 安卓手机更新过程手机乱码_关于安卓手机上自带播放器乱码问题的解决
  13. MySQL实战45讲——MySQL是怎么保证数据不丢的?
  14. 游戏本自动掉帧_LOL官方割韭菜?“永恩上线就出问题,游戏掉帧商城BUG仍未修复”...
  15. 2021哈工大计算机专业考研参考书,哈尔滨工业大学计算机专业考研参考书目推荐...
  16. 2021中国薪酬指南:全球半数雇主计划加薪并恢复至正常招聘水平
  17. Sublime Text 3默认临时/缓存文件保存位置
  18. 哈工大计算机学院博士毕业 要求,哈尔滨工业大学博士毕业要求.doc
  19. 简述寄存器种类及其功能
  20. [附源码]java毕业设计基于JavaWeb生鲜O2O订购平台

热门文章

  1. mysql any、some和all的用法
  2. c语言切面条对折的次数n,c语言竞赛和算法总结
  3. 机械设计制造及其自动化专业向PLC方向发展的可行性
  4. Linux 三维(3D)桌面效果软件的安装与实现
  5. c语言显示德国国旗代码_德国项目启动代码
  6. java图片上传保存至服务器并返回可下载的URL
  7. contrib-concat
  8. GELU激活函数: 高斯误差线性单元
  9. C# 设计模式之单例模式(懒汉模式、饿汉模式、静态内部类模式)
  10. DESTOON B2B网站管理系统V7.0正式版发布