函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apm_32.c Create Date:2022-07-27 09:22:01
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__apm_bios_call - Make an APM BIOS 32bit call*@_call: pointer to struct apm_bios_call.* Make an APM call using the 32bit protected mode interface. The* caller is responsible for knowing if APM BIOS is configured and* enabled

函数原型:static long __apm_bios_call(void *_call)

返回类型:long

参数:

类型参数名称
void *_call
595  APM_DECL_SEGS
600  call等于_call
602  cpu等于get_cpu()
603  BUG_ON(cpu != 0)
604  gdt等于Provide the original GDT
605  save_desc_40等于gdt[0x40 / 8]
606  gdt[0x40 / 8]等于Set up a segment that references the real mode segment 0x40* that extends up to the end of page zero (that we have reserved).* This is for buggy BIOS's that refer to (real mode) segment 0x40* even though they are called in protected mode.
608  apm_irq_save(flags)
609  With retpoline, we must use IBRS to restrict branch prediction* before calling into firmware.* (Implemented as CPP macros due to header hell.)()
610  APM_DO_SAVE_SEGS
611  apm_bios_call_asm(func, In and out , ecx, & Out only , & In and out , & ecx, & edx, & esi)
614  APM_DO_RESTORE_SEGS
615  firmware_restrict_branch_speculation_end()
616  apm_irq_restore(flags)
617  gdt[0x40 / 8]等于save_desc_40
618  put_cpu()
620  返回: Out only 按位与0xff