linux kset subsystem 3.10内核,Kobject、Kset 和 Subsystem

2014年5月12日Kobject 、Kset 和 Subsy stem - 海王 - 博客园http://www.doczj.com/doc/93b5b6113b3567ec112d8a49.html/leav en/archiv e/2010/04/24/1719191.html 4/8件(2)4. Linux input 子系统 io 控制字段(2)

5. linux 内核定时器 tim er_list 详解(2) (2)把kobject 的 kset 成员指向目标kset 。

(3)将kobject 传递给下面的函数:int kobject_add(struct kobject *kobj); /*函数可能失败(返回一个负错误码),程序应作出相应地反应*/

内核提供了一个组合函数:

extern int kobject_register(struct kobject *kobj); /*仅仅是一个

kobject_init 和 kobject_add 的结合,其他成员的初始化必须在之前手动完成*/

当把一个kobject 从kset 中删除以清除引用时使用:

void kobject_del(struct kobject *kobj); /*是 kobject_del 和kobject_put 的结合*/

kset 在一个标准的内核链表中保存了它的子节点,在大部分情况下, 被包含的 kobjects 在它们的 parent 成员中保存指向 kset 内嵌的 kobject 的指

6bf9b4bfc6e8daff1428b0822a31264b.png

针,关系如下:

图表中的所有的被包含的 kobjects 实际上被嵌入在一些其他类型中, 甚至可能其他的 kset 。

kset 上的操作

ksets 有类似于kobjects 初始化和设置接口:

void kset_init(struct kset *kset);

int kset_add(struct kset *kset);

int kset_register(struct kset *kset);

void kset_unregister(struct kset *kset);

/*管理 ksets 的引用计数:*/

struct kset *kset_get(struct kset *kset);

void kset_put(struct kset *kset);

/* kset 也有一个名字,存储于嵌入的 kobject,因此设置它的名字用:*/kobject_set_nam e(&m y_set->kobj, "The nam e");

ksets 还有一个指针指向 kobj_type 结构来描述它包含的 kobject ,这个类型优先于 kobject 自身中的 ktype 。因此在典型的应用中, 在 struct

kobject 中的 ktype 成员被设为 NULL, 而 kset 中的ktype 是实际被使用的。

在新的内核里, kset 不再包含一个子系统指针struct subsystem *subsys , 而且subsystem 已经被kset 取代。

子系统

子系统是对整个内核中一些高级部分的表述。子系统通常(但不一定)出现在sysfs 分层结构中的顶层,内核子系统包括 block_subsys(/sys/block 块设备)、 devices_subsys(/sys/devices 核心设备层)以及内核已知的用于各种总线的特定子系统。

对于新的内核已经不再有subsystem 数据结构了,用kset 代替了。每个 kset 必须属于一个子系统,子系统成员帮助内核在分层结构中定位 kset 。 /*子系统通常用以下的宏声明:*/

decl_subsys(nam e, struct kobj_type *type, struct

kset_uevent_ops * uevent_ops);

/*子系统的操作函数:*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 自定义vi dd,Vim常用命令及配置方案

几句话很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好。我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很是难受,所…

linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...

指纹作为人体的身体特征,具有唯一性、稳定性和不易盗用等特点。随着指纹识别理论逐渐成熟、指纹采集工具这一难题得到解决,指纹识别已经成为目前最广泛应用的生物识别之一,逐渐取代了传统的认证识别方式,广泛应用于金融、公安、证…

linux wps历史版本下载,WPS Office 2019 For Linux 11.1.0.9604版携新更新发布下载

WPS Office 2019 For Linux 11.1.0.9604版本发布了,仅支持64位计算机,提供Deb和Rpm格式软件包下载。更新详情1、WPS公共:优化界面绘制相关api的调用效率。适配ibus和fcitx框架的输入法,解决无法输入中文,预输入显示等问…

Linux双独立显卡SLI,玩点新奇的 双显卡给你不同的“SLI”效果

显卡老是千篇一律的常规测试对于我们这些测试人员来说早就已经没有什么意思了,无非就是跑分,超频后跑分,拷机等等一些测试项目,常看我们测试的玩家应该也知道同芯片显卡除非是频率的差别非常大才会有较为明显的性能差距体现出来&a…

android win10 驱动安装失败,解决在win10系统下小米手机驱动安装失败的具体步骤...

随着系统的升级越来越快,对于许多用户的系统都已经升级到win10系统了,win10系统在给用户带来方便的同时,有时候也会遇到一些小麻烦,比如说对于最新的Window10正式版系统而言,基本主流的手机驱动都能自动检测安装。不过…

z3735f android x86,英特尔的Atom Z3735F分析 全文总结_台电 X80HD_平板电脑评测-中关村在线...

硬件配置:英特尔64位提供性能保证台电X80HD双系统使用Intel Atom Z3735F四核处理器,最高睿频可达1.83GHz,其采用64位X86架构,搭载最新一代睿频加速技术,并拥有四核四线程,支持多任务同时处理。英特尔的Atom…

浏览器 android x86,360浏览器x86版下载

360浏览器x86版下载,是专门针对现在越来越多的win10和安卓双系统的国产平板电脑使用的安卓版app,例如台电平板,适用机型 适用于联想K800、联想K900、MOTO MT788、MOTO XT890、Acer联想平板等,只要安装了x86版本就可以愉快的玩耍啦,你还不赶快…

android怎么换小米系统更新,miui8怎么更新 miui8更新升级方法汇总

小米miui8系统已经开始测试,相信你的小米手机已准备好迎接新系统的到来,下文介绍小米miui8更新方法大全,一起小编一起了解下吧!小米miui8刷机方法大全:一、系统推送OTA升级OTA推送升级MIUI8(需连接Wifi进行)根据微博上…

Android入门简书,android ndk开发入门随笔(一)

ndk,jni入门随笔因为工作缘故最近在研究jni,ndk方面知识,在此总结入坑以来的一些问题.配置环境可以在下面geogle官方看。下面是链接我一说ndk,jni可能小伙伴要问了这是什么,在此我来总结我个人的看法jni就是一个接口&a…

台式计算机驱动程序未被安装,电脑未能成功安装设备驱动程序怎么办

电脑的设备驱动程序:驱动程序一般指的是设备驱动程序(DeviceDriver),是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,如某设备的驱动程序未能正确安装&a…

android摄像头矩形框提取_视频图像摄像头跟踪的上位机系统设计

​背景介绍视频序列中的目标进行跟踪是计算机视觉的热门研究领域之一,其主要过程是首先在视频序列的第一帧图像中选定跟踪目标,之后运行跟踪算法,实现在后续帧中预测跟踪目标的位置。本系统设计了一个集成视觉目标跟踪算法的上位机&#xff0…

c++清空一个txt文本_Linux下常用文本处理命令大全

Linux中很多文本工具都使用到了正则表达式,正则表达式可以极大的简化linux系统管理工作,因为网上有很多正则相关的教程,所以这里不再讲述,我当时看的是菜鸟的正则表达式,看个一下午在实验几遍基本就会了,除…

labuladong 的算法小抄_来自GitHub 68.8k star的硬核算法教程

很多朋友害怕算法,其实大可不必,算法题无非就那几个套路,一旦掌握,就会觉得算法实在是太朴实无华且枯燥了!本文选自硬核算法教程《labuladong的算法小抄》,带你学习套路,把握各类算法问题的共性…

router vue 动态改变url_2020年 vue常见面试问题总结(干货)!

1.什么是mvvm模式,谈谈你的理解? MVVM - Model View ViewModel,数据,视图,视图模型view 可以通过 事件绑定 的方式影响 model,model 可以通过 数据绑定 的形式影响到view,viewModel是把 model 和…

html怎么弄艺术字体,如何为图片加上艺术字的图文方法步骤

给图片加字有好多方法,比如用photoshop等专业工具,在线图片加字,但是前者效果好,操作较复杂,后者效果不大理想。其实有更简单相对效果也不错的方法,利用你手边的工具就可以了!下面介绍利用Windo…

androidstudio调用系统相机为什么resultcode一直返回0_函数递归调用?看这文就够了...

作者 | Cooper Song责编 | Elle出品 | 程序人生(ID:coder_life)我猜,大多数程序员第一次接触函数的递归调用都是在算斐波那契数列某项值的时候,这是函数递归调用最常见的应用之一。规定第一项和第二项为1,后面的项,每一…

http请求 url 竖线_http.createServer创建http服务

语法:http.createServer([options][, requestListener])第二个参数requestListener,是一个自动添加到request事件的方法。返回一个新的 http.Server实例。之前代码是使用server.on(request,callback)来监听请求事件,由于http.createServer第二…

物理不突出能学计算机吗,物理成绩不突出,高中选科怎么办?3个理由让你解除后顾之忧!...

目前确定将要于2021年采用新高考“312”模式的有河北、辽宁、江苏、福建、湖南、湖北、广东和重庆8个省市。但是很多高一新生和家长们,面对选科问题时,却是犯了愁。“想选物理呢,物理成绩不突出,没有优势,听说选考物理…

@bean注解和@component注解的区别_通过源码查看 @Component,@Service 等注解是如何被解析的...

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人来源:my.oschina.net/floor/blog/4325651前言1.Component解析流程找入口找核心方法概要分析2.查文档找思路3. 探寻Component派生性流程1. 确定metadataReader2.查看match方法…

centos7已有数据硬盘挂载_干货!如何给虚拟机增加虚拟硬盘,Linux再分区挂载

很多朋友一开始给虚拟机的硬盘都很小,用着用着虚拟硬盘就不够了,今天小编就给大伙说说如何给虚拟机添加虚拟硬盘在到Linux系统下分区格式化再到挂载。点击创建新的虚拟盘我分配一个8g的硬盘吧!现在启动centos 7查看一下你刚刚添加的8G的硬盘&…