about summary refs log tree commit diff stats
path: root/test/js/documentall.html
Commit message (Expand)AuthorAgeFilesLines
* test: add js & layout testsbptato2024-04-211-0/+19
69'>^
67de9b02 ^
46bb1d31 ^


67de9b02 ^
852d31cf ^
46bb1d31 ^


67de9b02 ^
46bb1d31 ^


67de9b02 ^
46bb1d31 ^





67de9b02 ^
46bb1d31 ^
67de9b02 ^
46bb1d31 ^





852d31cf ^
46bb1d31 ^
67de9b02 ^
46bb1d31 ^



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44







                                    
                                                             


                                    
                                
                                                          


                                               
                                          


                                                         
          





                                                     
                                
                               
                                     





                         
                                        
 
                                                        



                                                                       
#include "common.h"
#include "isr.h"
#include "screen.h"

IsrFunction gInterruptHandlers[256];

extern uint32 gSystemTickCount;

void registerInterruptHandler(uint8 n, IsrFunction handler) {
    gInterruptHandlers[n] = handler;
}

void handleISR(Registers regs) {
    //printkf("handleISR interrupt no:%d\n", regs.int_no);

    uint8 int_no = regs.interruptNumber & 0xFF;

    if (gInterruptHandlers[int_no] != 0) {
        IsrFunction handler = gInterruptHandlers[int_no];
        handler(&regs);
    }
    else {
        printkf("unhandled interrupt: %d\n", int_no);
        printkf("Tick: %d\n", gSystemTickCount);
        PANIC("unhandled interrupt");
    }
}

void handleIRQ(Registers regs) {
    // end of interrupt message
    if (regs.interruptNumber >= 40) {
        //slave PIC
        outb(0xA0, 0x20);
    }

    outb(0x20, 0x20);

    //printkf("irq: %d\n", regs.int_no);

    if (gInterruptHandlers[regs.interruptNumber] != 0) {
        IsrFunction handler = gInterruptHandlers[regs.interruptNumber];
        handler(&regs);
    }
}