函数逻辑报告 |
Source Code:arch\x86\kernel\mpparse.c |
Create Date:2022-07-27 09:25:43 |
| Last Modify:2020-03-16 21:44:10 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:update_mp_table
函数原型:static int __init update_mp_table(void)
返回类型:int
参数:无
| 862 | 如果非enable_update_mptable则返回:0 |
| 865 | 如果非mpf_found则返回:0 |
| 868 | mpf等于early_memremap(mpf_base, mpf的长度) |
| 869 | 如果非mpf则 |
| 870 | 打印错误信息("MPTABLE: mpf early_memremap() failed\n") |
| 871 | 返回:0 |
| 877 | 如果Standard or configuration ? 则转到:do_unmap_mpf |
| 880 | 如果非Configuration table address 则转到:do_unmap_mpf |
| 885 | 如果非mpc则 |
| 886 | 打印错误信息("MPTABLE: mpc early_memremap() failed\n") |
| 887 | 转到:do_unmap_mpf |
| 890 | 如果非Read/parse the MPC则转到:do_unmap_mpc |
| 894 | 打印信息("physptr: %x\n", Configuration table address ) |
| 896 | 如果mpc_new_phys且 Size of table 大于mpc_new_length则 |
| 897 | mpc_new_phys等于0 |
| 898 | 打印信息("mpc_new_length is %ld, please use alloc_mptable=8k\n", mpc_new_length) |
| 902 | 如果非mpc_new_phys则 |
| 905 | checksum等于0 |
| 907 | checksum等于0xff |
| 910 | 打印信息("mpc is readonly, please try alloc_mptable instead\n") |
| 911 | 转到:do_unmap_mpc |
| 913 | 打印信息("use in-position replacing\n") |
| 914 | 否则 |
| 916 | 如果非mpc_new则 |
| 917 | 打印错误信息("MPTABLE: new mpc early_memremap() failed\n") |
| 918 | 转到:do_unmap_mpc |
| 921 | memcpy(mpc_new, mpc, Size of table ) |
| 922 | early_memunmap(mpc, size) |
| 924 | size等于mpc_new_length |
| 929 | mpf_new等于early_memremap(0x400 - 16, mpf_new的长度) |
| 930 | 如果非mpf_new则 |
| 931 | 打印错误信息("MPTABLE: new mpf early_memremap() failed\n") |
| 932 | 转到:do_unmap_mpc |
| 934 | 打印信息("mpf new: %x\n", 0x400 - 16) |
| 936 | early_memunmap(mpf, mpf的长度) |
| 940 | Checksum (makes sum 0) 等于0 |
| 942 | 打印信息("physptr new: %x\n", Configuration table address ) |
| 953 | do_unmap_mpc : |
| 954 | early_memunmap(mpc, size) |
| 956 | do_unmap_mpf : |
| 957 | early_memunmap(mpf, mpf的长度) |
| 959 | 返回:0 |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |