国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux內核完全剖析---math_emulate.c程序

2024-08-27 23:57:37
字體:
來源:轉載
供稿:網友

math_emulate.c程序中的所有函數可分為3部分:第一類是設備不存在異常處理程序接口函數math_emulate(),只有這一個函數;第二類是浮點指令仿真處理主函數do_emu(),也只有一個函數;另外所有函數都是仿真運算輔助類函數,包括其余幾個C語言程序中的函數。

在一臺不包含80387協處理器芯片的PC中,如果內核初始化時在CR0中設置了仿真標志EM = 1,那么當CPU遇到一條浮點指令時就會引起CPU產生異常中斷int 7,并且在該中斷處理過程中調用本程序中第476行處的math_emulate(long ___false)函數。

在math_emulate()函數中,若判斷出當前進程還沒有使用過仿真的協處理運算時就會對仿真的80387控制字、狀態字和特征字(Tag Word)進行初始化操作,設置控制字中所有6種協處理器異常屏蔽位并復位狀態字和特征字,然后調用仿真處理主函數do_emu(),使用的參數是作為如下info結構的中斷處理過程中調用math_emulate()函數的返回地址指針,info結構實際上就是棧中自從CPU產生中斷int7后逐漸入棧的一些數據構成的一個結構,因此它與系統調用時內核棧中數據的分布情況基本相同,參見include/linux/math_emu.h文件第 11 行和kernel/sys_call.s開始部分。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长兴县| 宝清县| 商南县| 蓝山县| 阳原县| 明水县| 正安县| 黄浦区| 瑞昌市| 团风县| 汝南县| 德安县| 翁牛特旗| 师宗县| 南郑县| 华坪县| 新兴县| 当涂县| 特克斯县| 田东县| 博湖县| 蓬溪县| 隆尧县| 洛宁县| 舟曲县| 平顶山市| 施甸县| 蒲江县| 柯坪县| 辽源市| 峡江县| 大港区| 高唐县| 吉林省| 都安| 平舆县| 三亚市| 大埔县| 木里| 龙陵县| 泸定县|