一些核心模組函式 1

2021-08-20 03:15:18 字數 955 閱讀 4282

//給乙個給定的addr,要是這個addr在某個模組的【位址空間】中,則返回指向該模組的指標

struct module *__module_address(unsigned long addr)

return null;

}//給乙個給定的addr,要是這個addr在某個模組的【text段,也就是**段】中,則返回指向該模組的

//指標

struct module *__module_text_address(unsigned long addr)

return mod;

}//【核心符號表】,就是在核心的內部函式或變數中,可供外部引用的函式和變數的符號表。

//其實說白了就是乙個索引檔案,它存在的目的就是讓外部軟體可以知道kernel檔案內部實際分配的位置。

//給乙個記憶體位址address,查詢乙個核心符號,並將該符號的基本資訊,符號名name,偏移offset

//大小size,所屬模組名,儲存在 fmt 的%s中

void __print_symbol(const char *fmt, unsigned long address)

static int __sprint_symbol(char *buffer,        unsigned long address,

int   symbol_offset, int           add_offset)

//給乙個核心符號名symbol,獲得該符號的記憶體位址,找到其所在的核心模組,並會給該模組的引用計數

//加1

void *__symbol_get(const char *symbol)

//給乙個核心符號名symbol,獲得該符號的記憶體位址,找到其所在的核心模組,並會給該模組的引用計數

//減1 【此處即是核心態下,部分api成雙成對的使用,有+就要有-】

void __symbol_put(const char *symbol)

一些核心模組API 2

核心符號表 就是在核心的內部函式或變數中,可供外部引用的函式和變數的符號表。其實說白了就是乙個索引檔案,它存在的目的就是讓外部軟體可以知道kernel檔案內部實際分配的位置。給乙個記憶體位址address,查詢乙個核心符號,並將該符號的基本資訊,符號名name,偏移offset 大小size,所屬模...

一些函式總結 1

windows api之 getmodulefilename 在開發軟體的過程裡,經常需要把資料儲存到當前執行檔案路徑下面,或者讀取當前執行檔案路徑下的一些配置資訊。這時就需要從當前模組裡獲取所在的目錄路徑,以便進行固定的位置操作檔案。要解決這個需求,就需要呼叫api函式getmodulefilen...

一些核心同步API 1

typedef structatomic t 將原子變數v增加i static inline void atomic add int i,atomic t v 將原子變數v增加i,判斷增加後v是不是負數 static inline int atomic add negative int i,atom...