函数逻辑报告 |
Source Code:arch\x86\kernel\apic\apic.c |
Create Date:2022-07-27 09:27:06 |
| Last Modify:2020-03-16 21:21:31 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:generic_processor_info
函数原型:int generic_processor_info(int apicid, int version)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| int | apicid | |
| int | version |
| 2398 | max等于nr_cpu_ids |
| 2399 | boot_cpu_detected等于physid_isset(Processor that is doing the boot up , Bitmask of physically existing CPUs:) |
| 2429 | disabled_cpus自加 |
| 2430 | 返回:负ENODEV |
| 2437 | 如果非boot_cpu_detected且num_processors大于等于nr_cpu_ids减1且apicid不等于Processor that is doing the boot up 则 |
| 2439 | thiscpu等于max加disabled_cpus减1 |
| 2441 | 打印警告信息("APIC: NR_CPUS/possible_cpus limit of %i almost reached. Keeping one slot for boot cpu. Processor %d/0x%x ignored.\n", max, thiscpu, apicid) |
| 2445 | disabled_cpus自加 |
| 2446 | 返回:负ENODEV |
| 2449 | 如果num_processors大于等于nr_cpu_ids则 |
| 2450 | thiscpu等于max加disabled_cpus |
| 2452 | 打印警告信息("APIC: NR_CPUS/possible_cpus limit of %i reached. Processor %d/0x%x ignored.\n", max, thiscpu, apicid) |
| 2455 | disabled_cpus自加 |
| 2456 | 返回:负EINVAL |
| 2459 | 如果apicid恒等于Processor that is doing the boot up 则 |
| 2467 | cpu等于0 |
| 2471 | 否则 |
| 2472 | cpu等于Should use this API to allocate logical CPU IDs to keep nr_logical_cpuids* and cpuid_to_apicid[] synchronized. |
| 2473 | 如果cpu小于0则 |
| 2474 | disabled_cpus自加 |
| 2475 | 返回:负EINVAL |
| 2482 | 如果version恒等于0x0则 |
| 2485 | version等于0x10 |
| 2488 | 如果version不等于boot_cpu_apic_version则 |
| 2489 | 打印警告信息("BIOS bug: APIC version mismatch, boot CPU: %x, CPU %d: version %x\n", boot_cpu_apic_version, cpu, version) |
| 2493 | 如果apicid大于The highest APIC ID seen during enumeration.则The highest APIC ID seen during enumeration.等于apicid |
| 2498 | early_per_cpu(x86_bios_cpu_apicid, cpu)等于apicid |
| 2504 | set_cpu_possible(cpu, true) |
| 2506 | set_cpu_present(cpu, true) |
| 2507 | num_processors自加 |
| 2509 | 返回:cpu |
| 名称 | 描述 |
|---|---|
| MP_processor_info | |
| jailhouse_get_smp_config | |
| prefill_possible_map | pu_possible_mask should be static, it cannot change as cpu's* are onlined, or offlined. The reason is per-cpu data-structures* are allocated by some modules at init time, and dont expect to* do this dynamically on cpu arrival/departure. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |