Function report |
Source Code:arch\x86\kernel\umip.c |
Create Date:2022-07-28 08:50:34 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:mulate_umip_insn() - Emulate UMIP instructions and return dummy values*@insn: Instruction structure with operands*@umip_inst: A constant indicating the instruction to emulate*@data: Buffer into which the dummy result is stored*@data_size: Size of the
Proto:static int emulate_umip_insn(struct insn *insn, int umip_inst, unsigned char *data, int *data_size, bool x86_64)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct insn * | insn | |
| int | umip_inst | |
| unsigned char * | data | |
| int * | data_size | |
| bool | x86_64 |
| 220 | dummy_limit = 0 |
| 223 | If X86_MODRM_MOD(value) == 3 Then Return -EINVAL |
| 228 | Else dummy_base_addr = UMIP_DUMMY_IDT_BASE |
| 239 | Else data_size = UMIP_GDT_IDT_BASE_SIZE_32BIT |
| 242 | memcpy(data + 2, & dummy_base_addr, * data_size) |
| 244 | data_size += UMIP_GDT_IDT_LIMIT_SIZE |
| 245 | memcpy(data, & dummy_limit, UMIP_GDT_IDT_LIMIT_SIZE) |
| 248 | dummy_value = CR0_STATE |
| 258 | If X86_MODRM_MOD(value) == 3 Then data_size = opnd_bytes |
| 260 | Else data_size = 2 |
| 263 | memcpy(data, & dummy_value, * data_size) |
| 265 | Else |
| 266 | Return -EINVAL |
| 269 | Return 0 |
| Name | Describe |
|---|---|
| fixup_umip_exception | xup_umip_exception() - Fixup a general protection fault caused by UMIP*@regs: Registers as saved when entering the #GP handler* The instructions SGDT, SIDT, STR, SMSW and SLDT cause a general protection* fault if executed with CPL > 0 (i |
| 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 |