【Linux内核解析-linux-5.14.10-内核源码注释】内核源码中宏定义理解

news/2024/12/23 20:54:39/

内核宏定义1内核

这是Linux内核中的start_kernel函数的一部分代码。它的作用是初始化内核的一些基本组件和数据结构。

asmlinkage: 这是一个函数声明修饰符,指示编译器把函数参数放在堆栈中,而不是寄存器中。

__visible: 这是另一个函数声明修饰符,用于指示函数可见性,即该函数可以在其他文件中使用。
__no_sanitize_address: 这也是一个函数声明修饰符,用于告诉编译器在编译该函数时不要进行地址检查。

内核宏定义2

宏
这是Linux内核中的一些宏定义,用于定义代码和数据的属性和位置。

  1. __init: 这是一个宏定义,用于标记函数为内核初始化代码。这些代码只在内核启动时执行一次,然后就不再需要了。该宏定义会将函数放置在.init.text节(section)中。

  2. __initdata: 这是一个宏定义,用于标记数据为内核初始化数据。这些数据只在内核启动时使用一次,然后就不再需要了。该宏定义会将数据放置在.init.data节(section)中。

  3. __exitdata: 这是一个宏定义,用于标记数据为内核退出数据。这些数据只在内核退出时使用一次,然后就不再需要了。该宏定义会将数据放置在.exit.data节(section)中。

  4. __exit_call: 这是一个宏定义,用于标记函数为内核退出函数。这些函数只在内核退出时使用一次,然后就不再需要了。该宏定义会将函数放置在.exitcall.exit节(section)中,并使用了__used修饰符,表示即使没有被调用也不会被编译器优化掉。

内核宏定义3

宏
这是Linux内核中的一些宏定义,用于定义内核初始化和退出过程中的函数调用和位置。

  1. __initcall(fn): 这是一个宏定义,用于将函数标记为内核初始化函数。该宏定义会将函数包装在一个initcall_t类型的结构体中,并将该结构体添加到.initcall.init节(section)中,以便在内核启动时自动调用。

  2. __exitcall(fn): 这是一个宏定义,用于将函数标记为内核退出函数。该宏定义会将函数包装在一个exitcall_t类型的结构体中,并将该结构体添加到.exitcall.exit节(section)中,以便在内核退出时自动调用。

  3. __exit_call: 这是一个宏定义,用于标记函数为内核退出函数。这些函数只在内核退出时使用一次,然后就不再需要了。该宏定义会将函数放置在.exitcall.exit节(section)中,并使用了__used修饰符,表示即使没有被调用也不会被编译器优化掉。

  4. __init_call: 这是一个宏定义,用于标记函数为内核初始化函数。这些函数只在内核启动时使用一次,然后就不再需要了。该宏定义会将函数放置在.initcall.init节(section)中,并使用了__used修饰符,表示即使没有被调用也不会被编译器优化掉。


http://www.ppmy.cn/news/60729.html

相关文章

使用Linux运维常识

一.基础操作 1.终端常用快捷键 快捷键描述ctrl键盘左键向左跳一个单词ctrl键盘右键向右跳一个单词Ctrl c停止当前正在运行的命令。Ctrl z将当前正在运行的命令放入后台并暂停它的进程。Ctrl d关闭当前终端会话。Ctrl l清屏,也可以用clear命令实现Tab自动补全当…

文字的显示

文字的显示 文章目录 文字的显示1.文字编码方式2.英文和汉字的点阵显示3.显示中文“中”和“A”show_font.c结果 1.文字编码方式 数字>代表什么->显示为什么 GBK国标拓展 下列代码用不同编码方式保存utf-8.c ansi.c #include <stdio.h>int main(int argc ,char *…

05-Vue技术栈之使用脚手架

1、初始化脚手架 1.1 说明 Vue 脚手架是 Vue 官方提供的标准化开发工具&#xff08;开发平台&#xff09;。最新的版本是 5.x。文档: https://cli.vuejs.org/zh/ 1.2 具体步骤 第一步&#xff08;仅第一次执行&#xff09;&#xff1a;全局安装vue/cli npm install -g vue…

CSDN竞赛第49期题解

第49期比赛页面&#xff1a;第49期编程竞赛 一、 小海豚喜欢打游戏&#xff0c;现在它在操纵游戏人物小C逃脱废弃的隧道&#xff0c;逃生装置在小C的前方 X 米远的位置。但是游戏机只有 两个按钮&#xff1a;前进和后退&#xff0c;按前进&#xff0c;小C会前进 m 米&#xff…

网络安全之黄金票据,白银票据

前言&#xff1a;今天来给大家讲讲黄金票据和白银票据Kerberos认证#金票Golden ticket# 原理#伪造金票的场景和所需条件#利用方式#银票SILVER TICKET# 原理#伪造银票所需条件#金票和银票的区别# 获取的权限不同#认证流程不同#加密方式不同# 前言&#xff1a;今天来给大家讲讲黄…

84.python input输入函数知识拓展

文章目录 1. input函数知识回顾2. input常犯错误解析3. 用函数转换从终端输入的数据3.1 输入的数为整数&#xff0c;则用int转换为整数3.2 输入的数为浮点数&#xff0c;则用float转换为浮点数3.3 不考虑输入的数据类型&#xff0c;则用eval函数转换 4. 变量的多种赋值方式4.1 …

Java中有什么异常机制? 有哪些异常分类? 常见异常的详解以及解决异常思路?

Java中的异常机制是一种处理程序在运行时可能发生的不可预测情况的方式。异常是指在程序执行期间遇到的错误或其他意外事件&#xff0c;它会中断程序的正常执行流程。Java中的异常分为两类&#xff1a;Checked Exception&#xff08;已检查异常&#xff09;和Unchecked Excepti…

确定不进来看看吗?详细讲解C语言文件操作(示例分析每个函数)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:讲解c语言中的文件操作,文件的读取,输入输出,流的概念…