28 Commits

Author SHA1 Message Date
Matheus e4a4896b4b kcov: initial implementation
Implement a device (/dev/kcov) that exposes coverage info for the
kernel. This will be especially useful for coverage-based fuzzing (e.g.
syzkaller).

Exclude a lot of functions which would crash/otherwise interfere in the
coverage, including only processing coverage callbacks when not handling
an irq.
2026-10-06 11:51:02 -03:00
Matheus 011309d43d cpu: add irq depth counting
Add a way of checking if a cpu is in the middle of handling an irq and
how deep it is into it. This will allow for future code to conditionally
run only in/outside interrupts.
2026-10-06 11:51:01 -03:00
Matheus c84aa086dd fix interrupt disabled bug 2025-08-23 16:03:10 -03:00
Matheus 709ee55af4 interrupt: optimize 2024-12-17 22:21:10 -03:00
Matheus a30f8ce5d9 interrupt: change panic message and fix id issue 2024-09-16 17:11:39 -03:00
Matheus 16b6c86a5f cpu: rename _cpu() to current_cpu() 2024-09-15 19:03:09 -03:00
Matheus 56d665d5a0 kernel: fix remaining _cpu() races 2024-09-15 18:39:59 -03:00
Matheus d2527bee92 context changes and scheduler userspace check fix 2024-05-27 22:00:59 -03:00
Matheus 1b63e9b436 signals: more general changes 2024-05-17 18:48:57 -03:00
Matheus 0910232b56 interrupt: do userspace check on interrupt return to userspace 2024-05-08 19:22:37 -03:00
Matheus 1b7e671a6d interrupt: fix issue with do pending 2023-11-30 17:50:54 -03:00
Matheus b657874c4c interrupt: fix interrupt_set 2023-07-03 22:49:26 -03:00
Matheus 0185572afc interrupts: IPL_IGNORE which doesn't raise nor lower the IPL on an interrupt 2023-06-27 20:03:57 -03:00
Matheus 135b9d8009 interrupts: interrupt_raise 2023-06-25 19:56:33 -03:00
Matheus 80671b6e11 interrupts: execute pending interrupts 2023-06-25 16:00:08 -03:00
Matheus 75671f1ca2 interrupt: fix ipl check 2023-05-04 19:36:15 -03:00
Matheus 3987e7bca6 interrupt: split setipl into raiseipl and loweripl 2023-05-04 13:52:35 -03:00
Matheus 1bcf8dfcf3 interrupt: set proper intstatus on isr return 2023-04-28 22:28:13 -03:00
Matheus 03a134445a interrupt: change how interrupts are handled on the general isr 2023-04-27 23:34:32 -03:00
Matheus 015d8b4093 interrupt: default interrupts being off in isr 2023-04-24 22:31:02 -03:00
Matheus 15deda3a3d interrupt: fix ipl check 2023-04-23 16:49:06 -03:00
Matheus db487fdcd3 interrupt: reorder intstatus set on isr 2023-04-23 15:46:26 -03:00
Matheus 5f84cdec3c interrupt: basic ipl handling 2023-04-23 15:42:39 -03:00
Matheus fefde1793e interrupt: interrupt_set() 2023-04-23 15:06:07 -03:00
Matheus 2e7fa1115f interrupt: make sure cpu id is 64bit before bit shift 2023-04-21 21:17:06 -03:00
Matheus ad70e8741d kernel: panic 2023-04-08 21:40:31 -03:00
Matheus 7b58504b01 kernel: x86-64 idt 2023-04-08 21:13:43 -03:00
Matheus a9f490b431 kernel: initial interrupt abstraction implementation 2023-04-08 20:16:16 -03:00