当前位置: 首页 > 面试题库 >

linux内核中的__raw_readl / __ raw_writel和readl / writel有什么区别?

丌官承
2023-03-14
问题内容

b / w
__raw_readl/__raw_writelreadl/writellinux内核有什么区别?据说readl/writel比这更安全__raw_readl/__raw_writel,那为什么我们仍然使用__raw_readl/__raw_writel

在什么情况下我们应该使用:__raw_readl/__raw_writelreadl/writel


问题答案:

似乎 到的情况是,

  • raw表示本机字节顺序,非raw表示little-endian
  • __前缀替代选项不包括内存障碍

请参阅此LKML讨论以及linux / arch / arm / include /
asm /
io.h中

的注释



 类似资料:
  • 问题内容: 我一直在尝试移植一些Linux驱动程序,并且意识到内核版本2.4与2.6的Linux之间存在实质性差异。 在2.4版本的内核中,模块编程如下- 但是,对于2.6版本的内核,必须对模块执行以下操作- 内核2.6中进行此类更改有何优势?为什么在Linux内核2.6中需要进行此更改? 问题答案: 如果您查看新功能的定义: 您会看到它确保包含正确的样板文件,以便编译器可以正确处理这些特殊功能。

  • 本文向大家介绍内核和操作系统之间有什么区别?,包括了内核和操作系统之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下 操作系统 操作系统(OS)是管理计算机硬件资源并充当用户与计算机硬件之间的接口的软件集合。它为计算机程序提供通用服务。操作系统是计算机系统中系统软件的重要组成部分。 核心 内核是操作系统的核心部分,并负责该操作系统的所有主要活动。内核由各种模块组成,它直接与底层硬件交互。它还

  • 问题内容: Linux内核代码中的EXPORT_SYMBOL_GPL是什么? 下面是一段代码,其中包含EXPORT_SYMBOL_GPL 该宏在内核代码中多次出现。 问题答案: 将某些符号(例如函数)定义为可导出(从内核可加载模块中看到)是宏。如果该符号没有“ EXPORT_SYMBOL”,则将无法从模块访问该符号。 将仅在GPL许可的模块中显示该符号,并且-在具有任何许可的模块中显示该符号。 h

  • 在我的 amd5700g 上安装了一个 ubuntu22.04 Desktop 发现 linux 内核版本是 6.2.0 但是安装的 ubuntu22.04 Server 版本的 linux 内核是 5.15.0 版本 这个差异是因为 desktop 和 server 版本引起的吗? 但是从我之前的观察发现,好像即便在同一个 ubuntu 版本下(比如 18、20、22)都是 desktop 或者

  • 问题内容: 从这里 我没有得到它的含义以及为什么使用它。我试图搜索它,但不了解其含义。 问题答案: 它使动态加载的模块可以访问符号(前提是所述模块添加了声明)。

  • 问题内容: 我正在研究Linux内核,但是有问题。 我看到许多Linux内核源文件都有。那是什么? 问题答案: 它是指向当前进程(即发出系统调用的进程)的指针。 在x86上,它是在(其他拱门的类似文件)中定义的。 Linux设备驱动程序第2章中的更多信息: 当前指针是指当前正在执行的用户进程。在执行系统调用(例如打开或读取)期间,当前进程是调用该调用的进程。如果需要,内核代码可以通过使用curre