I.MX6ULL内核开发4:设备号的组成与哈希表
目录
一、设备号
二、hash table
一、设备号
文件夹:/home/geralt/linux_driver/kernel/ebf_linux_kernel_6ull_depth1/include/linux/kdev.h
这里面是linux中关于设备号的具体描述
#define MINORBITS 20
#define MINORMASK ((1U << MINORBITS) - 1)#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
小技巧:在vscode中可使用ctrl+p快捷键快速找到需要的文件。
理论取值范围:
主设备号:2^12=1024*4=4k
次设备号:2^20=1024*1024=1M
- 已注册的设备号可以使用 cat /proc/devices 查看
可以看到,这是已经注册过的设备,其中包括设备号和名字。
- 内核是希望一个设备驱动(file_operation)可以独自占有一个主设备号和多个次设备号,而通常一个设备文件绑定一个主设备号和一个次设备号,所以设备驱动和设备文件是一对一和一对多的关系。
二、hash table
哈希表、散列表
- 数组的优缺点:查找快,增删元素效率低,容量固定
- 链表的优缺点:查找慢,增删元素效率高,容量不限
- 哈希表:数组+链表
- 以主设备号为编号,使用哈希表f(major)=major%255来计算数组下标
- 主设备号冲突(如0,255),则以次设备号为比较值来排序链表节点
哈希函数的设计目标:链表节点尽量平均分布在各个数组元素中,以提高查询效率
相关文章:

I.MX6ULL内核开发4:设备号的组成与哈希表
目录 一、设备号 二、hash table 一、设备号 文件夹:/home/geralt/linux_driver/kernel/ebf_linux_kernel_6ull_depth1/include/linux/kdev.h 这里面是linux中关于设备号的具体描述 #define MINORBITS 20 #define MINORMASK ((1U << MINORBITS) - 1)#defin…...
【博学谷学习记录】大数据课程-学习第六周总结
Hadoop 3.x的版本架构和模型介绍 由于Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,即hadoop 3.0。Hadoop 3.0中引入了一些重要的功能和优化,包括…...

Cordova
一、简介 Cordova 是用 Web 技术( HTML,CSS 和 JS )构建移动应用的平台。我们可以认为Cordova 是一个容器,用于将的 Web 应用移植到移动端,同时支持移动端的功能(例如:定位、蓝牙、摄像头等&am…...

9.语义HTMLVScode扩展推荐
语义HTML 定义: 一个元素使用我们并不是只关心他是什么样子的,而是要去关心这个元素名称的实际意义或者代表什么 我们使用标签并不是他仅代表导航栏,只是将导航栏部分归为一个块。现实生活中,多使用之前都是使用div这个元素去构…...

一款非常不错的微信系统垃圾清理工具:微信清理大师,操作简单,清除较快。
微信清理大师 微信清理大师是一款专为微信所推出的系统垃圾清理工具。它的功能十分强大,可快捷清理微信内储存垃圾文件,操作十分简单,只需要轻轻一点,即可删除清理。 功能特点: 【一键清理】一键搞定无用垃圾&#x…...
PMP考前冲刺2.11 | 2023新征程,一举拿证
承载2023新一年的好运让我们迈向PMP终点一起冲刺!一起拿证!每日5道PMP习题助大家上岸PMP!!!题目1-2:1.以下哪三种情况是Scrum主管应该注意的障碍?(选择三个)A. 阻碍敏捷能力的技术B. 缺乏团队授…...
yalc(比 yarn/npm link 更加友好的前端依赖库 link 方案)
参考链接: 【yalc 官方文档】:https://github.com/wclr/yalc 【yalc-watch 官方文档】:https://github.com/johot/yalc-watch 链接依赖库背景 以 D-SASS 前端框架为例,当我们在修改 D-SASS 前端框架时,当想着马上就要预览到修改的内容是否生效,于是在前端框架目录下进…...
Github | 个人资料自述文件配置的不完全总结
本文简单总结配置 Github 主页上个人资料自述文件的流程和参考文件。 更新:2022 / 02 / 11 Github | 配置个人主页的信息总览方法的不完全总结创建、删除个人资料自述文件编辑个人资料自述文件参考链接创建、删除个人资料自述文件 首推自然是官方说明文档 1&#…...
2022年12月电子学会Python等级考试试卷(二级)答案解析
目录 一、单选题(共25题,共50分) 二、判断题(共10题,共20分) 三、编程题(共2题,共30分) 青少年软件编程(Python)等级考试试卷(二级) 一、单选题(共25题,共50分) 1. 运行下列程序…...

SpringCloud第二讲 Ribbon负载均衡源码分析
前言介绍: 这一讲我们将依据Eureka的负载均衡规则,Eureka的具体服务搭建以及服务注册和服务发现可以参考基于Eureka实现服务注册和服务发现_热爱Java的编程小白的博客-CSDN博客 Eureka的服务搭建之后便可以在这上面进行服务注册,如果存在两个…...

Clip-path实现按钮流动边框动画
前言 👏Clip-path实现按钮流动边框动画,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 添加div标签 <div>苏苏_icon</div>添加样式 div {position: relative;width: 220px;height: 6…...

不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布
原文网址:不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布_IT利刃出鞘的博客-CSDN博客 简介 本文介绍不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布。 升级服务器的应用时,要停止掉老版本服务,将程序上传…...
有趣的KaTeX(附源码)
两年半未见,甚是想念 给大家带来有趣的KaTeX\KaTeXKATEX,可以放在洛谷主页 文章目录1234561 1#include<bits/stdc.h>\texttt{1 \color{orange}\#include <bits/stdc.h>}1 #include <bits/stdc.h> 2usingnamespacestd;\texttt{2 \col…...

Golang map笔记
map定义三种方式package mainimport "fmt"func main() {// map 的基本定义// 第一种方式 使用make分配数据空间var map1 map[string]stringmap1 make(map[string]string, 3)map1["no1"] "北京"map1["no2"] "天津"map1[&q…...
Android Jetpack组件之WorkManager高级概念介绍与使用(三)
一、介绍 通过前面两篇,我们基本掌握了组件的workmanager的接入,以及api的使用等。但是一个框架如果运用在复杂的项目中,肯定需要有其他额外的支持,介绍来我们将会介绍高级概念,以及对前面的知识点进行回顾与拓展。 高…...
Spring框架中用到的设计模式(都用到了哪些设计模式?)
文章目录简单工厂模式:工厂模式:单例模式:原型模式:迭代器模式:代理模式:适配器模式:观察者模式:模板模式:责任链模式:这是一道相对有难度的题目,…...

Python中的类和对象(4)
1. 构造函数 (_ init _(self[,……])) 在类中定义 _init _() 方法,可以实现在实例化对象的时候进行个性化定制: >>> class C: ... def __init__(self, x, y): ... self.x x ... self.y y ... …...

window11 安装node及配置环境变量
一、安装环境 本教程演示的环境: 系统:win 11 64位 node.js下载地址: http://nodejs.cn/ node.js版本:长期支持版本(本教程基于16.15.0) 点击选中图标下载到电脑本地即可。 二、安装步骤 1、双击安装包,一…...

腾讯云服务器选购新手教程(新版流程超级详细)
腾讯云服务器购买有两个入口,一个是直接在秒杀活动上购买云服务器,价格便宜,2核2G4M轻量服务器,2核4G6M服务器、4核8G10M服务器,活动上购买价格便宜,但是服务器机型固定;另一个是直接在云服务器…...

第四章 Opencv图像色彩空间与通道
文章目录1.色彩空间1-1.RGB/BGR色彩空间1-2.GRAY色彩空间1-3.HSV色彩空间2.通道2-1.拆分通道:split()方法1.拆BGR色彩空间图像的通道2.拆HSV色彩空间图像的通道2-2.合并通道:merge()方法1.B、G、R 通道的合并2.H、S、V 通道的合并3.B、G、R、A 通道的合并…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...