核心debugfs使用簡介

2021-10-02 06:28:33 字數 2890 閱讀 1663

建立乙個debugfs目錄:

struct dentry *

debugfs_create_dir

(const

char

*name,

struct dentry *parent)

;

建立乙個debugfs檔案:

struct dentry *

debugfs_create_file

(const

char

*name, umode_t mode,

struct dentry *parent,

void

*data,

const

struct file_operations *fops)

;

struct dentry *

debugfs_create_symlink

(const

char

*name,

struct dentry *parent,

const

char

*dest)

;

刪除乙個debugfs檔案/目錄:

void

debugfs_remove

(struct dentry *dentry)

;

按照上面的建立介面來操作的話,必須要構建並且傳入乙個struct file_operations結構體才行,這其實是相當繁瑣的,因此核心已經實現了更加便捷的debugfs介面,替我們實現了一些常用的file_operations結構,這樣我們可以不必重複去造輪子了,極大簡化了開發複雜度。

struct dentry *

debugfs_create_u8

(const

char

*name, umode_t mode,

struct dentry *parent, u8 *value)

;struct dentry *

debugfs_create_u16

(const

char

*name, umode_t mode,

struct dentry *parent, u16 *value)

;struct dentry *

debugfs_create_u32

(const

char

*name, umode_t mode,

struct dentry *parent, u32 *value)

;struct dentry *

debugfs_create_u64

(const

char

*name, umode_t mode,

struct dentry *parent, u64 *value)

;struct dentry *

debugfs_create_ulong

(const

char

*name, umode_t mode,

struct dentry *parent,

unsigned

long

*value)

;struct dentry *

debugfs_create_x8

(const

char

*name, umode_t mode,

struct dentry *parent, u8 *value)

;struct dentry *

debugfs_create_x16

(const

char

*name, umode_t mode,

struct dentry *parent, u16 *value)

;struct dentry *

debugfs_create_x32

(const

char

*name, umode_t mode,

struct dentry *parent, u32 *value)

;struct dentry *

debugfs_create_x64

(const

char

*name, umode_t mode,

struct dentry *parent, u64 *value)

;struct dentry *

debugfs_create_size_t

(const

char

*name, umode_t mode,

struct dentry *parent, size_t *value)

;struct dentry *

debugfs_create_atomic_t

(const

char

*name, umode_t mode,

struct dentry *parent, atomic_t *value)

;struct dentry *

debugfs_create_bool

(const

char

*name, umode_t mode,

struct dentry *parent, bool *value)

;

這一系列的函式,核心中只需要傳入對應資料型別的value位址即可,註冊完成後,應用層會在debugfs中會生成對應的debug檔案節點,這個節點可以**用層來讀取和寫入該value值。由此實現應用和核心的資訊互動。檔案節點的讀取屬性由mode來指定,核心會根據mode來執行不同的file_operations。分為唯讀、只寫、可讀寫型別。

如何使用Debugfs查詢Linux檔案建立時間

在linux系統中,所有的東西都被當作乙個檔案來對待,關於檔案的關鍵元資料,如建立和修改日期都儲存在inodes中。我們已經看了如何在linux系統中使用stat httpie和date命令檢查檔案的最後修改日期。在本教程中,我們將向您展示如何使用debugfs命令查詢檔案的建立時間。使用debug...

Linux核心簡介

說明 只供學習交流 一,linux體系結構 如果有人問你,linux系統是如何構成的?只要把下面這幅圖說給他聽,就ok 從圖上我們可以知道,linux系統是由使用者空間和核心空間兩部分組成,之所以將linux系統劃分為使用者空間和核心空間很大一部分原因是為了安全著想。linux簡化了分段機制,使得虛...

Linux 核心 簡介

核心是linux系統的最底層,提供了系統的核心功能並允許程序以一種有序的方式訪問硬體 用於控制程序,輸入,輸出裝置,檔案系統操作,管理記憶體,這些都是系統自動完成的,你大可安然睡覺去,linux核心支援多使用者,多工模式執行 多使用者 同時有多個使用者訪問系統 多工 某個時刻有多個任務執行 linu...