這個(gè)函數(shù)是做了關(guān)閉中斷操作。和后面的local_irq_enable相對應(yīng)。說明啟動的下面函數(shù)是不允許被中斷搶占的。這個(gè)函數(shù)追下去會發(fā)現(xiàn)下面的代碼:
static inline void native_irq_disable(void){ asm volatile("cli": : :"memory"); }
這個(gè)寫法是linux的內(nèi)聯(lián)匯編寫法。在C語言中寫匯編語言。實(shí)際上調(diào)用的是匯編cli命令。cli命令是禁用中斷功能。http://rock3.info/blog/2013/11/24/linux-c%E4%B8%AD%E8%B0%83%E7%94%A8%E6%B1%87%E7%BC%96%E7%94%A8%E6%B3%95/
接著start_kernel,linux關(guān)閉完中斷之后,還使用了一個(gè)變量early_boot_irqs_disabled來標(biāo)記已經(jīng)關(guān)閉irq了。
這里稍微說說irq的概念,我們把中斷分為兩個(gè)概念,一個(gè)是上半部,一個(gè)是下半部,上半部指的是硬件直接要求立即響應(yīng)的中斷。下半部指的是可以在某個(gè)特定時(shí)間之后執(zhí)行的。這里的IRQ就是一個(gè)上半部概念。每個(gè)硬件設(shè)備都有一個(gè)irq線,通過這個(gè)線把中斷描述符傳遞給CPU,CPU獲取中斷之后立即執(zhí)行對應(yīng)已經(jīng)注冊的操作。
# boot_cpu_init()
這個(gè)函數(shù)功能是初始化第一個(gè)CPU。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26