函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |