|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
内核提供了许多与kobject结构相关的函数,如下:$ I* R7 K4 l0 H4 v& |
; i1 Y* i3 J3 f( ~
8 [7 Y/ a7 z9 w$ F" {- // kobject初始化函数
- void kobject_init(struct kobject * kobj);
- // 设置指定kobject的名称
- int kobject_set_name(struct kobject *kobj, const char *format, ...);
- // 将kobj 对象的引用计数加,同时返回该对象的指针
- struct kobject *kobject_get(struct kobject *kobj);
- // 将kobj对象的引用计数减,如果引用计数降为,则调用kobject release()释放该kobject对象
- void kobject_put(struct kobject * kobj);
- // 将kobj对象加入Linux设备层次。挂接该kobject对象到kset的list链中,增加父目录各级kobject的引// 用计数,在其parent指向的目录下创建文件节点,并启动该类型内核对象的hotplug函数
- int kobject_add(struct kobject * kobj);
- // kobject注册函数,调用kobject init()初始化kobj,再调用kobject_add()完成该内核对象的注册
- int kobject_register(struct kobject * kobj);
- // 从Linux设备层次(hierarchy)中删除kobj对象
- void kobject_del(struct kobject * kobj);
- // kobject注销函数. 与kobject register()相反,它首先调用kobject del从设备层次中删除该对象,再调// 用kobject put()减少该对象的引用计数,如果引用计数降为,则释放kobject对象
- void kobject_unregister(struct kobject * kobj);( Q0 M1 @( N$ @ x8 X4 c- ~1 ?
+ m% w' j6 x9 Z4 }' {0 W
* l$ A: V. ~1 L) b7 m; R( l6 N* q3 u3 B0 V
kset结构
* {/ s+ c- u% u7 B4 d* F
& V: z W$ L# G* L& q" c5 r% B7 A4 ?" N. `, x
% V& c B. T+ G3 }2 [ v2 b- J& F& w8 t) c- s* R3 v: Q1 D- d- }+ R% a
( V7 _5 \" ~+ A* o
|
|