libdrm全解析三十八 —— 源码全解析(35)
接前一篇文章:libdrm全解析三十七 —— 源码全解析(34)
本文参考以下博文:
DRM 驱动程序开发(VKMS)
特此致谢!
前一篇文章讲解完了drmModeSetCrtc(crtc_id, fb_id, connector_id, mode),DRM一般流程的也就讲完了。但是实际上还有一部分没有在一般流程中,但其也是很重要且必不可少的,这就是资源的释放。这其中包括了很多函数:drmModeRmFB()、munmap()、drmIoctl(DRM_IOCTL_MODE_DESTROY_DUMB)、drmModeFreeConnector()、drmModeFreeResources()。这些函数都是一般流程各步骤所调用函数的反函数。下边对于这些函数逐个来进行分析。
先来看drmModeRmFB函数。它与drmModeAddFB()是一对。
75. DRM_IOCTL_MODE_RMFB
第75个宏是DRM_IOCTL_MODE_RMFB,相应代码如下:
#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, unsigned int)
结合之前文章中的_IOWR(type,nr,size)的最终定义,得到如下代码:
#define DRM_IOCTL_MODE_RMFB ( ((3) << 30) | (('d') << 8) | ((0xAF) << 0) | ((sizeof(unsigned int)) << 16) )
DRM_IOCTL_MODE_RMFB对应的Userspace API为:drmModeRMFB()。该函数在xf86drmMode.c中,代码如下:
drm_public int drmModeRmFB(int fd, uint32_t bufferId)
{return DRM_IOCTL(fd, DRM_IOCTL_MODE_RMFB, &bufferId);
}
函数的作用是销毁指定的framebuffer object(之前通过drmModeAddFB函数向DRM驱动注册的framebuffer object)。
实例代码片段如下:
uint32_t fb_id;
……
drmModeAddFB(fd, create.width, create.height, 24, 32, create.pitch,create.handle, &fb_id);
……
drmModeRmFB(fd, fb_id);
资源释放流程中的其余函数将在后续文章中进行解析。
相关文章:
libdrm全解析三十八 —— 源码全解析(35)
接前一篇文章:libdrm全解析三十七 —— 源码全解析(34) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章讲解完了drmModeSetCrtc(crtc_id, fb_id, connector_id, mode)&#…...
jar包和war包的区别
SpringBoot项目既可以打成war包发布,也可以找成jar包发布。 jar包 jar包:直接通过内置Tomcat运行,不需要额外安装Tomcat。如需修改内置Tomcat的配置,只需要在SpringBoot的配置文件中配置。内置Tomcat没有自己的日志输出࿰…...
CloudCompare 二次开发(10)——点云投影到平面
目录 一、概述二、代码集成三、结果展示一、概述 不依赖任何第三方点云相关库,使用CloudCompare编程实现点云投影到指定平面,具体计算原理见:PCL 点云投影到拟合平面 二、代码集成 1、mainwindow.h文件public中添加: void doActionProjectToPlane(); // 投影到平面2、…...
如何制作并运行 jar 程序
以下是用 Intellij 制作 jar 程序,并运行的方法。 【1】新建工程,保持默认选项,Next 【2】保持默认选项,Next 【3】给工程命名,设置保存位置,Finish 【4】新建工程结束,进入开发界面 【5】展开…...
Hadoop MapReduce 调优参数
文章目录 MapReduce 调优参数详解MapReduce 调优参数一键复制 前言: 下列参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存。 MapReduce 调优参数详解 这个参数定义了在 Reduce 阶段同时进行的拷贝操作的数量&…...
springboot 与 Redis整合
SpringBoot 操作数据:Spring-data jpa jdbc mongodb redis! SpringData 也是和SpringBoot 齐名的项目! 说明:在SpringBoot2.X 之后,原来使用的jedis被替换成了lettuce jedis: 采用的直连,多个线程操作的话&…...
如何高效地设计测试用例并评审
编写出好的测试用例是每一个测试工程师的职责,但在实际工作中大家写的测试用例往往需要不断地修改才能使用,这不仅浪费了时间,还容易让测试工程师产生自我否定的情绪,甚至在团队中产生各种矛盾。 那如何高效地设计测试用例呢&…...
基于python+Django知识图谱的医疗问答系统设计与实现
摘 要 从信息技术的发展至今,各色各样的技术能够满足各类人群的需求,能够让各种业务行业的痛点变成能够可以解决的方法,随着我们经济的不断提高,越来越多的人都该关注健康,那么健康饮食、健康医疗是我们生活中所追求的…...
cuda编程常见问题
cuda环境配置 参考链接 https://blog.csdn.net/weixin_43788327/article/details/125823507?spm1001.2014.3001.5506 疑难问题 在学习《GPU高性能编程CUDA实战》这本书时,发现书里面的代码很多变量都没定义过,经过搜索发现这都是书上自带的代码。 代…...
QTday3
作业1:通过对话框实现保存文件 void burger::on_saveBtn_clicked() {//调用函数,获取文件路径QString filename QFileDialog::getSaveFileName(this,"选择文件夹","./","Text File(*.txt)");if(filename.isNull()){QMes…...
docker镜像是如何导入的?
镜像导入是由image/tarexport/load.go#tarexporter.Load()完成的 以下代码参考github.com/docker/docker版本v0.0.0-20181129155816-baab736a3649 主要是注册镜像信息以及解包镜像tar流到新root 导出和保存的区别在于 导出(export): 仅导出文件结构保存(save): 保存镜像历史和元…...
四川大学874考研真题00-23
22, 2022年硕士学位研究生入学考试试题回忆版 数据结构 1.一个时间复杂度为n2 的算法运行,m1算n个问题用时1秒,m2处理器是m1效率的64倍,则m2每秒能计算()个问题。 A. 64n B. 8n …...
openGauss学习笔记-58 openGauss 高级特性-资源池化
文章目录 openGauss学习笔记-58 openGauss 高级特性-资源池化58.1 特性简介58.2 架构介绍58.3 功能特点58.4 适用场景与限制58.5 手动安装示例58.6 OCK RDMA使用示例58.7 OCK SCRLock使用示例 openGauss学习笔记-58 openGauss 高级特性-资源池化 58.1 特性简介 资源池化特性主…...
centos升级cmake之相关问题解决
1. yum安装(仓库默认版本) # 查看可安装版本 yum --showduplicates list xxxx# 安装指定版本 yum install xxxx-1.23.1 2. 安装高版本cmake 2.1 一开始下载的是cmake-xxx.zip,在 ./bootstrap 一直会报错“missing terminating " character”,后来…...
vcs仿真教程(查看断言)
VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。 1.vcs的基本指令 vcs的常见指令后缀 sim常见指令 2.使用vcs的实例 (1)新建文件夹: …...
2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工
2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工...
javaee spring aop 切入点表达式
1、切入点表达式:对指定的方法进行拦截,并且生成代理表达式。 表达式语法:execution([修饰符] 返回值类型 包名.类名.方法名(参数))execution( public void com.test.service.impl.UsersService.add() )2、表达式不同写法 1.匹配指定方法 …...
js 获得元素的offsetLeft
要获得元素相对于其offsetParent元素左侧边缘的距离(即offsetLeft),可以使用如下代码: var el document.getElementById(your-element-id); var offsetLeft el.offsetLeft;其中,el为要获取offsetLeft的元素对象&…...
【Spring面试题】IOC控制反转和DI依赖注入(详解)
IOC Inversion of Control 控制反转,是一种面向对象的思想。 控制反转就是把创建和管理 bean 的过程转移给了第三方。而这个第三方,就是 Spring IoC Container,对于 IoC 来说,最重要的就是容器。 通俗点讲,因为项目…...
LeetCode 2511. 最多可以摧毁的敌人城堡数目
【LetMeFly】2511.最多可以摧毁的敌人城堡数目 力扣题目链接:https://leetcode.cn/problems/maximum-enemy-forts-that-can-be-captured/ 给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。forts[i] 可以是 -1 ,…...
Comsol 多裂纹水力压裂扩展:拉伸与压缩下的破坏探索
comsol多裂纹水力压裂扩展,可以实现拉伸和压缩下的破坏。在工程领域,水力压裂是一项至关重要的技术,尤其在石油和天然气开采等方面应用广泛。而 Comsol 作为强大的多物理场仿真软件,为我们研究多裂纹水力压裂扩展提供了有力工具&a…...
WDMHDA:Windows 旧系统高清音频驱动的突破与挑战
【导语:WDMHDA 是一款适用于 Windows 98SE / ME 的高清音频驱动程序,为旧系统的音频功能带来新可能。但目前处于 Alpha 阶段,存在诸多待解决问题,其发展对旧系统音频生态有重要影响。】WDMHDA:旧系统音频驱动新选择WDM…...
你的电机仿真结果靠谱吗?聊聊Maxwell瞬态分析里那些容易被忽略的‘坑’
电机仿真精度提升指南:Maxwell瞬态分析中的关键细节与验证方法 当你在凌晨三点盯着屏幕上那条波动异常的转矩曲线时,是否曾怀疑过自己的仿真模型在说谎?作为从业十五年的电磁仿真专家,我见过太多工程师在项目验收前夜才发现仿真结…...
Docker 安装 Portainer(Docker 容器管理工具)
安装步骤 1. 创建 Portainer 数据卷(可选,用于持久化数据) docker volume create portainer_data2. 运行 Portainer 容器 方式一:Docker 命令运行 docker run -d \-p 8000:8000 \-p 9443:9443 \--name portainer \--restartalways…...
5个高效管理技巧:用Ice实现macOS菜单栏清爽体验
5个高效管理技巧:用Ice实现macOS菜单栏清爽体验 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice macOS菜单栏作为日常操作的核心区域,常常因应用图标过多而变得杂乱无章&#…...
解密Qwen2VLImageProcessor:从RGB转换到时空补丁的完整预处理流水线
解密Qwen2VLImageProcessor:从RGB转换到时空补丁的完整预处理流水线 在计算机视觉与多模态模型融合的前沿领域,图像预处理流水线的设计质量直接影响着模型性能的天花板。Qwen2VLImageProcessor作为专为Qwen2-VL模型设计的预处理引擎,其独特之…...
别再死磕MIG了!ZYNQ PS端DDR3做帧缓存,用VDMA+HP接口实战指南
ZYNQ视频处理架构革命:VDMAHP接口实战全解析 从传统FPGA到ZYNQ的思维转换 在传统FPGA视频处理项目中,工程师们早已习惯使用MIG IP核管理DDR控制器,通过用户接口实现帧缓存功能。这种模式在纯FPGA环境中运行良好,但当转向ZYNQ平台…...
GEO时代媒体发布新范式:Infoseek如何用工程思维重构内容分发
上周跟一个做技术社区运营的朋友聊天,他吐槽了一件事:公司新功能上线,想发篇技术解读稿,找了家公关公司报价,一篇3000块,承诺发30家媒体,但具体发哪家、什么时候发、效果怎么样,全凭…...
PDF文本高效提取:用pdftotext实现秒级文档内容解析
PDF文本高效提取:用pdftotext实现秒级文档内容解析 【免费下载链接】pdftotext Simple PDF text extraction 项目地址: https://gitcode.com/gh_mirrors/pd/pdftotext 破解PDF提取痛点:为什么你需要专业工具? 每天面对数十份PDF文档却…...
OCRmyPDF:让扫描PDF焕发新生的开源解决方案
OCRmyPDF:让扫描PDF焕发新生的开源解决方案 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF 在数字化办公的浪潮中,…...
