Linux内核Thermal框架详解二、Thermal Core(1)
本文部分内容参考
Linux Thermal机制源码分析之框架概述_不捡风筝的玖伍贰柒的博客-CSDN博客
特此致谢!
一、概述
Thermal Core作为中枢完成以下动作、实现以下功能:
- 注册Governor、注册Thermal类、并且基于Device Tree注册Thermal Zone;
- 提供Thermal Zone注册函数、Cooling Device注册函数、提供将Cooling设备绑定到Zone的函数,一个Thermal Zone可以有多个Cooling设备;
- 提供一个核心函数thermal_zone_device_update作为Thermal中断处理函数和轮询函数,轮询时间会根据不同Trip Delay调节。
总的来说,Thermal Core作为thermal的核心部分,负责把governor、cooling device、zone device等部分关联在一起,因此Thermal Core需要提供注册接口和作为记录的全局变量来记录注册的信息。
二、框架及接口函数
1. 框架
Thermal Core的框架如下图所示:
在上图中你可能会有疑问:为什么看不到Theremal Core?这正是它被称为“Core”的原因,正所谓是“大象无形,大音希声”。
2. 接口函数
Thermal Core的接口函数(位于drivers/thermal/thermal_core.c中)如下:
函数 | 作用 |
thermal_zone_device_register | Thermal Zone的注册函数 |
thermal_zone_device_unregister | Thermal Zone的注销函数 |
thermal_zone_get_temp | Thermal Zone温度获取函数 |
thermal_zone_device_update | |
thermal_zone_get_zone_by_name | |
thermal_cooling_device_register | Cooling Device的注册函数 |
thermal_of_cooling_device_register | Cooling Device的注册函数 |
thermal_cooling_device_unregister | Cooling Device的注销函数 |
thermal_zone_bind_cooling_device | 将Cooling Device绑定到Zone的函数 |
thermal_zone_unbind_cooling_device | 解绑Cooling Device与Zone的函数 |
thermal_notify_framework | 通知相关函数 |
thermal_generate_netlink_event | 通知相关函数 |
相关文章
- 深入浅出:如何升级Linux内核(如何升级linux内核)
- Linux 内核实现自定义菜单配置(linux内核菜单配置)
- Linux内核学习之路.(linux内核学习)
- OneStep Guide:编译Linux 内核(如何编译linux内核)
- 比较安卓与Linux版本的不同(安卓版本linux版本)
- Linux环境下Oracle数据库的安装与配置(linux安装oracle数据库)
- Linux内核:官方博客实时追踪开发进展(linux内核官方网站)
- Linux世界神奇:一个牛人的故事(linux牛人)
- 掌握Linux系统中查看进程的线程知识(linux查看进程的线程)
- Linux服务器安全设置:保护您的数据(linux基本安全配置)
- 学习Linux内核的块驱动开发(linux块驱动)
- Linux 内核分区:构建分布式系统的基石(linux内核分区)
- 轻松访问Linux系统:远程桌面Win连接LINUX(win远程linux)
- 简单易行:Linux 下批量重命名(批量重命名linux)
- Linux系统各分支特性比较(linux的分支)
- Linux内核态内存管理探究(linux内核态内存)
- 机制Linux内核中实现稳固性能通信机制(linux内核通信)
- 深入Linux:如何轻松切换内核(linux切换内核)
- Linux内核加密:安全保障从未如此简单(linux 内核 加密)
- Linux下添加头文件路径的方法(linux添加头文件路径)
- Linux音频编程指南(linux 声卡 编程)
- Linux操作系统中恢复内核的有效方法(linux 恢复内核)
- Linux 下编辑文本文件的简单教程(linux 编辑 txt)
- Linux 安装内核指南:一步一步引领你走向成功(linux 安装内核)