forked from KolibriOS/kolibrios
Assert sizeof.APPDATA=256, use it instead of hardcoded 256 value.
git-svn-id: svn://kolibrios.org@8093 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ab9b1ebb4a
commit
aaf1ac4439
@ -536,8 +536,11 @@ struct APPDATA
|
|||||||
wnd_clientbox BOX ;+216
|
wnd_clientbox BOX ;+216
|
||||||
priority dd ? ;+232
|
priority dd ? ;+232
|
||||||
in_schedule LHEAD ;+236
|
in_schedule LHEAD ;+236
|
||||||
|
rd 3 ;+244
|
||||||
ends
|
ends
|
||||||
|
|
||||||
|
assert sizeof.APPDATA = 256
|
||||||
|
|
||||||
APP_OBJ_OFFSET = 48
|
APP_OBJ_OFFSET = 48
|
||||||
APP_EV_OFFSET = 40
|
APP_EV_OFFSET = 40
|
||||||
|
|
||||||
|
@ -326,6 +326,8 @@ proc find_next_task
|
|||||||
pop ecx
|
pop ecx
|
||||||
spin_unlock_irqrestore SchedulerLock
|
spin_unlock_irqrestore SchedulerLock
|
||||||
.found:
|
.found:
|
||||||
|
; the line below assumes APPDATA is 256 bytes long and SLOT_BASE is
|
||||||
|
; aligned on 0x10000
|
||||||
mov [CURRENT_TASK], bh
|
mov [CURRENT_TASK], bh
|
||||||
mov [TASK_BASE], edi
|
mov [TASK_BASE], edi
|
||||||
rdtsc ;call _rdtsc
|
rdtsc ;call _rdtsc
|
||||||
|
@ -467,7 +467,7 @@ destroy_thread:
|
|||||||
jne @F
|
jne @F
|
||||||
|
|
||||||
mov [fpu_owner], 2
|
mov [fpu_owner], 2
|
||||||
mov eax, [256*2+SLOT_BASE+APPDATA.fpu_state]
|
mov eax, [sizeof.APPDATA*2+SLOT_BASE+APPDATA.fpu_state]
|
||||||
clts
|
clts
|
||||||
bt [cpu_caps], CAPS_SSE
|
bt [cpu_caps], CAPS_SSE
|
||||||
jnc .no_SSE
|
jnc .no_SSE
|
||||||
@ -611,12 +611,12 @@ destroy_thread:
|
|||||||
add edi, SLOT_BASE
|
add edi, SLOT_BASE
|
||||||
|
|
||||||
mov eax, [edi+APPDATA.io_map]
|
mov eax, [edi+APPDATA.io_map]
|
||||||
cmp eax, [SLOT_BASE+256+APPDATA.io_map]
|
cmp eax, [SLOT_BASE+sizeof.APPDATA+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, [SLOT_BASE+256+APPDATA.io_map+4]
|
cmp eax, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4]
|
||||||
je @F
|
je @F
|
||||||
call free_page
|
call free_page
|
||||||
@@:
|
@@:
|
||||||
@ -822,7 +822,7 @@ proc unprotect_from_terminate
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
; Request termination of thread identified by edx = SLOT_BASE + slot*256.
|
; Request termination of thread identified by edx = SLOT_BASE + slot*sizeof.APPDATA.
|
||||||
; Called by anyone.
|
; Called by anyone.
|
||||||
proc request_terminate
|
proc request_terminate
|
||||||
xor eax, eax ; set return value
|
xor eax, eax ; set return value
|
||||||
|
@ -128,7 +128,7 @@ proc fs_execute
|
|||||||
lea edi, [SLOT_BASE+eax]
|
lea edi, [SLOT_BASE+eax]
|
||||||
mov [slot_base], edi
|
mov [slot_base], edi
|
||||||
; clean extended information about process
|
; clean extended information about process
|
||||||
mov ecx, 256/4
|
mov ecx, sizeof.APPDATA/4
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
cld
|
cld
|
||||||
rep stosd
|
rep stosd
|
||||||
@ -726,7 +726,7 @@ proc new_sys_threads
|
|||||||
shl edi, 8
|
shl edi, 8
|
||||||
add edi, SLOT_BASE
|
add edi, SLOT_BASE
|
||||||
mov edx, edi ;edx=edi - pointer to extended infomation about new thread
|
mov edx, edi ;edx=edi - pointer to extended infomation about new thread
|
||||||
mov ecx, 256/4
|
mov ecx, sizeof.APPDATA/4
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
cld
|
cld
|
||||||
rep stosd ;clean extended information about new thread
|
rep stosd ;clean extended information about new thread
|
||||||
@ -918,9 +918,9 @@ proc set_app_params stdcall,slot:dword, params:dword, flags:dword
|
|||||||
mov [eax+SLOT_BASE+APPDATA.terminate_protection], 80000001h
|
mov [eax+SLOT_BASE+APPDATA.terminate_protection], 80000001h
|
||||||
|
|
||||||
;set default io permission map
|
;set default io permission map
|
||||||
mov ecx, [SLOT_BASE+256+APPDATA.io_map]
|
mov ecx, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map]
|
||||||
mov [eax+SLOT_BASE+APPDATA.io_map], ecx
|
mov [eax+SLOT_BASE+APPDATA.io_map], ecx
|
||||||
mov ecx, [SLOT_BASE+256+APPDATA.io_map+4]
|
mov ecx, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4]
|
||||||
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx
|
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx
|
||||||
|
|
||||||
mov esi, fpu_data
|
mov esi, fpu_data
|
||||||
|
@ -599,7 +599,7 @@ high_code:
|
|||||||
|
|
||||||
mov [current_process], sys_proc
|
mov [current_process], sys_proc
|
||||||
|
|
||||||
mov edx, SLOT_BASE+256*1
|
mov edx, SLOT_BASE+sizeof.APPDATA*1
|
||||||
mov ebx, [os_stack_seg]
|
mov ebx, [os_stack_seg]
|
||||||
add ebx, RING0_STACK_SIZE
|
add ebx, RING0_STACK_SIZE
|
||||||
add ebx, [xsave_area_size]
|
add ebx, [xsave_area_size]
|
||||||
@ -611,7 +611,7 @@ high_code:
|
|||||||
mov ecx, IDLE_PRIORITY
|
mov ecx, IDLE_PRIORITY
|
||||||
call scheduler_add_thread
|
call scheduler_add_thread
|
||||||
|
|
||||||
mov edx, SLOT_BASE+256*2
|
mov edx, SLOT_BASE+sizeof.APPDATA*2
|
||||||
mov ebx, [os_stack_seg]
|
mov ebx, [os_stack_seg]
|
||||||
call setup_os_slot
|
call setup_os_slot
|
||||||
mov dword [edx], 'OS'
|
mov dword [edx], 'OS'
|
||||||
@ -620,8 +620,8 @@ high_code:
|
|||||||
|
|
||||||
mov dword [CURRENT_TASK], 2
|
mov dword [CURRENT_TASK], 2
|
||||||
mov dword [TASK_COUNT], 2
|
mov dword [TASK_COUNT], 2
|
||||||
mov dword [current_slot], SLOT_BASE + 256*2
|
mov dword [current_slot], SLOT_BASE + sizeof.APPDATA*2
|
||||||
mov dword [TASK_BASE], CURRENT_TASK + 32*2
|
mov dword [TASK_BASE], CURRENT_TASK + sizeof.TASKDATA*2
|
||||||
|
|
||||||
; Move other CPUs to deep sleep, if it is useful
|
; Move other CPUs to deep sleep, if it is useful
|
||||||
uglobal
|
uglobal
|
||||||
@ -880,8 +880,8 @@ include "detect/vortex86.inc" ; Vortex86 SoC detection code
|
|||||||
|
|
||||||
call init_display
|
call init_display
|
||||||
mov eax, [def_cursor]
|
mov eax, [def_cursor]
|
||||||
mov [SLOT_BASE+APPDATA.cursor+256], eax
|
mov [SLOT_BASE+APPDATA.cursor+sizeof.APPDATA], eax
|
||||||
mov [SLOT_BASE+APPDATA.cursor+256*2], eax
|
mov [SLOT_BASE+APPDATA.cursor+sizeof.APPDATA*2], eax
|
||||||
|
|
||||||
; PRINT CPU FREQUENCY
|
; PRINT CPU FREQUENCY
|
||||||
|
|
||||||
@ -977,14 +977,14 @@ include "detect/vortex86.inc" ; Vortex86 SoC detection code
|
|||||||
; Protect I/O permission map
|
; Protect I/O permission map
|
||||||
|
|
||||||
mov esi, [default_io_map]
|
mov esi, [default_io_map]
|
||||||
stdcall map_page, esi, [SLOT_BASE+256+APPDATA.io_map], PG_READ
|
stdcall map_page, esi, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map], PG_READ
|
||||||
add esi, 0x1000
|
add esi, 0x1000
|
||||||
stdcall map_page, esi, [SLOT_BASE+256+APPDATA.io_map+4], PG_READ
|
stdcall map_page, esi, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4], PG_READ
|
||||||
|
|
||||||
stdcall map_page, tss._io_map_0, \
|
stdcall map_page, tss._io_map_0, \
|
||||||
[SLOT_BASE+256+APPDATA.io_map], PG_READ
|
[SLOT_BASE+sizeof.APPDATA+APPDATA.io_map], PG_READ
|
||||||
stdcall map_page, tss._io_map_1, \
|
stdcall map_page, tss._io_map_1, \
|
||||||
[SLOT_BASE+256+APPDATA.io_map+4], PG_READ
|
[SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4], PG_READ
|
||||||
|
|
||||||
; SET KEYBOARD PARAMETERS
|
; SET KEYBOARD PARAMETERS
|
||||||
mov al, 0xf6 ; reset keyboard, scan enabled
|
mov al, 0xf6 ; reset keyboard, scan enabled
|
||||||
@ -1122,7 +1122,7 @@ register_ramdisk:
|
|||||||
; in: ebx = stack base
|
; in: ebx = stack base
|
||||||
proc setup_os_slot
|
proc setup_os_slot
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov ecx, 256/4
|
mov ecx, sizeof.APPDATA/4
|
||||||
mov edi, edx
|
mov edi, edx
|
||||||
rep stosd
|
rep stosd
|
||||||
|
|
||||||
@ -3506,8 +3506,8 @@ nocpustart:
|
|||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
.set_mouse_event:
|
.set_mouse_event:
|
||||||
add edi, 256
|
add edi, sizeof.APPDATA
|
||||||
add ebx, 32
|
add ebx, sizeof.TASKDATA
|
||||||
test [ebx+TASKDATA.event_mask], 0x80000000
|
test [ebx+TASKDATA.event_mask], 0x80000000
|
||||||
jz .pos_filter
|
jz .pos_filter
|
||||||
|
|
||||||
@ -3574,7 +3574,7 @@ backgr:
|
|||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
set_bgr_event:
|
set_bgr_event:
|
||||||
add edi, 256
|
add edi, sizeof.APPDATA
|
||||||
mov eax, [BG_Rect_X_left_right]
|
mov eax, [BG_Rect_X_left_right]
|
||||||
mov edx, [BG_Rect_Y_top_bottom]
|
mov edx, [BG_Rect_Y_top_bottom]
|
||||||
cmp [edi+SLOT_BASE+APPDATA.draw_bgr_x], 0
|
cmp [edi+SLOT_BASE+APPDATA.draw_bgr_x], 0
|
||||||
|
Loading…
Reference in New Issue
Block a user