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

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

?? system_call.s

?? 帶中文注釋的Linux+0.11+源代碼
?? S
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/** linux/kernel/system_call.s** (C) 1991 Linus Torvalds*//** 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)底層處理子程序。由于有些代碼比較類似,所以* 同時(shí)也包括時(shí)鐘中斷處理(timer-interrupt)句柄。硬盤和軟盤的中斷處理程序也在這里。** 注意:這段代碼處理信號(hào)(signal)識(shí)別,在每次時(shí)鐘中斷和系統(tǒng)調(diào)用之后都會(huì)進(jìn)行識(shí)別。一般* 中斷信號(hào)并不處理信號(hào)識(shí)別,因?yàn)闀?huì)給系統(tǒng)造成混亂。** 從系統(tǒng)調(diào)用返回('ret_from_system_call')時(shí)堆棧的內(nèi)容見上面19-30 行。*/SIG_CHLD = 17 # 定義SIG_CHLD 信號(hào)(子進(jìn)程停止或結(jié)束)。EAX = 0x00 # 堆棧中各個(gè)寄存器的偏移位置。EBX = 0x04ECX = 0x08EDX = 0x0CFS = 0x105.5 system_call.s 程序ES = 0x14DS = 0x18EIP = 0x1CCS = 0x20EFLAGS = 0x24OLDESP = 0x28 # 當(dāng)有特權(quán)級(jí)變化時(shí)。OLDSS = 0x2C# 以下這些是任務(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í)間計(jì)數(shù)(遞減)(滴答數(shù)),運(yùn)行時(shí)間片。priority = 8 // 運(yùn)行優(yōu)先數(shù)。任務(wù)開始運(yùn)行時(shí)counter=priority,越大則運(yùn)行時(shí)間越長(zhǎng)。signal = 12 // 是信號(hào)位圖,每個(gè)比特位代表一種信號(hào),信號(hào)值=位偏移值+1。sigaction = 16 # MUST be 16 (=len of sigaction) // sigaction 結(jié)構(gòu)長(zhǎng)度必須是16 字節(jié)。// 信號(hào)執(zhí)行屬性結(jié)構(gòu)數(shù)組的偏移值,對(duì)應(yīng)信號(hào)將要執(zhí)行的操作和標(biāo)志信息。blocked = (33*16) // 受阻塞信號(hào)位圖的偏移量。# 以下定義在sigaction 結(jié)構(gòu)中的偏移量,參見include/signal.h,第48 行開始。# offsets within sigactionsa_handler = 0 // 信號(hào)處理過(guò)程的句柄(描述符)。sa_mask = 4 // 信號(hào)量屏蔽碼sa_flags = 8 // 信號(hào)集。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ū)時(shí)我收到了并行打印機(jī)中斷,很奇怪。呵,現(xiàn)在不管它。*/# 定義入口點(diǎn)。.globl _system_call,_sys_fork,_timer_interrupt,_sys_execve.globl _hd_interrupt,_floppy_interrupt,_parallel_interrupt.globl _device_not_available, _coprocessor_error# 錯(cuò)誤的系統(tǒng)調(diào)用號(hào)。.align 2 # 內(nèi)存4 字節(jié)對(duì)齊。bad_sys_call:movl $-1,%eax # eax 中置-1,退出中斷。iret# 重新執(zhí)行調(diào)度程序入口。調(diào)度程序schedule 在(kernel/sched.c,104)。.align 2reschedule:pushl $ret_from_sys_call # 將ret_from_sys_call 的地址入棧(101 行)。jmp _schedule#### int 0x80 --linux 系統(tǒng)調(diào)用入口點(diǎn)(調(diào)用中斷int 0x80,eax 中是調(diào)用號(hào))。.align 2_system_call:cmpl $nr_system_calls-1,%eax # 調(diào)用號(hào)如果超出范圍的話就在eax 中置-1 并退出。ja bad_sys_call5.5 system_call.s 程序push %ds # 保存原段寄存器值。push %espush %fspushl %edx # ebx,ecx,edx 中放著系統(tǒng)調(diào)用相應(yīng)的C 語(yǔ)言函數(shù)的調(diào)用參數(shù)。pushl %ecx # push %ebx,%ecx,%edx as parameterspushl %ebx # to the system callmovl $0x10,%edx # set up ds,es to kernel spacemov %dx,%ds # ds,es 指向內(nèi)核數(shù)據(jù)段(全局描述符表中數(shù)據(jù)段描述符)。mov %dx,%esmovl $0x17,%edx # fs points to local data spacemov %dx,%fs # fs 指向局部數(shù)據(jù)段(局部描述符表中數(shù)據(jù)段描述符)。# 下面這句操作數(shù)的含義是:調(diào)用地址 = _sys_call_table + %eax * 4。參見列表后的說(shuō)明。# 對(duì)應(yīng)的C 程序中的sys_call_table 在include/linux/sys.h 中,其中定義了一個(gè)包括72 個(gè)# 系統(tǒng)調(diào)用C 處理函數(shù)的地址數(shù)組表。call _sys_call_table(,%eax,4)pushl %eax # 把系統(tǒng)調(diào)用號(hào)入棧。movl _current,%eax # 取當(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)度程序。cmpl $0,state(%eax) # statejne reschedulecmpl $0,counter(%eax) # counterje reschedule# 以下這段代碼執(zhí)行從系統(tǒng)調(diào)用C 函數(shù)返回后,對(duì)信號(hào)量進(jìn)行識(shí)別處理。ret_from_sys_call:# 首先判別當(dāng)前任務(wù)是否是初始任務(wù)task0,如果是則不必對(duì)其進(jìn)行信號(hào)量方面的處理,直接返回。# 103 行上的_task 對(duì)應(yīng)C 程序中的task[]數(shù)組,直接引用task 相當(dāng)于引用task[0]。movl _current,%eax # task[0] cannot have signalscmpl _task,%eaxje 3f # 向前(forward)跳轉(zhuǎn)到標(biāo)號(hào)3。# 通過(guò)對(duì)原調(diào)用程序代碼選擇符的檢查來(lái)判斷調(diào)用程序是否是超級(jí)用戶。如果是超級(jí)用戶就直接# 退出中斷,否則需進(jìn)行信號(hào)量的處理。這里比較選擇符是否為普通用戶代碼段的選擇符0x000f# (RPL=3,局部表,第1 個(gè)段(代碼段)),如果不是則跳轉(zhuǎn)退出中斷程序。cmpw $0x0f,CS(%esp) # was old code segment supervisor ?jne 3f# 如果原堆棧段選擇符不為0x17(也即原堆棧不在用戶數(shù)據(jù)段中),則也退出。cmpw $0x17,OLDSS(%esp) # was stack segment = 0x17 ?jne 3f# 下面這段代碼(109-120)的用途是首先取當(dāng)前任務(wù)結(jié)構(gòu)中的信號(hào)位圖(32 位,每位代表1 種信號(hào)),# 然后用任務(wù)結(jié)構(gòu)中的信號(hào)阻塞(屏蔽)碼,阻塞不允許的信號(hào)位,取得數(shù)值最小的信號(hào)值,再把# 原信號(hào)位圖中該信號(hào)對(duì)應(yīng)的位復(fù)位(置0),最后將該信號(hào)值作為參數(shù)之一調(diào)用do_signal()。# do_signal()在(kernel/signal.c,82)中,其參數(shù)包括13 個(gè)入棧的信息。movl signal(%eax),%ebx # 取信號(hào)位圖??ebx,每1 位代表1 種信號(hào),共32 個(gè)信號(hào)。movl blocked(%eax),%ecx # 取阻塞(屏蔽)信號(hào)位圖??ecx。notl %ecx # 每位取反。andl %ebx,%ecx # 獲得許可的信號(hào)位圖。bsfl %ecx,%ecx # 從低位(位0)開始掃描位圖,看是否有1 的位,# 若有,則ecx 保留該位的偏移值(即第幾位0-31)。je 3f # 如果沒有信號(hào)則向前跳轉(zhuǎn)退出。btrl %ecx,%ebx # 復(fù)位該信號(hào)(ebx 含有原signal 位圖)。movl %ebx,signal(%eax) # 重新保存signal 位圖信息??current->signal。incl %ecx # 將信號(hào)調(diào)整為從1 開始的數(shù)(1-32)。pushl %ecx # 信號(hào)值入棧作為調(diào)用do_signal 的參數(shù)之一。5.5 system_call.s 程序call _do_signal # 調(diào)用C 函數(shù)信號(hào)處理程序(kernel/signal.c,82)popl %eax # 彈出信號(hào)值。3: popl %eaxpopl %ebxpopl %ecxpopl %edxpop %fspop %espop %dsiret#### int16 -- 下面這段代碼處理協(xié)處理器發(fā)出的出錯(cuò)信號(hào)。跳轉(zhuǎn)執(zhí)行C 函數(shù)math_error()# (kernel/math/math_emulate.c,82),返回后將跳轉(zhuǎn)到ret_from_sys_call 處繼續(xù)執(zhí)行。.align 2_coprocessor_error:push %dspush %espush %fspushl %edxpushl %ecxpushl %ebxpushl %eaxmovl $0x10,%eax # ds,es 置為指向內(nèi)核數(shù)據(jù)段。mov %ax,%dsmov %ax,%esmovl $0x17,%eax # fs 置為指向局部數(shù)據(jù)段(出錯(cuò)程序的數(shù)據(jù)段)。mov %ax,%fs

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美在线高清| 一区二区在线观看视频| 欧洲一区在线电影| 国产成人一区在线| 国产在线不卡一卡二卡三卡四卡| 一区二区在线观看视频| 久久精品无码一区二区三区| 欧美精品在线一区二区| 在线观看日韩高清av| 91在线播放网址| 成人av动漫网站| 懂色av一区二区三区免费观看| 久久精品国产网站| 免费成人美女在线观看.| 天天色天天操综合| 日韩在线播放一区二区| 天堂影院一区二区| 欧美aⅴ一区二区三区视频| 性久久久久久久久| 日韩精品每日更新| 久久精品72免费观看| 国产美女一区二区| 成人精品小蝌蚪| 一本色道久久综合狠狠躁的推荐| 97精品视频在线观看自产线路二| 91在线国内视频| 67194成人在线观看| 日韩亚洲电影在线| 久久久www免费人成精品| 日本一区二区三区免费乱视频| 国产精品乱人伦| 日韩成人免费电影| 国产精品亚洲第一区在线暖暖韩国| 国产精品一二三| 91国模大尺度私拍在线视频| 欧美一区二区三区在| 国产午夜亚洲精品理论片色戒| 中文字幕一区二区三区不卡在线| 亚洲已满18点击进入久久| 美女脱光内衣内裤视频久久网站| 国产成人免费视频网站高清观看视频| 91麻豆成人久久精品二区三区| 欧美美女一区二区在线观看| 久久日韩精品一区二区五区| 亚洲欧美另类久久久精品| 免费成人美女在线观看.| 97精品久久久午夜一区二区三区| 欧美精品九九99久久| 国产精品黄色在线观看| 免费av成人在线| 91高清视频免费看| 国产精品三级视频| 国内外精品视频| 日韩美女视频一区| 国产成人综合亚洲网站| 欧美本精品男人aⅴ天堂| 亚洲一区二区三区影院| 99re成人精品视频| 国产精品乱人伦中文| 国产剧情一区二区| wwwwxxxxx欧美| 久久精品理论片| 欧美一区二区在线观看| 亚洲mv大片欧洲mv大片精品| 91一区一区三区| 亚洲免费观看高清完整版在线观看| 国产精品一区一区三区| 亚洲精品在线免费播放| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩一级二级三级| 午夜影院在线观看欧美| 91精品在线观看入口| 日本在线不卡视频一二三区| 欧美日韩一区二区欧美激情| 亚洲va天堂va国产va久| 91麻豆精品国产91久久久久久久久| 午夜精品在线看| 在线视频欧美精品| 午夜电影一区二区三区| 日韩欧美另类在线| 北条麻妃国产九九精品视频| 亚洲欧洲av色图| 欧美日韩激情一区| 伦理电影国产精品| 精品国产乱码久久久久久闺蜜| 国产盗摄精品一区二区三区在线| 国产精品久久久爽爽爽麻豆色哟哟| 91福利在线导航| 毛片不卡一区二区| 亚洲欧洲另类国产综合| 7777女厕盗摄久久久| 国产精品一区二区久久精品爱涩| 日韩码欧中文字| 夜夜夜精品看看| 久久精品亚洲麻豆av一区二区| www.视频一区| 青青草91视频| 亚洲啪啪综合av一区二区三区| 日韩片之四级片| 欧美色老头old∨ideo| 不卡一二三区首页| 久久精品国产久精国产| 亚洲午夜精品一区二区三区他趣| 久久女同性恋中文字幕| 91超碰这里只有精品国产| 成人国产一区二区三区精品| 麻豆精品久久精品色综合| 亚洲午夜久久久久久久久电影院| 国产精品区一区二区三| 2023国产精华国产精品| 91麻豆精品国产自产在线观看一区 | 色噜噜偷拍精品综合在线| 国产精品资源在线| 奇米777欧美一区二区| 午夜成人免费视频| 亚洲综合精品自拍| 一区二区三区在线观看网站| 欧美激情一区二区三区四区 | 精品一区二区三区日韩| 日本sm残虐另类| 日韩精品电影在线观看| 午夜免费欧美电影| 久久99精品久久久久久| 国产激情视频一区二区在线观看 | 国产视频一区在线播放| 久久久亚洲国产美女国产盗摄 | 成人妖精视频yjsp地址| 国产91精品入口| 91首页免费视频| 91精品1区2区| 91精品在线观看入口| 欧美mv日韩mv| 中文字幕在线一区免费| 亚洲综合色网站| 免费成人你懂的| 成人一区二区三区在线观看| 一本一道波多野结衣一区二区| 欧美日韩黄视频| 日本一区二区动态图| 亚洲成人免费在线观看| 国产在线精品一区在线观看麻豆| 夫妻av一区二区| 欧美日韩一卡二卡| 国产性天天综合网| 五月激情六月综合| 99在线视频精品| 日韩视频在线永久播放| 亚洲天堂网中文字| 奇米影视一区二区三区| 99国产欧美久久久精品| 日韩精品一区二区三区在线 | 精品一区二区免费| 欧美曰成人黄网| 国产精品国产馆在线真实露脸 | 国产精品一线二线三线精华| 欧美女孩性生活视频| 国产精品卡一卡二| 国产成人精品午夜视频免费| 91麻豆精品国产91久久久久久久久| 国产无人区一区二区三区| 日av在线不卡| 337p亚洲精品色噜噜| 亚洲另类色综合网站| 97久久超碰国产精品| 中文av一区二区| 国产福利一区二区三区| 欧美成人精品1314www| 蜜臀a∨国产成人精品| 欧美日韩激情一区二区三区| 亚洲va欧美va人人爽午夜| 欧美色男人天堂| 蜜臀久久久久久久| 欧美变态tickle挠乳网站| 国产精品一区二区不卡| 国产精品免费看片| 99视频在线精品| 亚洲黄色免费网站| 欧美私人免费视频| 日韩va欧美va亚洲va久久| 日韩欧美不卡在线观看视频| 国产一区二区三区四区在线观看| 欧美成人一区二区三区在线观看| 日本sm残虐另类| 国产日产欧美精品一区二区三区| 成人午夜电影网站| 同产精品九九九| 久久久久久久综合色一本| 成人免费看黄yyy456| 亚洲综合成人网| 精品国产亚洲在线| 色哟哟国产精品| 精品夜夜嗨av一区二区三区| 国产精品美女久久久久久2018 | 91精品在线观看入口| 岛国一区二区在线观看| 香蕉影视欧美成人| 欧美国产一区二区| 91精品国产综合久久久蜜臀粉嫩 | 麻豆视频观看网址久久| 国产精品久久久久久久午夜片|