//給乙個給定的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...