From e69835fc40b5e00c0996ce3a85d8287eea57d162 Mon Sep 17 00:00:00 2001 From: Alexander Potapenko Date: Wed, 1 Oct 2025 16:35:10 +0200 Subject: executor: sys/linux: implement SYZOS_API_SET_IRQ_HANDLER The new API call allows to initialize the handler with one of the three possible values: - NULL (should cause a page fault) - dummy_null_handler (should call iret) - uexit_irq_handler (should perform guest_uexit(UEXIT_IRQ)) Also add a test for uexit_irq_handler() --- sys/linux/dev_kvm_amd64.txt | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'sys/linux/dev_kvm_amd64.txt') diff --git a/sys/linux/dev_kvm_amd64.txt b/sys/linux/dev_kvm_amd64.txt index 43474f9f6..ed2880063 100644 --- a/sys/linux/dev_kvm_amd64.txt +++ b/sys/linux/dev_kvm_amd64.txt @@ -89,16 +89,22 @@ syzos_api_out_dx { arg_val int64 } +syzos_api_set_irq_handler { + arg_vector int64[0:255] + arg_handler_type int64[0:2] +} + syzos_api_call$x86 [ - uexit syzos_api$x86[0, intptr] - code syzos_api$x86[10, syzos_api_code$x86] - cpuid syzos_api$x86[20, syzos_api_cpuid] - wrmsr syzos_api$x86[30, syzos_api_wrmsr] - rdmsr syzos_api$x86[50, syzos_api_rdmsr] - wr_crn syzos_api$x86[70, syzos_api_wr_crn] - wr_drn syzos_api$x86[110, syzos_api_wr_drn] - in_dx syzos_api$x86[130, syzos_api_in_dx] - out_dx syzos_api$x86[170, syzos_api_out_dx] + uexit syzos_api$x86[0, intptr] + code syzos_api$x86[10, syzos_api_code$x86] + cpuid syzos_api$x86[20, syzos_api_cpuid] + wrmsr syzos_api$x86[30, syzos_api_wrmsr] + rdmsr syzos_api$x86[50, syzos_api_rdmsr] + wr_crn syzos_api$x86[70, syzos_api_wr_crn] + wr_drn syzos_api$x86[110, syzos_api_wr_drn] + in_dx syzos_api$x86[130, syzos_api_in_dx] + out_dx syzos_api$x86[170, syzos_api_out_dx] + set_irq_handler syzos_api$x86[190, syzos_api_set_irq_handler] ] [varlen] kvm_text_x86 [ -- cgit mrf-deployment