中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

怎樣做網(wǎng)站開發(fā)搜索優(yōu)化seo

怎樣做網(wǎng)站開發(fā),搜索優(yōu)化seo,怎么創(chuàng)建一個屬于自己的平臺,九江做網(wǎng)站哪家好linux版本:4.19 module_init()與module_exit()用于驅(qū)動的加載,分別是驅(qū)動的入口與退出函數(shù) module_init():內(nèi)核啟動時或動態(tài)插入模塊時調(diào)用module_exit():驅(qū)動移除時調(diào)用 本篇文章介紹module_init() module_init() module_init…

linux版本:4.19
module_init()與module_exit()用于驅(qū)動的加載,分別是驅(qū)動的入口與退出函數(shù)

  • module_init():內(nèi)核啟動時或動態(tài)插入模塊時調(diào)用
  • module_exit():驅(qū)動移除時調(diào)用
    本篇文章介紹module_init()

module_init()

module_init()是驅(qū)動的入口函數(shù),該函數(shù)定義在include\linux\module.h文件

/*** module_init() - driver initialization entry point* @x: function to be run at kernel boot time or module insertion** module_init() will either be called during do_initcalls() (if* builtin) or at module insertion time (if a module).  There can only* be one per module.*/
#define module_init(x)	__initcall(x);

__initcall(x)函數(shù)定義在include\linux\init.h文件里面

#define __initcall(fn) device_initcall(fn)

device_initcall(fn)定義也在include\linux\init.h文件里面

#define device_initcall(fn)		__define_initcall(fn, 6)

__define_initcall(fn, 6)定義也在include\linux\init.h文件里面

#define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)

___define_initcall(fn, id, .initcall##id)定義也在include\linux\init.h文件里面

/** initcalls are now grouped by functionality into separate* subsections. Ordering inside the subsections is determined* by link order. * For backwards compatibility, initcall() puts the call in * the device init subsection.** The `id' arg to __define_initcall() is needed so that multiple initcalls* can point at the same handler without causing duplicate-symbol build errors.** Initcalls are run by placing pointers in initcall sections that the* kernel iterates at runtime. The linker can do dead code / data elimination* and remove that completely, so the initcall sections have to be marked* as KEEP() in the linker script.*/#ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
#define ___define_initcall(fn, id, __sec)			\__ADDRESSABLE(fn)					\asm(".section	\"" #__sec ".init\", \"a\"	\n"	\"__initcall_" #fn #id ":			\n"	\".long	" #fn " - .			\n"	\".previous					\n");
#else
#define ___define_initcall(fn, id, __sec) \static initcall_t __initcall_##fn##id __used \__attribute__((__section__(#__sec ".init"))) = fn;
#endif

綜上module_init調(diào)用順序如下:

module_init()--->__initcall()--->device_initcall()--->__define_initcall()--->___define_initcall()

對___define_initcall()函數(shù)進行分析
首先了解一下#與##的作用

符號作用舉例
##“##”符號可以是連接的意思例如initcall_##fn##id為initcall_fnid,假設(shè)fn為fbmem_init,id=6時,initcall_##fn##id為initcall_fbmem_init6
#"#"符號可以是字符串的意思例如#id為“id”,id=6時,#id為“6”

所以module_init(fbmem_init)函數(shù),相當于

static initcall_t __initcall_fbmem_init6 __used __attribute__((__section__(".initcall6.init"))) =fbmem_init

這行代碼定義了一個靜態(tài)變量__initcall_fbmem_init6,變量類型為initcall_t(是一個函數(shù)指針類型,用于表示內(nèi)核的初始化函數(shù)),__used 用于告訴編譯器不要將“__initcall_fbmem_Init6”變量視為未使用的變量,避免編譯器優(yōu)化移除它。
attribute((section(“.initcall6.init”))),編譯器指令,告訴編譯器將“__initcall_fbmem_init6”變量放置在‘.initcall6.init’的代碼段中(這個代碼段通常用于存放內(nèi)核的初始化函數(shù),在啟動的時候按順序執(zhí)行,.initcall1.init、.initcall2.init 。。。)
‘= fbmem_init’ 這將’__initcall_fbmem_init6’初始化為指向‘fbmem_init’函數(shù)的指針。
??總之,這段代碼的作用是將‘fbmem_init’函數(shù)注冊為一個初始化函數(shù),使其在內(nèi)核啟動的時候執(zhí)行。
對于編譯成模塊,執(zhí)行sudo insmod的時候,是如何加載的,等我知道后再來寫

http://www.risenshineclean.com/news/35098.html

相關(guān)文章:

  • 網(wǎng)站站長統(tǒng)計代碼百度風(fēng)云搜索榜
  • 蘇州專業(yè)做網(wǎng)站公司有哪些如何進行電子商務(wù)網(wǎng)站推廣
  • 高端做網(wǎng)站做網(wǎng)站要多少錢
  • wordpress網(wǎng)站服務(wù)器深圳市seo點擊排名軟件價格
  • 河北通信建設(shè)有限公司網(wǎng)站搜索引擎優(yōu)化什么意思
  • 上海網(wǎng)站設(shè)計服務(wù)商長尾詞挖掘免費工具
  • 網(wǎng)站開發(fā)論文需要寫什么windows優(yōu)化大師怎么使用
  • wordpress短視頻主題上海整站seo
  • 兼職做調(diào)查哪個網(wǎng)站好溫州seo公司
  • 成都 高端網(wǎng)站建設(shè)如何制作網(wǎng)頁最簡單的方法
  • 網(wǎng)站設(shè)計如何收費上海專業(yè)網(wǎng)絡(luò)推廣公司
  • 公司網(wǎng)站自己可以做嗎外包項目接單平臺
  • 怎么添加網(wǎng)站百度網(wǎng)盤下載電腦版官方下載
  • 建商城網(wǎng)站如何去推廣一個app
  • 上海著名網(wǎng)站設(shè)計公司網(wǎng)絡(luò)營銷品牌
  • 微網(wǎng)站 微官網(wǎng)的區(qū)別嗎最近的新聞大事10條
  • 深色大氣網(wǎng)站模板電腦培訓(xùn)學(xué)校學(xué)費多少
  • web網(wǎng)站開發(fā)的基本流程產(chǎn)品運營方案
  • php網(wǎng)站怎么做測試工具上海網(wǎng)站建設(shè)開發(fā)
  • 網(wǎng)站頂部展出的大幅廣告推廣網(wǎng)站源碼
  • 廣州專業(yè)的網(wǎng)站建設(shè)青島建站seo公司
  • 想象力做網(wǎng)站十大免費最虧的免費app
  • 佛山網(wǎng)站建設(shè)百度一下首頁
  • cpa個人網(wǎng)站怎么做快速seo排名優(yōu)化
  • 網(wǎng)站建設(shè)公司做網(wǎng)站要多少費用農(nóng)產(chǎn)品品牌推廣方案
  • 微信開放平臺登錄好口碑的關(guān)鍵詞優(yōu)化
  • 網(wǎng)站建設(shè) 中企動力南昌產(chǎn)品如何推廣
  • 西安免費做網(wǎng)站哪家好大連seo外包平臺
  • 分類信息網(wǎng)站平臺的推廣新聞20字摘抄大全
  • 張家港保稅區(qū)建設(shè)規(guī)劃局網(wǎng)站湖南優(yōu)化公司