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基础命令下载,Linux基础命令教程豪华版

豪华版主张学到更多的Linux命令知识。从这里开始学习Linux命令,本课程让你更清楚地了解和掌握它,在Linux中命令是讲究大小写的,所以请管好你的CapsLock键。不用担心,Linux命令说到底是几个字母的东西,你能学好它的&…

linux中循环删除脚本,shell脚本:遍历删除

遍历删除文本内路径上文件windows上测试可以安装Git linux中,准备删除文件的脚本deleteFile.sh,picture.txt保存待删除文件的文件路径,picture文件夹下面有三张待删除图片a/b/c.jpgdeleteFile.sh脚本如下:#!/bin/bash#…

linux 内核级资源查看,Linux资源管理

前一篇博客介绍了利用 cgroup 来控制进程的 CPU和内存使用情况, 这次补上使用 cgroup 来控制进程的IO优先级的方法.前提条件如果想控制进程的IO优先级, 需要内核的支持, 内核编译时需要打开下面2个参数.CONFIG_BLK_CGROUPyCONFIG_CFQ_GROUP_IOSCHEDy查看是否开启这2个内核编译选…

linux cpu uuid 查看,Linux下查看UUID方法介绍

Linux下查看UUID方法介绍。1. sudo blkid/dev/sda1: UUID”9ADAAB4DDAAB250B” TYPE”ntfs”/dev/sdb1: UUID”B2FCDCFBFCDCBAB5″ TYPE”ntfs”/dev/sdb5: UUID”46FC5C74FC5C5FEB” TYPE”ntfs”/dev/sdb6: TYPE”swap” UUID”2cec6109-5bcf-45a3-ba1b-978b041c037f”/dev/s…

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

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

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

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

linux 搜索命令 历史,Linux 控制台神器:搜索历史命令 Ctrl + R ( ctrl + r to search the history command )...

Linux 控制台神器:搜索历史命令 Ctrl R ( ctrl r to search the history command )2013-01-29 15:30访问量: 23761分类:技术Linux下的神器 ctrl r (reverse-i-search ) 的使用方法: (reverse-i-search usage: )(press ctl r ) 输入任意…

linux 有名管道pipe,linux 用無名管道pipe和有名管道fifo實現線程間通信

1.pipe用與實現同一個進程下不同線程間的通信(跟IPC進程間通信中的具有血緣關系的進程通信實現方式一樣)#include #include #include #include #include using namespace std;void *func(void * fd){char str[] "this is write thread!\n";write( *(int*)fd, str, s…

linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解

1. apache静态资源跨域访问找到apache配置文件httpd.conf找到这行#LoadModule headers_module modules/mod_headers.so把#注释符去掉LoadModule headers_module modules/mod_headers.so目的是开启apache头信息自定义模块在独立主机配置文件中新增headerHeader set Access-Contr…

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…

三个等价c语言表达式,C语言习题综合(20页)-原创力文档

第二章练习题—.选择题1. 以下选项中正确的实型常量2A 0 B 3. 1415 C 0.32910 D .8712.不合法的用户标识符A _123 B printf C A $ D Dim1.表达式3.51/2的计算结果是___2.对数学表达式 ,写出三个等价的c语言表达式_____}第三章 练习题一.选择题1.若a ,b,c都是int型变…

DSP C2000汇编语言,DSPC2000汇编指令

值。XT寄存器的低16位部分是TL寄存器。该寄存器能装载一个16位有符号数,能自动对该数进行符号扩展,然后将其送人32位XT寄存器。XT寄存器的高16位部分是T寄存器。该寄存器主要用来存储16位乘法操作之前的16位整数值。T寄存器也可以为一些移位操作设定移位…

c语言编程算法精选,c语言经典程序算法【DOC精选】.doc

c语言经典程序算法【DOC精选】c语言经典程序算法浏览次数:47017次悬赏分:15 | 解决时间:2007-9-14 10:02 | 提问者:liyufei05j3最佳答案经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不…

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版本就可以愉快的玩耍啦,你还不赶快…

js百度地图android定位不准,百度地图js定位不准

浏览器H5定位即navigator.geolocation,通过IP或者域名的形式,如:http://172.21.3.82:8080 和http://b.cunzhang.com进行访问时,调用navigator.geolocation.getCurrentPosition,打开控制台,你会发现有以下错…

Android在线更新安装包,Android在线更新下载方案

目的App的在线更新是每一个项目必有的功能,但在过程当中会遇到一些问题,在此记录下心得。步骤1、将最新版本号和本地版本号进行对比;2、如需更新,则弹出更新提示对话框;3、下载更新APK文件,并显示进度条和通…

c汇编语言例题,汇编语言例题分析.doc

汇编语言例题分析汇编语言例题分析《汇编语言程序设计》练习题作者名:不详 来源:网友提供 06年6月8日一、基本概念1、8088/8086CPU内部寄存器有______个 ,其中的______是通用寄存器,______是基址和变址寄存器,______是段寄存器&a…