裝置模型二 Kobject, Kset

2021-07-28 02:06:27 字數 1107 閱讀 3076

struct kobject ;
接下來介紹幾個重要的函式,並通過原始碼進行分析

- kobject_add_internal

說明: 此函式要做是

1.建立kobj間的關係

2.向/sys反應目錄間關係

首先呼叫此函式前, kobj是已經初始化好的

if (kobj->kset)
上面**含義: 如果kobj有kset但是沒有parent,就把kset當做parent,之後呼叫kobj_kset_join將kobj加到kset的list中

其次建立目錄間關係

上圖大致把建立目錄的關係脈絡畫了一下,但實際情況並沒有那麼不堪,等後面章節講關於class類的時候還會用到這個圖,到時候可能會進行擴充

- sysfs_create_file

說明:建立乙個屬性檔案, 此函式的引數有兩個

1.kobj –>在kobj所在的目錄下建立

2.屬性檔案–>用來描述檔案的名字與讀寫許可權

過程:函式的過程並不複雜

1.獲取kobj的目錄結構 sd

2.建立乙個新的目錄結構new_sd,名字為第二個引數

3.建立目錄關係 new_sd->parent = sd

-kobject_init_and_add

說明: 生成kobject

過程: 前提生成了kobject(可以指定kset, 名稱, ktype)

1.呼叫kobject_add_internal函式

-kobject_create_and_add

說明:kobject_init_and_add大致類似, 唯一不同的是呼叫此函式不用提前malloc kobject,不能指定 kset

過程:1.kobject_create函式呼叫,此函式malloc了乙個koj, 賦預設的ktype結構

2.呼叫kobject_add函式—>kobject_add_internal

這些函式的說明是為了鋪墊之後章節例子中的函式

Linux裝置模型分析之(二) 裝置模型的基石

linux裝置模型分析之 一 裝置模型核心 linux裝置模型分析之 二 裝置模型的基石 linux裝置模型分析之 三 sysfs linux裝置模型分析之 四 class linux裝置模型分析之 五 uevent linux裝置模型通過sysfs檔案系統將裝置 驅動 匯流排組織成拓撲結構以目錄結...

裝置驅動模型

linux裝置模型中三個很重要的概念就是匯流排 裝置和驅動,即bus,device和driver。它們分別對應的資料結構分別為struct bus type,struct device和struct device driver。struct device 操作函式 註冊 int device reg...

裝置驅動模型

隨著技術的不斷進步,系統的拓撲結構也越來越複雜,對智慧型電源管理 熱插拔的支援要求也越來越高,2.4核心已經難以滿足這些需求。為適應這種形勢的需要,linux 2.6核心提供了全新的核心裝置模型。裝置模型元素 匯流排 驅動裝置 匯流排 匯流排是處理器和裝置之間的通道,在裝置模型中 所有的裝置都通過匯...