Function report |
Source Code:arch\x86\kernel\mpparse.c |
Create Date:2022-07-28 08:25:59 |
| Last Modify:2020-03-16 21:44:10 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:update_mp_table
Proto:static int __init update_mp_table(void)
Type:int
Parameter:Nothing
| 862 | If Not enable_update_mptable Then Return 0 |
| 865 | If Not mpf_found Then Return 0 |
| 868 | mpf = early_memremap(mpf_base, size of mpf ) |
| 869 | If Not mpf Then |
| 870 | pr_err("MPTABLE: mpf early_memremap() failed\n") |
| 871 | Return 0 |
| 877 | If Standard or configuration ? Then Go to do_unmap_mpf |
| 880 | If Not Configuration table address Then Go to do_unmap_mpf |
| 884 | mpc = early_memremap(Configuration table address , size) |
| 885 | If Not mpc Then |
| 886 | pr_err("MPTABLE: mpc early_memremap() failed\n") |
| 887 | Go to do_unmap_mpf |
| 890 | If Not Read/parse the MPC Then Go to do_unmap_mpc |
| 894 | pr_info("physptr: %x\n", Configuration table address ) |
| 896 | If mpc_new_phys && Size of table > mpc_new_length Then |
| 897 | mpc_new_phys = 0 |
| 898 | pr_info("mpc_new_length is %ld, please use alloc_mptable=8k\n", mpc_new_length) |
| 902 | If Not mpc_new_phys Then |
| 905 | checksum = 0 |
| 907 | checksum = 0xff |
| 910 | pr_info("mpc is readonly, please try alloc_mptable instead\n") |
| 911 | Go to do_unmap_mpc |
| 913 | pr_info("use in-position replacing\n") |
| 914 | Else |
| 916 | If Not mpc_new Then |
| 917 | pr_err("MPTABLE: new mpc early_memremap() failed\n") |
| 918 | Go to do_unmap_mpc |
| 921 | memcpy(mpc_new, mpc, Size of table ) |
| 922 | early_memunmap(mpc, size) |
| 924 | size = mpc_new_length |
| 926 | If mpc_new_phys - Configuration table address Then |
| 929 | mpf_new = early_memremap(0x400 - 16, size of mpf_new ) |
| 930 | If Not mpf_new Then |
| 931 | pr_err("MPTABLE: new mpf early_memremap() failed\n") |
| 932 | Go to do_unmap_mpc |
| 934 | pr_info("mpf new: %x\n", 0x400 - 16) |
| 936 | early_memunmap(mpf, size of mpf ) |
| 940 | Checksum (makes sum 0) = 0 |
| 942 | pr_info("physptr new: %x\n", Configuration table address ) |
| 953 | do_unmap_mpc : |
| 954 | early_memunmap(mpc, size) |
| 956 | do_unmap_mpf : |
| 957 | early_memunmap(mpf, size of mpf ) |
| 959 | Return 0 |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |