Forráskód Böngészése

Kernel: Change data in /proc/interrupts to be more richer

Also, during interrupt handlers' enumeration, we call all interrupts
handlers that are not UnhandledInterruptHandler.
Liav A 5 éve
szülő
commit
7ef5d222f1

+ 2 - 1
Kernel/FileSystem/ProcFS.cpp

@@ -363,8 +363,9 @@ Optional<KBuffer> procfs$interrupts(InodeIdentifier)
     JsonArraySerializer array { builder };
     InterruptManagement::the().enumerate_interrupt_handlers([&array](GenericInterruptHandler& handler) {
         auto obj = array.add_object();
-        obj.add("purpose", "Interrupt Handler"); // FIXME: Determine the right description for each interrupt handler.
+        obj.add("purpose", handler.purpose());
         obj.add("interrupt_line", handler.interrupt_number());
+        obj.add("controller", handler.controller());
         obj.add("cpu_handler", 0); // FIXME: Determine the responsible CPU for each interrupt handler.
         obj.add("device_sharing", (unsigned)handler.sharing_devices_count());
         obj.add("call_count", (unsigned)handler.get_invoking_count());

+ 1 - 1
Kernel/Interrupts/InterruptManagement.cpp

@@ -63,7 +63,7 @@ void InterruptManagement::enumerate_interrupt_handlers(Function<void(GenericInte
 {
     for (int i = 0; i < GENERIC_INTERRUPT_HANDLERS_COUNT; i++) {
         auto& handler = get_interrupt_handler(i);
-        if (handler.get_invoking_count() > 0)
+        if (handler.type() != HandlerType::UnhandledInterruptHandler)
             callback(handler);
     }
 }