gpt4 book ai didi

linux - 为什么根据 LDD3 device->kobj->parent 等于 &device->parent->kobj?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:32:20 26 4
gpt4 key购买 nike

我浏览了 LDD3 的第 14 章并在第 4 节中找到了以下内容;

As a general rule, device->kobj->parent is equal to &device->parent->kobj

谁能解释一下为什么会这样?

我阅读了第 1、2、3 节。但我想我错过了什么或者无法消化它。

最佳答案

您可以认为这是对面向对象概念的继承。

一个 struct kobject 代表一个内核对象,所以 device 是 kobject 的 kind 子类。

struct device {
struct device * parent;
struct device_private * p;
struct kobject kobj;
..
}

struct kobject {
char *k_name;
char name[KOBJ_NAME_LEN];
struct kref kref;
struct list_head entry;
struct kobject *parent;
struct kset *kset;
struct kobj_type *ktype;
struct dentry *dentry;
};

一个设备有它的父设备,父设备的kobject也是设备的kobject的父对象。这种关系由 linux 内核处理。

这就是为什么device->kobj->parent等于device->parent->kobj。 (Device's kobject's parent 等于 device's parent's kobject)。

关于linux - 为什么根据 LDD3 device->kobj->parent 等于 &device->parent->kobj?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com