Working on UDP, removed debug from some code, fixed ARP setting hwtype to 0x100 ...
[tpg/acess2.git] / Kernel / arch / x86 / desctab.asm
index 2d0a232..737570b 100644 (file)
@@ -3,17 +3,17 @@
 ; desctab.asm
 [BITS 32]
 
-%if ARCH == "i386"
-MAX_CPUS       equ     1
-%else
+%if USE_MP
 MAX_CPUS       equ     8
+%else
+MAX_CPUS       equ     1
 %endif
-GDT_SIZE       equ     (1+2*2+MAX_CPUS)*8      ; 4 Permission levels
+GDT_SIZE       equ     (1+2*2+1+MAX_CPUS)*8
 
 [section .data]
 ; GDT
-[global _gGDT]
-_gGDT:
+[global gGDT]
+gGDT:
        ; PL0 - Kernel
        ; PL3 - User
        dd 0x00000000, 0x00000000       ; 00 NULL Entry
@@ -21,23 +21,27 @@ _gGDT:
        dd 0x0000FFFF, 0x00CF9200       ; 10 PL0 Data
        dd 0x0000FFFF, 0x00CFFA00       ; 18 PL3 Code
        dd 0x0000FFFF, 0x00CFF200       ; 20 PL3 Data
-       times MAX_CPUS  dd 0, 0
-_gGDTptr:
+       dd 26*4-1, 0x00408900   ; Double Fault TSS
+       times MAX_CPUS  dd 26*4-1, 0x00408900
+[global gGDTPtr]
+gGDTPtr:
        dw      GDT_SIZE-1
-       dd      _gGDT
+       dd      gGDT
 ; IDT
 ALIGN 8
-_gIDT:
+gIDT:
        times   256     dd      0x00080000,0x00000F00
-_gIDTPtr:
+[global gIDTPtr]
+gIDTPtr:
        dw      256 * 16 - 1    ; Limit
-       dd      _gIDT           ; Base
+       dd      gIDT            ; Base
 
 [section .text]
-[global _Desctab_Install]
-_Desctab_Install:
+
+[global Desctab_Install]
+Desctab_Install:
        ; Set GDT
-       lgdt [_gGDTptr]
+       lgdt [gGDTPtr]
        mov ax, 0x10    ; PL0 Data
        mov ss, ax
        mov ds, ax
@@ -49,18 +53,18 @@ _Desctab_Install:
 
        ; Set IDT
 %macro SETISR  1
-       mov eax, _Isr%1
-       mov     WORD [_gIDT + %1*8], ax
+       mov eax, Isr%1
+       mov     WORD [gIDT + %1*8], ax
        shr eax, 16
-       mov     WORD [_gIDT + %1*8+6], ax
-       mov     ax, WORD [_gIDT + %1*8 + 4]
+       mov     WORD [gIDT + %1*8+6], ax
+       mov     ax, WORD [gIDT + %1*8 + 4]
        or ax, 0x8000
-       mov     WORD [_gIDT + %1*8 + 4], ax
+       mov     WORD [gIDT + %1*8 + 4], ax
 %endmacro
 %macro SETUSER 1
-       mov     ax, WORD [_gIDT + %1*8 + 4]
+       mov     ax, WORD [gIDT + %1*8 + 4]
        or ax, 0x6000
-       mov     WORD [_gIDT + %1*8 + 4], ax
+       mov     WORD [gIDT + %1*8 + 4], ax
 %endmacro
        %assign i       0
        %rep 32
@@ -78,7 +82,7 @@ _Desctab_Install:
        %endrep
 
        ; Load IDT
-       lidt [_gIDTPtr]
+       lidt [gIDTPtr]
 
        ; Remap PIC
        push edx        ; Save EDX
@@ -116,15 +120,15 @@ _Desctab_Install:
 ; = Define ISRs =
 ; ===============
 %macro ISR_ERRNO       1
-[global _Isr%1]
-_Isr%1:
+[global Isr%1]
+Isr%1:
        ;xchg bx, bx
        push    %1
        jmp     ErrorCommon
 %endmacro
 %macro ISR_NOERR       1
-[global _Isr%1]
-_Isr%1:
+[global Isr%1]
+Isr%1:
        xchg bx, bx
        push    0
        push    %1
@@ -132,16 +136,16 @@ _Isr%1:
 %endmacro
 
 %macro DEF_SYSCALL     1
-[global _Isr%1]
-_Isr%1:
+[global Isr%1]
+Isr%1:
        push    0
        push    %1
        jmp     SyscallCommon
 %endmacro
 
 %macro DEF_IRQ 1
-[global _Isr%1]
-_Isr%1:
+[global Isr%1]
+Isr%1:
        ;cli    ; HACK!
        push    0
        push    %1
@@ -185,8 +189,8 @@ DEF_SYSCALL 0xAC    ; Acess System Call
 
 ; IRQs
 ; - Timer
-[global _Isr240]
-_Isr240:
+[global Isr240]
+Isr240:
        push 0
        jmp SchedulerBase
 ; - Assignable
@@ -199,8 +203,9 @@ _Isr240:
 ; ---------------------
 ; Common error handling
 ; ---------------------
-[extern _ErrorHandler]
+[extern ErrorHandler]
 ErrorCommon:
+       ;xchg bx, bx
        pusha
        push ds
        push es
@@ -208,7 +213,7 @@ ErrorCommon:
        push gs
        
        push esp
-       call _ErrorHandler
+       call ErrorHandler
        add esp, 4
        
        pop gs
@@ -222,7 +227,7 @@ ErrorCommon:
 ; --------------------------
 ; Common System Call Handler
 ; --------------------------
-[extern _SyscallHandler]
+[extern SyscallHandler]
 SyscallCommon:
        pusha
        push ds
@@ -231,7 +236,7 @@ SyscallCommon:
        push gs
        
        push esp
-       call _SyscallHandler
+       call SyscallHandler
        add esp, 4
        
        pop gs
@@ -245,7 +250,7 @@ SyscallCommon:
 ; ------------
 ; IRQ Handling
 ; ------------
-[extern _IRQ_Handler]
+[extern IRQ_Handler]
 IRQCommon:
        pusha
        push ds
@@ -254,7 +259,7 @@ IRQCommon:
        push gs
        
        push esp
-       call _IRQ_Handler
+       call IRQ_Handler
        add esp, 4
        
        pop gs
@@ -268,7 +273,7 @@ IRQCommon:
 ; --------------
 ; Task Scheduler
 ; --------------
-[extern _Proc_Scheduler]
+[extern Proc_Scheduler]
 SchedulerBase:
        pusha
        push ds
@@ -279,7 +284,7 @@ SchedulerBase:
        mov eax, [esp+12*4]     ; CPU Number
        push eax        ; Pus as argument
        
-       call _Proc_Scheduler
+       call Proc_Scheduler
        
        add esp, 4      ; Remove Argument
        

UCC git Repository :: git.ucc.asn.au