kmalloc用法

2023-11-08

   在读代码学习的时候发现有个malloc函数用的很奇怪,跳到定义处查看了一下原理来时一个宏定义。

     /* use volatile to fix a probable compiler error on 2.6.25 */

      #define malloc(_size, type, flags)                      \
        ({ volatile int _v = _size; kmalloc(_v, GFP_ATOMIC | __GFP_ZERO); }) ,

     前面的时候发现调用的时候很奇怪的参数,这里竟然没有使用  na = malloc(len, M_DEVBUF, M_NOWAIT | M_ZERO);

 kmalloc的原型是:

                void *kmalloc(size_t size, int flags); 

这里使用kmalloc除了是在内核驱动进行编程外,一个重要的原因就是这里的驱动程序要使用DMA,而kmalloc分配的内存在物理上是连续的。

这里的第二个参数比较有趣,flags有比较多的选项,这里只讲这里用到的这两个

GFP_ATOMIC

用来从中断处理和进程上下文之外的其他代码中分配内存. 从不睡眠.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kmalloc用法 的相关文章

  • Linux定时任务-定时执行Shell脚本

    主要是使用Linux的crontab工具来实现的 有两个方法 一个放在contab 列表里面 另一个是放在contab文件里面 其实原理是一致的 crontab 列表 cd tmp 创建一个shell脚本 vim hello sh bin
  • ABAP动态编程-动态调用子例程&方法及动态SQL

    目录 前言 一 动态调用 1 1 FORM子例程的动态调用 1 2 ABAP方法动态调用 二 动态SQL 2 1 动态OPEN SQL语句 2 2 使用ADBC类执行SQL 总结 前言 本文主要讲述ABAP语言中FORM子例程 方法的动态调
  • element-ui 多选框和级联选择的部分bug以及解决方法

    前言 最近在开发一款使用了 element ui 的低代码设计器 在开发的过程当中碰到了一些关于 element ui 组件本身不合理的地方 并且在百度的基础上自己去阅读了一下 element ui 的源码 也找出了这些问题的一个解决方案
  • EDA虚拟机安装 plus

    EDA虚拟机安装 plus 申明 此工具为学生或者初学者学习只用 严谨用于商业用途 请支持知识产权 购买正版EDA工具 之前刚安装了一个虚拟机 详见 EDA大礼包 本想将之前的开源NanGate 45nmPDK用于后端实现 但找到的库全部基
  • R中Matrix and TMB package version issues

    在Rstudio中常遇到Matrix and TMB包版本的问题 或者是其他类似的问题 Warning message In checkMatrixPackageVersion Package version inconsistency d
  • SSM项目-在线考试系统的Java毕业设计(附论文+源码)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 Java毕业设计 精彩专栏推荐 安卓app毕业设计 微信小程序毕业设计 演示视频 ssm061在线考试系统 源码下载地址 https download csdn net do
  • HTTP协议的基本概念与理解!

    一 什么是HTTP协议 HTTP 超文本传输协议 是一个基于请求与响应 无状态的 应用层的协议 常基于TCP IP协议传输数据 互联网上应用最为广泛的一种网络协议 所有的WWW文件都必须遵守这个标准 设计HTTP的初衷是为了提供一种发布和接
  • vue element的select下拉框赋值之后无法选择

    问题描述 用element的select下拉框之后 在回显后有初始值的情况下 不能修改 也不能选择 如图 明明点击了一般内勤主管 但没有任何反应
  • C语言:九九乘法表

    题目描述 已知九九乘法表 要求给定在1 9之间的整数n 输出该表的前n行 输入 包含多行 每行一个在1 9之间的整数n 输出 输出九九乘法表的前n行 include
  • springboot中,前端传时间戳后端用LocalDateTime接收

    问题 字符串 时间戳入参 后端LocalDateTime 单个时间戳入参 public class LocalDateTimeArgumentResolver implements HandlerMethodArgumentResolver
  • matlab 生成Blocks和Heavysine等典型非线性非平稳信号代码

    Blocks和Heavysine信号是典型的非线性非平稳信号 matlab生成blocks bumps和doppler标准测试信号 关键函数 wnoise 噪声小波检验数据 使用方式 x wnoise fun n x xn wnoise f
  • elementUI中el-table表格的表头样式错位

    版本 element ui 2 12 0 1 问题描述 使用elementUI的el table表格组件时 表格高度定高 内容过多时右侧会出现滚动条 然后就会出现如下图所示的列错位的样式 解决办法 在网上也找了好多方法 试了好多改CSS样式
  • CentOS7下载与安装MySQL5.7rpm包

    下载软件包等 创建目录 root mysql001 packages mkdir p opt packages mysql community 切换目录 root mysql001 packages cd opt packages 下载My
  • 解决Ubuntu18.04无法联网网络的问题

    在命令行运行以下3个命令 即可重新启动网卡 sudo service network manager stop sudo rm var lib NetworkManager NetworkManager state sudo service
  • cmd命令行运行Java文件产生乱码问题的解决方式

    1 第一种方式 改变记事本的编码集为ANSI cmd默认的编码格式是GBK 需要修改记事本的编码格式 记事本编码格式默认为UTF 8 把记事本编码格式改为ANSI 2 第二种方式 改变cmd编码集 javac encoding utf8 源
  • 怎么使用python进行回归分析

    转自 http www pinlue com article 2020 05 2215 3610586906023 html
  • Day07 字符串

    344 反转字符串 解法 二分法 思路比较加简单 class Solution object def reverseString self s type s List str rtype None Do not return anythin
  • org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer

    org apache catalina connector ClientAbortException java io IOException Connection reset by peer 下载大文件服务器报上面这个错误就是nginx做了
  • ARMv8 架构与指令集.学习笔记

    目 录 第1章 ARMv8简介 3 1 1基础认识 3 1 2 相关专业名词解释 3 第2章 Execution State 4 2 1 提供两种Execution State 4 2 2 决定Execution State的条件 4 第3

随机推荐

  • dplyr-tibble转换数据框的行名与列向量

    将数据框行名转换为列向量 rowName df gt tibble rownames to column var cellN 列向量转换为行名 df gt tibble column to rownames cellN 列向量名重命名 df
  • [npm]Unable to authenticate need BASIC realm=Sonatype Nexus Repository Manager

    npm npm ERR Unable to authenticate need BASIC realm Sonatype Nexus Repository Manager 问题描述 解决方案 问题描述 公司搭建的私服 在线上环境中 项目打包
  • CentOS 7 开机加载内核模块

    以ceph模块为例 cd etc sysconfig modules vim ceph modules 在文件中添加如下内容 bin sh sbin modinfo F filename ceph gt dev null 2 gt 1 if
  • 纯JS、CSS3实现高仿IOS消息alert弹窗(警告框,确认框,提示框)。老铁们,没毛病。

    简洁 大方的ios弹窗风格 网上有很多关于alert 弹窗的栗子可以借鉴使用 本文章主要应用在移动端上面的弹窗实现 在项目没有应用到其他框架弹窗的基础上 此实例应该可以满足大部分弹窗上的要求 可直接应用于项目之中 使用方法 1 引入依赖的样
  • 在Android中间件JNI层添加调试信息__android_log_print()

    最近做Android新项目的时候需要用到JNI 但是在该层调试程序的时候 C C 的常用的printf和cout这些传统的控制台调试输出无效 因此就需要android特有的终端调试函数 android log print 该函数的调用时需要
  • Python爬虫项目:从pip中安装库到爬取全过程

    通过python爬取目标网站https ncov dxy cn ncovh5 view pneumonia上的全球最新疫情数据和国内最新疫情数据 爬取的数据以json文件的格式保存 通过解析该json文件 将爬取的疫情数据做了两方面的处理
  • 判断闰年(函数)

    define CRT SECURE NO WARNINGS include
  • ElasticSearch High Level REST API【2】搜索查询

    如下为一段带有分页的简单搜索查询示例 在search搜索中大部分的搜索条件添加都可通过设置SearchSourceBuilder来实现 然后将SearchSourceBuilder RestHighLevelClient client El
  • 【leetcode字节跳动题库】121. Best Time to Buy and Sell Stock

    题目 题目链接 提交代码 class Solution public int maxProfit int prices if prices null prices length 0 return 0 int res 0 in prices
  • Linux中man手册的安装以及使用详解

    Linux中man手册的安装以及使用详解 linux中man手册的安装以及使用详解 man手册是什么 man手册是干嘛的 man手册如何安装 man手册如何使用 举例讲解 我们来看一下man手册的目录结构 进行具体分析 section 分析
  • 闭包的使用一些总结

    我们看一下官方对于闭包的解释 走起 闭包 closure 是一个函数以及其捆绑的周边环境状态 lexical environment 词法环境 的引用的组合 换而言之 闭包让开发者可以从内部函数访问外部函数的作用域 在 JavaScript
  • RSA加密算法Python实现

    RSA加密算法Python实现 1 RSA算法简介 2 RSA算法涉及的数学知识 2 1互素 2 2 欧拉定理 2 3求模逆元 2 4 取模运算 2 5 最大公因数 2 6 最小公倍数 2 7 欧几里得算法 2 8 扩展欧几里得算法 3 R
  • 三菱服务器显示d1d2,三菱PLC指令SMOV D2 K2 K2 D1 K3详解

    三菱PLC指令SMOV D2 K2 K2 D1 K3是什么意思 补充 若D2为16H D1为 5H时 组合后的 3位BCD码为什么为165H 为什么是Y010 Y006 Y005 Y002 Y000驱动线圈为ON 这个你看下就能理解了 SM
  • uniapp表单uni-forms校验失败后页面滚动到相应位置

    这里用到的ui框架是uni ui 如果直接使用uView校验失败页面会自动定位到相应位置 1 给uni forms item添加唯一id 我用的是form item的v model方便之后使用 2 在onReady中给form添加校验规则
  • React 基础-书写一个页面

    由于 RN 环境过于麻烦 所以这里先尝试 React 有不对的还望不吝赐教 React 安装请查看官网 渲染 JSX React 的模板语法是 JSX 看起来很像是 JS HTML 的混血儿 具体的语法这里就不再赘述 想了解的话 http
  • GBDT算法梳理

    1 GBDT Gradient Boosting Decision Tree 思想 Boosting 给定初始训练数据 由此训练出第一个基学习器 根据基学习器的表现对样本进行调整 在之前学习器做错的样本上投入更多关注 用调整后的样本 训练下
  • Pythhon消消乐小游戏

    Pythhon消消乐小游戏 一 程序代码 1 游戏介绍 2 游戏代码 二 程序打包成exe程序 1 安装pyinstaller 2 将python文件打包为exe程序 3 打包报错 一 程序代码 1 游戏介绍 开心消消乐是消除类的游戏 适合
  • openwrt --- web密码

    1 设置web密码步骤 登陆web 选择System gt Administration 在Router Password下设置web登陆密码 点击Save Apply保存 2 忘记web密码 通过串口或者SSh登陆 打开文件 vi etc
  • conda 环境导入导出 yaml

    conda中的环境可以导入和导出 导出 conda env export gt environment yaml 导入 conda env create f environment yaml 什么意思呢 就是用conda create n
  • kmalloc用法

    在读代码学习的时候发现有个malloc函数用的很奇怪 跳到定义处查看了一下原理来时一个宏定义 use volatile to fix a probable compiler error on 2 6 25 define malloc siz