aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2024-08-08 17:15:28 +0200
committerAlexander Potapenko <glider@google.com>2024-09-03 12:16:36 +0000
commita06f1e2de790d7f11a3ba8c4177dcdab7c69850c (patch)
tree5c40f0cd209dd96bcee8a492cd95ce142cf29225 /sys
parentb2cc5342decd0a59ad80773c34d903e41cbb9ee2 (diff)
executor: arm64: sys/linux: add SYZOS_API_IRQ_SETUP
Implement basic IRQ controller setup for VMs with a single CPU. SYZOS_API_IRQ_SETUP sets up the VGICv3 distributor/redistributor and enables the specified number of SPIs starting from 32. The default IRQ handler is set up to perform a uexit(-2).
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/dev_kvm.txt16
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt
index 1375c2c6a..af41eed55 100644
--- a/sys/linux/dev_kvm.txt
+++ b/sys/linux/dev_kvm.txt
@@ -276,6 +276,11 @@ syzos_api_smccc {
arg_params array[int64, 5]
}
+syzos_api_irq_setup {
+ nr_cpus int32[0:4]
+ nr_spis int32[0:987]
+}
+
type syzos_api[NUM, PAYLOAD] {
call const[NUM, int64]
size bytesize[parent, int64]
@@ -283,11 +288,12 @@ type syzos_api[NUM, PAYLOAD] {
}
syzos_api_call [
- uexit syzos_api[0, intptr]
- code syzos_api[1, syzos_api_code]
- msr syzos_api[2, syzos_api_msr]
- smc syzos_api[3, syzos_api_smccc]
- hvc syzos_api[4, syzos_api_smccc]
+ uexit syzos_api[0, intptr]
+ code syzos_api[1, syzos_api_code]
+ msr syzos_api[2, syzos_api_msr]
+ smc syzos_api[3, syzos_api_smccc]
+ hvc syzos_api[4, syzos_api_smccc]
+ irq_setup syzos_api[5, syzos_api_irq_setup]
] [varlen]
kvm_text_ppc64 {