git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Commenting for new function
[tpg/acess2.git]
/
Kernel
/
arch
/
x86
/
desctab.asm
diff --git
a/Kernel/arch/x86/desctab.asm
b/Kernel/arch/x86/desctab.asm
index
f403950
..
737570b
100644
(file)
--- a/
Kernel/arch/x86/desctab.asm
+++ b/
Kernel/arch/x86/desctab.asm
@@
-3,17
+3,17
@@
; desctab.asm
[BITS 32]
; desctab.asm
[BITS 32]
-%if ARCH == "i386"
-MAX_CPUS equ 1
-%else
+%if USE_MP
MAX_CPUS equ 8
MAX_CPUS equ 8
+%else
+MAX_CPUS equ 1
%endif
GDT_SIZE equ (1+2*2+1+MAX_CPUS)*8
[section .data]
; GDT
%endif
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
; PL0 - Kernel
; PL3 - User
dd 0x00000000, 0x00000000 ; 00 NULL Entry
@@
-21,24
+21,27
@@
_gGDT:
dd 0x0000FFFF, 0x00CF9200 ; 10 PL0 Data
dd 0x0000FFFF, 0x00CFFA00 ; 18 PL3 Code
dd 0x0000FFFF, 0x00CFF200 ; 20 PL3 Data
dd 0x0000FFFF, 0x00CF9200 ; 10 PL0 Data
dd 0x0000FFFF, 0x00CFFA00 ; 18 PL3 Code
dd 0x0000FFFF, 0x00CFF200 ; 20 PL3 Data
- dd 0, 0 ; Double Fault TSS
- 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
dw GDT_SIZE-1
- dd
_
gGDT
+ dd gGDT
; IDT
ALIGN 8
; IDT
ALIGN 8
-
_
gIDT:
+gIDT:
times 256 dd 0x00080000,0x00000F00
times 256 dd 0x00080000,0x00000F00
-_gIDTPtr:
+[global gIDTPtr]
+gIDTPtr:
dw 256 * 16 - 1 ; Limit
dw 256 * 16 - 1 ; Limit
- dd
_gIDT
; Base
+ dd
gIDT
; Base
[section .text]
[section .text]
-[global _Desctab_Install]
-_Desctab_Install:
+
+[global Desctab_Install]
+Desctab_Install:
; Set GDT
; Set GDT
- lgdt [
_gGDTp
tr]
+ lgdt [
gGDTP
tr]
mov ax, 0x10 ; PL0 Data
mov ss, ax
mov ds, ax
mov ax, 0x10 ; PL0 Data
mov ss, ax
mov ds, ax
@@
-50,18
+53,18
@@
_Desctab_Install:
; Set IDT
%macro SETISR 1
; 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
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
or ax, 0x8000
- mov WORD [
_
gIDT + %1*8 + 4], ax
+ mov WORD [gIDT + %1*8 + 4], ax
%endmacro
%macro SETUSER 1
%endmacro
%macro SETUSER 1
- mov ax, WORD [
_
gIDT + %1*8 + 4]
+ mov ax, WORD [gIDT + %1*8 + 4]
or ax, 0x6000
or ax, 0x6000
- mov WORD [
_
gIDT + %1*8 + 4], ax
+ mov WORD [gIDT + %1*8 + 4], ax
%endmacro
%assign i 0
%rep 32
%endmacro
%assign i 0
%rep 32
@@
-79,7
+82,7
@@
_Desctab_Install:
%endrep
; Load IDT
%endrep
; Load IDT
- lidt [
_
gIDTPtr]
+ lidt [gIDTPtr]
; Remap PIC
push edx ; Save EDX
; Remap PIC
push edx ; Save EDX
@@
-117,15
+120,15
@@
_Desctab_Install:
; = Define ISRs =
; ===============
%macro ISR_ERRNO 1
; = 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
;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
xchg bx, bx
push 0
push %1
@@
-133,16
+136,16
@@
_Isr%1:
%endmacro
%macro DEF_SYSCALL 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
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
;cli ; HACK!
push 0
push %1
@@
-186,8
+189,8
@@
DEF_SYSCALL 0xAC ; Acess System Call
; IRQs
; - Timer
; IRQs
; - Timer
-[global
_
Isr240]
-
_
Isr240:
+[global Isr240]
+Isr240:
push 0
jmp SchedulerBase
; - Assignable
push 0
jmp SchedulerBase
; - Assignable
@@
-200,8
+203,9
@@
_Isr240:
; ---------------------
; Common error handling
; ---------------------
; ---------------------
; Common error handling
; ---------------------
-[extern
_
ErrorHandler]
+[extern ErrorHandler]
ErrorCommon:
ErrorCommon:
+ ;xchg bx, bx
pusha
push ds
push es
pusha
push ds
push es
@@
-209,7
+213,7
@@
ErrorCommon:
push gs
push esp
push gs
push esp
- call
_
ErrorHandler
+ call ErrorHandler
add esp, 4
pop gs
add esp, 4
pop gs
@@
-223,7
+227,7
@@
ErrorCommon:
; --------------------------
; Common System Call Handler
; --------------------------
; --------------------------
; Common System Call Handler
; --------------------------
-[extern
_
SyscallHandler]
+[extern SyscallHandler]
SyscallCommon:
pusha
push ds
SyscallCommon:
pusha
push ds
@@
-232,7
+236,7
@@
SyscallCommon:
push gs
push esp
push gs
push esp
- call
_
SyscallHandler
+ call SyscallHandler
add esp, 4
pop gs
add esp, 4
pop gs
@@
-246,7
+250,7
@@
SyscallCommon:
; ------------
; IRQ Handling
; ------------
; ------------
; IRQ Handling
; ------------
-[extern
_
IRQ_Handler]
+[extern IRQ_Handler]
IRQCommon:
pusha
push ds
IRQCommon:
pusha
push ds
@@
-255,7
+259,7
@@
IRQCommon:
push gs
push esp
push gs
push esp
- call
_
IRQ_Handler
+ call IRQ_Handler
add esp, 4
pop gs
add esp, 4
pop gs
@@
-269,7
+273,7
@@
IRQCommon:
; --------------
; Task Scheduler
; --------------
; --------------
; Task Scheduler
; --------------
-[extern
_
Proc_Scheduler]
+[extern Proc_Scheduler]
SchedulerBase:
pusha
push ds
SchedulerBase:
pusha
push ds
@@
-280,7
+284,7
@@
SchedulerBase:
mov eax, [esp+12*4] ; CPU Number
push eax ; Pus as argument
mov eax, [esp+12*4] ; CPU Number
push eax ; Pus as argument
- call
_
Proc_Scheduler
+ call Proc_Scheduler
add esp, 4 ; Remove Argument
add esp, 4 ; Remove Argument
UCC
git Repository :: git.ucc.asn.au