亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? system_call.s

?? LINUX 0.11版內(nèi)核代碼。 并有代碼分析說明。
?? S
?? 第 1 頁 / 共 2 頁
字號:
;/* passed;* linux/kernel/system_call.s;*;* (C) 1991 Linus Torvalds;*/.386p
.model flat
;/*;* system_call.s contains the system-call low-level handling routines.;* This also contains the timer-interrupt handler, as some of the code is;* the same. The hd- and flopppy-interrupts are also here.;*;* NOTE: This code handles signal-recognition, which happens every time;* after a timer-interrupt and after each system call. Ordinary interrupts;* don't handle signal-recognition, as that would clutter them up totally;* unnecessarily.;*;* Stack layout in 'ret_from_system_call':;*;* 0(%esp) - %eax;* 4(%esp) - %ebx;* 8(%esp) - %ecx;* C(%esp) - %edx;* 10(%esp) - %fs;* 14(%esp) - %es;* 18(%esp) - %ds;* 1C(%esp) - %eip;* 20(%esp) - %cs;* 24(%esp) - %eflags;* 28(%esp) - %oldesp;* 2C(%esp) - %oldss;*/;/*;* system_call.s 文件包含系統(tǒng)調(diào)用(system-call)底層處理子程序。由于有些代碼比較類似,所以;* 同時也包括時鐘中斷處理(timer-interrupt)句柄。硬盤和軟盤的中斷處理程序也在這里。;*;* 注意:這段代碼處理信號(signal)識別,在每次時鐘中斷和系統(tǒng)調(diào)用之后都會進(jìn)行識別。一般;* 中斷信號并不處理信號識別,因為會給系統(tǒng)造成混亂。;*;* 從系統(tǒng)調(diào)用返回('ret_from_system_call')時堆棧的內(nèi)容見上面19-30 行。;*/SIG_CHLD = 17 ;// 定義SIG_CHLD 信號(子進(jìn)程停止或結(jié)束)。R_EAX = 00h ;// 堆棧中各個寄存器的偏移位置。R_EBX = 04hR_ECX = 08hR_EDX = 0ChR_FS = 10hR_ES = 14hR_DS = 18hR_EIP = 1ChR_CS = 20hEFLAGS = 24hOLDR_ESP = 28h ;// 當(dāng)有特權(quán)級變化時。OLR_DSS = 2Ch;// 以下這些是任務(wù)結(jié)構(gòu)(task_struct)中變量的偏移值,參見include/linux/sched.h,77 行開始。state = 0 ;// these are offsets into the task-struct. ;// 進(jìn)程狀態(tài)碼counter = 4 ;// 任務(wù)運(yùn)行時間計數(shù)(遞減)(滴答數(shù)),運(yùn)行時間片。priority = 8 ;// 運(yùn)行優(yōu)先數(shù)。任務(wù)開始運(yùn)行時counter=priority,越大則運(yùn)行時間越長。signal = 12 ;// 是信號位圖,每個比特位代表一種信號,信號值=位偏移值+1。sigaction = 16 ;// MUST be 16 (=len of sigaction) // sigaction 結(jié)構(gòu)長度必須是16 字節(jié)。;// 信號執(zhí)行屬性結(jié)構(gòu)數(shù)組的偏移值,對應(yīng)信號將要執(zhí)行的操作和標(biāo)志信息。blocked = (33*16) ;// 受阻塞信號位圖的偏移量。;// 以下定義在sigaction 結(jié)構(gòu)中的偏移量,參見include/signal.h,第48 行開始。;// offsets within sigactionsa_handler = 0 ;// 信號處理過程的句柄(描述符)。sa_mask = 4 ;// 信號量屏蔽碼sa_flags = 8 ;// 信號集。sa_restorer = 12 ;// 返回恢復(fù)執(zhí)行的地址位置。nr_system_calls = 72 ;// Linux 0.11 版內(nèi)核中的系統(tǒng)調(diào)用總數(shù)。;/*;* Ok, I get parallel printer interrupts while using the floppy for some;* strange reason. Urgel. Now I just ignore them.;*/;/*;* 好了,在使用軟驅(qū)時我收到了并行打印機(jī)中斷,很奇怪。呵,現(xiàn)在不管它。;*/;// 定義入口點。
extrn _schedule:proc,_do_signal:proc,_math_error:proc
extrn _math_state_restore:proc,_math_emulate:proc,_jiffies:proc
extrn _do_timer:proc,_do_execve:proc
extrn _find_empty_process:proc,_copy_process:proc
extrn _do_floppy:proc,_unexpected_floppy_interrupt:proc
extrn _do_hd:proc,_unexpected_hd_interrupt:proc

extrn _current:dword,_task:dword,_sys_call_table:dword
public _system_call,_sys_fork,_timer_interrupt,_sys_execvepublic _hd_interrupt,_floppy_interrupt,_parallel_interruptpublic _device_not_available, _coprocessor_error

.code

;// 錯誤的系統(tǒng)調(diào)用號。align 4 ;// 內(nèi)存4 字節(jié)對齊。bad_sys_call:	mov eax,-1 ;// eax 中置-1,退出中斷。	iretd;// 重新執(zhí)行調(diào)度程序入口。調(diào)度程序schedule 在(kernel/sched.c,104)。align 4reschedule:	push ret_from_sys_call ;// 將ret_from_sys_call 的地址入棧(101 行)。	jmp _schedule;//// int 0x80 --linux 系統(tǒng)調(diào)用入口點(調(diào)用中斷int 0x80,eax 中是調(diào)用號)。align 4_system_call:	cmp eax,nr_system_calls-1 ;// 調(diào)用號如果超出范圍的話就在eax 中置-1 并退出。	ja bad_sys_call	push ds ;// 保存原段寄存器值。	push es	push fs	push edx ;// ebx,ecx,edx 中放著系統(tǒng)調(diào)用相應(yīng)的C 語言函數(shù)的調(diào)用參數(shù)。	push ecx ;// push %ebx,%ecx,%edx as parameters	push ebx ;// to the system call	mov edx,10h ;// set up ds,es to kernel space	mov ds,dx ;// ds,es 指向內(nèi)核數(shù)據(jù)段(全局描述符表中數(shù)據(jù)段描述符)。	mov es,dx	mov edx,17h ;// fs points to local data space	mov fs,dx ;// fs 指向局部數(shù)據(jù)段(局部描述符表中數(shù)據(jù)段描述符)。;// 下面這句操作數(shù)的含義是:調(diào)用地址 = _sys_call_table + %eax * 4。參見列表后的說明。;// 對應(yīng)的C 程序中的sys_call_table 在include/linux/sys.h 中,其中定義了一個包括72 個;// 系統(tǒng)調(diào)用C 處理函數(shù)的地址數(shù)組表。	call [_sys_call_table+eax*4]	push eax ;// 把系統(tǒng)調(diào)用號入棧。	mov eax,_current ;// 取當(dāng)前任務(wù)(進(jìn)程)數(shù)據(jù)結(jié)構(gòu)地址??eax。;// 下面97-100 行查看當(dāng)前任務(wù)的運(yùn)行狀態(tài)。如果不在就緒狀態(tài)(state 不等于0)就去執(zhí)行調(diào)度程序。;// 如果該任務(wù)在就緒狀態(tài)但counter[??]值等于0,則也去執(zhí)行調(diào)度程序。	cmp dword ptr [state+eax],0 ;// state	jne reschedule	cmp dword ptr [counter+eax],0 ;// counter	je reschedule;// 以下這段代碼執(zhí)行從系統(tǒng)調(diào)用C 函數(shù)返回后,對信號量進(jìn)行識別處理。ret_from_sys_call:;// 首先判別當(dāng)前任務(wù)是否是初始任務(wù)task0,如果是則不必對其進(jìn)行信號量方面的處理,直接返回。;// 103 行上的_task 對應(yīng)C 程序中的task[]數(shù)組,直接引用task 相當(dāng)于引用task[0]。	mov eax,_current ;// task[0] cannot have signals	cmp eax,_task	je l1 ;// 向前(forward)跳轉(zhuǎn)到標(biāo)號l1。;// 通過對原調(diào)用程序代碼選擇符的檢查來判斷調(diào)用程序是否是超級用戶。如果是超級用戶就直接;// 退出中斷,否則需進(jìn)行信號量的處理。這里比較選擇符是否為普通用戶代碼段的選擇符0x000f;// (RPL=3,局部表,第1 個段(代碼段)),如果不是則跳轉(zhuǎn)退出中斷程序。	cmp word ptr [R_CS+esp],0fh ;// was old code segment supervisor ?	jne l1;// 如果原堆棧段選擇符不為0x17(也即原堆棧不在用戶數(shù)據(jù)段中),則也退出。	cmp word ptr [OLR_DSS+esp],17h ;// was stack segment = 0x17 ?	jne l1;// 下面這段代碼(109-120)的用途是首先取當(dāng)前任務(wù)結(jié)構(gòu)中的信號位圖(32 位,每位代表1 種信號),;// 然后用任務(wù)結(jié)構(gòu)中的信號阻塞(屏蔽)碼,阻塞不允許的信號位,取得數(shù)值最小的信號值,再把;// 原信號位圖中該信號對應(yīng)的位復(fù)位(置0),最后將該信號值作為參數(shù)之一調(diào)用do_signal()。;// do_signal()在(kernel/signal.c,82)中,其參數(shù)包括13 個入棧的信息。	mov ebx,[signal+eax] ;// 取信號位圖??ebx,每1 位代表1 種信號,共32 個信號。	mov ecx,[blocked+eax] ;// 取阻塞(屏蔽)信號位圖??ecx。	not ecx ;// 每位取反。	and ecx,ebx ;// 獲得許可的信號位圖。	bsf ecx,ecx ;// 從低位(位0)開始掃描位圖,看是否有1 的位,;// 若有,則ecx 保留該位的偏移值(即第幾位0-31)。	je l1 ;// 如果沒有信號則向前跳轉(zhuǎn)退出。	btr ebx,ecx ;// 復(fù)位該信號(ebx 含有原signal 位圖)。	mov dword ptr [signal+eax],ebx ;// 重新保存signal 位圖信息??current->signal。	inc ecx ;// 將信號調(diào)整為從1 開始的數(shù)(1-32)。	push ecx ;// 信號值入棧作為調(diào)用do_signal 的參數(shù)之一。	call _do_signal ;// 調(diào)用C 函數(shù)信號處理程序(kernel/signal.c,82)	pop eax ;// 彈出信號值。l1: pop eax	pop ebx	pop ecx	pop edx	pop fs	pop es	pop ds	iretd;//// int16 -- 下面這段代碼處理協(xié)處理器發(fā)出的出錯信號。跳轉(zhuǎn)執(zhí)行C 函數(shù)math_error();// (kernel/math/math_emulate.c,82),返回后將跳轉(zhuǎn)到ret_from_sys_call 處繼續(xù)執(zhí)行。align 4_coprocessor_error:	push ds	push es	push fs	push edx	push ecx	push ebx	push eax

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆成人久久精品二区三区| 极品美女销魂一区二区三区| 91丨porny丨蝌蚪视频| 中文av一区特黄| heyzo一本久久综合| 亚洲欧洲一区二区三区| 在线观看区一区二| 免费在线视频一区| 久久精品欧美一区二区三区不卡 | 欧美人牲a欧美精品| 青青草原综合久久大伊人精品优势 | 午夜精品福利一区二区三区蜜桃| 欧美精品电影在线播放| 国产一区二区三区在线观看免费 | 日韩精品一区二| 国产大陆a不卡| 一区二区三区在线观看欧美| 91精品国产综合久久婷婷香蕉| 老色鬼精品视频在线观看播放| 欧美激情艳妇裸体舞| 欧美最猛黑人xxxxx猛交| 久久99精品久久久久久国产越南| 国产午夜亚洲精品理论片色戒 | 不卡的av网站| 午夜精彩视频在线观看不卡| 久久久久九九视频| 欧美日韩亚州综合| 国产成人免费xxxxxxxx| 午夜激情一区二区三区| 中文字幕第一区| 欧美一区日韩一区| gogogo免费视频观看亚洲一| 免费成人在线网站| 亚洲视频你懂的| 久久综合久久综合久久| 欧美视频日韩视频| 国产91精品精华液一区二区三区| 亚洲va欧美va人人爽午夜 | 精品久久人人做人人爱| 色婷婷亚洲婷婷| 国产麻豆视频精品| 午夜精品福利在线| 亚洲精品成人少妇| 久久精品视频免费| 日韩亚洲欧美一区| 欧美视频一区二区三区四区| 成人在线综合网| 久久av中文字幕片| 亚洲国产日韩a在线播放性色| 中文字幕中文字幕一区二区| 欧美zozozo| 欧美日韩激情在线| 欧美性欧美巨大黑白大战| 97久久精品人人做人人爽| 国产在线精品一区在线观看麻豆| 天堂在线一区二区| 亚洲电影视频在线| 亚洲精品国产品国语在线app| 中文字幕av一区二区三区免费看 | 国产亚洲女人久久久久毛片| 欧美一级黄色录像| 6080日韩午夜伦伦午夜伦| 欧美在线free| 欧美丝袜自拍制服另类| 色综合天天综合网天天狠天天 | 欧美激情一区二区| 久久久午夜电影| 久久亚洲综合色一区二区三区 | 国产成人精品免费视频网站| 精品一区二区三区免费| 六月丁香综合在线视频| 蜜桃视频第一区免费观看| 婷婷丁香激情综合| 免费在线看一区| 久久疯狂做爰流白浆xx| 久久精品国产**网站演员| 开心九九激情九九欧美日韩精美视频电影| 亚洲一区在线观看网站| 亚洲成人激情社区| 偷窥国产亚洲免费视频| 秋霞影院一区二区| 精品一区在线看| 国产在线精品免费av| 久久国产精品第一页| 国产精品456露脸| 国产成人自拍网| 不卡免费追剧大全电视剧网站| 成人av午夜电影| 色哟哟国产精品| 7777精品伊人久久久大香线蕉最新版| 欧美精品在线一区二区| 精品日韩欧美在线| 久久精品在线观看| 亚洲欧美一区二区久久| 五月天亚洲精品| 国产一区二区网址| aaa亚洲精品一二三区| 欧美三区免费完整视频在线观看| 欧美一区二区免费视频| 久久九九全国免费| 亚洲精品国产视频| 奇米四色…亚洲| 大胆亚洲人体视频| 欧美日韩中文一区| 26uuu亚洲| 一区二区三区免费网站| 久久超碰97人人做人人爱| 国产99久久久久| 欧美日韩和欧美的一区二区| 精品噜噜噜噜久久久久久久久试看| 欧美激情一区二区三区不卡| 亚洲福利视频三区| 国产高清亚洲一区| 欧美日韩精品系列| 中文字幕乱码久久午夜不卡 | xf在线a精品一区二区视频网站| 欧美极品少妇xxxxⅹ高跟鞋| 一区二区三区在线免费| 国产尤物一区二区在线| 欧美无砖砖区免费| 久久久久久麻豆| 亚洲成人精品影院| 高清不卡在线观看| 在线不卡的av| 亚洲欧洲99久久| 久久99国产精品尤物| 色婷婷国产精品综合在线观看| 亚洲精品在线免费播放| 亚洲国产精品欧美一二99| 成人av在线影院| 久久久久久一级片| 天天影视色香欲综合网老头| fc2成人免费人成在线观看播放| 日韩午夜中文字幕| 亚洲福利一二三区| 91亚洲永久精品| 久久精品男人天堂av| 美女精品一区二区| 欧美日韩中文一区| 亚洲激情在线激情| 国产成a人亚洲| 精品奇米国产一区二区三区| 亚洲成a人v欧美综合天堂下载| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 精品奇米国产一区二区三区| 亚洲第一福利一区| 在线亚洲人成电影网站色www| 国产区在线观看成人精品| 极品美女销魂一区二区三区免费| 欧美情侣在线播放| 亚洲综合色区另类av| 一道本成人在线| 亚洲美腿欧美偷拍| 99热精品一区二区| 亚洲欧洲av色图| av中文字幕一区| 国产精品二三区| 不卡视频一二三四| 中文字幕一区二区三区四区| 国产成人在线看| 国产精品三级电影| 成人性色生活片| 欧美激情一区二区| av电影天堂一区二区在线| 中文字幕中文乱码欧美一区二区 | 成人国产在线观看| 亚洲欧美在线aaa| 色哟哟国产精品免费观看| 亚洲精品高清在线| 欧美性三三影院| 天堂va蜜桃一区二区三区| 欧美肥妇bbw| 狠狠色丁香久久婷婷综| 久久精品在线观看| 成人av电影免费观看| 亚洲黄色小视频| 欧美日韩高清一区二区三区| 免费成人在线影院| 久久久久久久综合| 92国产精品观看| 亚洲永久精品国产| 91精品国产一区二区三区| 裸体歌舞表演一区二区| 久久久av毛片精品| 91在线一区二区| 日韩高清一区在线| 久久嫩草精品久久久精品一| 成人激情动漫在线观看| 亚洲一区二区三区视频在线| 欧美日韩一级二级| 国产一区二区在线免费观看| **欧美大码日韩| 欧美精品自拍偷拍动漫精品| 久久精品国产亚洲5555| 亚洲国产高清不卡| 欧美日韩综合不卡| 国产乱码精品一区二区三区五月婷| 中文字幕日韩av资源站| 欧美久久久久中文字幕| 国产成人免费网站|