forked from KolibriOS/kolibrios
IOPM in TSS for 4M page was broken, fixed.
git-svn-id: svn://kolibrios.org@1310 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
caf224ae96
commit
6b29296f2c
@ -310,12 +310,12 @@ BgrDrawMode equ (OS_BASE+0x033BFF4)
|
|||||||
BgrDataWidth equ (OS_BASE+0x033BFF8)
|
BgrDataWidth equ (OS_BASE+0x033BFF8)
|
||||||
BgrDataHeight equ (OS_BASE+0x033BFFC)
|
BgrDataHeight equ (OS_BASE+0x033BFFC)
|
||||||
|
|
||||||
virtual at (OS_BASE+0x033CF80)
|
sys_pgmap equ (OS_BASE+0x033C000)
|
||||||
|
|
||||||
|
virtual at (OS_BASE+0x05FFF80)
|
||||||
tss TSS
|
tss TSS
|
||||||
end virtual
|
end virtual
|
||||||
|
|
||||||
sys_pgmap equ (OS_BASE+0x033F000)
|
|
||||||
|
|
||||||
HEAP_BASE equ (OS_BASE+0x0800000)
|
HEAP_BASE equ (OS_BASE+0x0800000)
|
||||||
HEAP_MIN_SIZE equ 0x01000000
|
HEAP_MIN_SIZE equ 0x01000000
|
||||||
|
|
||||||
|
@ -652,12 +652,12 @@ term9:
|
|||||||
add edi,SLOT_BASE
|
add edi,SLOT_BASE
|
||||||
|
|
||||||
mov eax, [edi+APPDATA.io_map]
|
mov eax, [edi+APPDATA.io_map]
|
||||||
cmp eax, (tss._io_map_0-OS_BASE+PG_MAP)
|
cmp eax, [SLOT_BASE+256+APPDATA.io_map]
|
||||||
je @F
|
je @F
|
||||||
call free_page
|
call free_page
|
||||||
@@:
|
@@:
|
||||||
mov eax, [edi+APPDATA.io_map+4]
|
mov eax, [edi+APPDATA.io_map+4]
|
||||||
cmp eax, (tss._io_map_1-OS_BASE+PG_MAP)
|
cmp eax, [SLOT_BASE+256+APPDATA.io_map+4]
|
||||||
je @F
|
je @F
|
||||||
call free_page
|
call free_page
|
||||||
@@:
|
@@:
|
||||||
|
@ -1000,10 +1000,10 @@ proc set_app_params stdcall,slot:dword, params:dword,\
|
|||||||
mov [eax+SLOT_BASE+APPDATA.except_mask], 0
|
mov [eax+SLOT_BASE+APPDATA.except_mask], 0
|
||||||
|
|
||||||
;set default io permission map
|
;set default io permission map
|
||||||
mov [eax+SLOT_BASE+APPDATA.io_map],\
|
mov ecx, [SLOT_BASE+256+APPDATA.io_map]
|
||||||
(tss._io_map_0-OS_BASE+PG_MAP)
|
mov [eax+SLOT_BASE+APPDATA.io_map], ecx
|
||||||
mov [eax+SLOT_BASE+APPDATA.io_map+4],\
|
mov ecx, [SLOT_BASE+256+APPDATA.io_map+4]
|
||||||
(tss._io_map_1-OS_BASE+PG_MAP)
|
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx
|
||||||
|
|
||||||
mov esi, fpu_data
|
mov esi, fpu_data
|
||||||
mov ecx, 512/4
|
mov ecx, 512/4
|
||||||
|
@ -465,6 +465,16 @@ high_code:
|
|||||||
wrmsr
|
wrmsr
|
||||||
.noSYSCALL:
|
.noSYSCALL:
|
||||||
; -----------------------------------------
|
; -----------------------------------------
|
||||||
|
stdcall alloc_page
|
||||||
|
stdcall map_page, tss-0xF80, eax, PG_SW
|
||||||
|
stdcall alloc_page
|
||||||
|
inc eax
|
||||||
|
mov [SLOT_BASE+256+APPDATA.io_map], eax
|
||||||
|
stdcall map_page, tss+0x80, eax, PG_SW
|
||||||
|
stdcall alloc_page
|
||||||
|
inc eax
|
||||||
|
mov dword [SLOT_BASE+256+APPDATA.io_map+4], eax
|
||||||
|
stdcall map_page, tss+0x1080, eax, PG_SW
|
||||||
|
|
||||||
; LOAD IDT
|
; LOAD IDT
|
||||||
|
|
||||||
@ -714,10 +724,7 @@ end if
|
|||||||
add edi, 0x2000-512
|
add edi, 0x2000-512
|
||||||
mov dword [SLOT_BASE+256+APPDATA.fpu_state], edi
|
mov dword [SLOT_BASE+256+APPDATA.fpu_state], edi
|
||||||
mov dword [SLOT_BASE+256+APPDATA.saved_esp0], edi ; just for case
|
mov dword [SLOT_BASE+256+APPDATA.saved_esp0], edi ; just for case
|
||||||
mov dword [SLOT_BASE+256+APPDATA.io_map],\
|
; [SLOT_BASE+256+APPDATA.io_map] was set earlier
|
||||||
(tss._io_map_0-OS_BASE+PG_MAP)
|
|
||||||
mov dword [SLOT_BASE+256+APPDATA.io_map+4],\
|
|
||||||
(tss._io_map_1-OS_BASE+PG_MAP)
|
|
||||||
|
|
||||||
mov esi, fpu_data
|
mov esi, fpu_data
|
||||||
mov ecx, 512/4
|
mov ecx, 512/4
|
||||||
@ -829,14 +836,14 @@ end if
|
|||||||
;protect io permission map
|
;protect io permission map
|
||||||
|
|
||||||
mov esi, [default_io_map]
|
mov esi, [default_io_map]
|
||||||
stdcall map_page,esi,(tss._io_map_0-OS_BASE), PG_MAP
|
stdcall map_page,esi,[SLOT_BASE+256+APPDATA.io_map], PG_MAP
|
||||||
add esi, 0x1000
|
add esi, 0x1000
|
||||||
stdcall map_page,esi,(tss._io_map_1-OS_BASE), PG_MAP
|
stdcall map_page,esi,[SLOT_BASE+256+APPDATA.io_map+4], PG_MAP
|
||||||
|
|
||||||
stdcall map_page,tss._io_map_0,\
|
stdcall map_page,tss._io_map_0,\
|
||||||
(tss._io_map_0-OS_BASE), PG_MAP
|
[SLOT_BASE+256+APPDATA.io_map], PG_MAP
|
||||||
stdcall map_page,tss._io_map_1,\
|
stdcall map_page,tss._io_map_1,\
|
||||||
(tss._io_map_1-OS_BASE), PG_MAP
|
[SLOT_BASE+256+APPDATA.io_map+4], PG_MAP
|
||||||
|
|
||||||
mov ax,[OS_BASE+0x10000+bx_from_load]
|
mov ax,[OS_BASE+0x10000+bx_from_load]
|
||||||
cmp ax,'r1' ; if not rused ram disk - load network configuration from files {SPraid.simba}
|
cmp ax,'r1' ; if not rused ram disk - load network configuration from files {SPraid.simba}
|
||||||
|
Loading…
Reference in New Issue
Block a user