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核心提供了全新的核心裝置模型。裝置模型元素 匯流排 驅動裝置 匯流排 匯流排是處理器和裝置之間的通道,在裝置模型中 所有的裝置都通過匯...