forked from KolibriOS/kolibrios
[KERNEL] cleared the code of unnecessary comments
git-svn-id: svn://kolibrios.org@9932 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
0932401978
commit
d0acf78f92
@ -14,10 +14,6 @@ $Revision$
|
|||||||
; Source code author - Kulakov Vladimir Gennadievich.
|
; Source code author - Kulakov Vladimir Gennadievich.
|
||||||
; Adaptation and improvement - Mario79.
|
; Adaptation and improvement - Mario79.
|
||||||
|
|
||||||
;give_back_application_data: ; give back to application
|
|
||||||
; mov edi,[TASK_BASE]
|
|
||||||
; mov edi,[edi+TASKDATA.mem_start]
|
|
||||||
; add edi,ecx
|
|
||||||
give_back_application_data_1:
|
give_back_application_data_1:
|
||||||
mov esi, FDD_BUFF;FDD_DataBuffer ;0x40000
|
mov esi, FDD_BUFF;FDD_DataBuffer ;0x40000
|
||||||
mov ecx, 128
|
mov ecx, 128
|
||||||
@ -25,10 +21,6 @@ give_back_application_data_1:
|
|||||||
rep movsd
|
rep movsd
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;take_data_from_application: ; take from application
|
|
||||||
; mov esi,[TASK_BASE]
|
|
||||||
; mov esi,[esi+TASKDATA.mem_start]
|
|
||||||
; add esi,ecx
|
|
||||||
take_data_from_application_1:
|
take_data_from_application_1:
|
||||||
mov edi, FDD_BUFF;FDD_DataBuffer ;0x40000
|
mov edi, FDD_BUFF;FDD_DataBuffer ;0x40000
|
||||||
mov ecx, 128
|
mov ecx, 128
|
||||||
|
@ -225,17 +225,8 @@ OS_BASE = 0x80000000
|
|||||||
window_data = OS_BASE + 0x0001000
|
window_data = OS_BASE + 0x0001000
|
||||||
background_window = window_data + sizeof.WDATA
|
background_window = window_data + sizeof.WDATA
|
||||||
|
|
||||||
;TASK_TABLE = OS_BASE + 0x0003000
|
|
||||||
;CURRENT_TASK = OS_BASE + 0x0003000
|
|
||||||
;TASK_COUNT = OS_BASE + 0x0003004
|
|
||||||
;TASK_BASE = OS_BASE + 0x0003010
|
|
||||||
;TASK_DATA = OS_BASE + 0x0003020
|
|
||||||
;TASK_EVENT = OS_BASE + 0x0003020
|
|
||||||
|
|
||||||
;CDDataBuf = OS_BASE + 0x0005000
|
;CDDataBuf = OS_BASE + 0x0005000
|
||||||
|
|
||||||
;unused 0x6000 - 0x8fff
|
|
||||||
|
|
||||||
BOOT_VARS = 0x9000
|
BOOT_VARS = 0x9000
|
||||||
|
|
||||||
idts = OS_BASE + 0x000B100
|
idts = OS_BASE + 0x000B100
|
||||||
@ -483,8 +474,6 @@ struct BOX
|
|||||||
height dd ?
|
height dd ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
; Fields, marked as R now not used, but will be used soon,
|
|
||||||
; when legacy TASKDATA structure will be deleted
|
|
||||||
struct APPDATA
|
struct APPDATA
|
||||||
app_name rb 11
|
app_name rb 11
|
||||||
rb 5
|
rb 5
|
||||||
@ -520,7 +509,7 @@ struct APPDATA
|
|||||||
window dd ? ;+128 ptr WDATA
|
window dd ? ;+128 ptr WDATA
|
||||||
dd ? ;+132
|
dd ? ;+132
|
||||||
dd ? ;+136
|
dd ? ;+136
|
||||||
counter_sum dd ? ;+140 ; R
|
counter_sum dd ? ;+140
|
||||||
rd 4 ;+144
|
rd 4 ;+144
|
||||||
ipc_start dd ? ;+160
|
ipc_start dd ? ;+160
|
||||||
ipc_size dd ? ;+164
|
ipc_size dd ? ;+164
|
||||||
@ -536,8 +525,8 @@ struct APPDATA
|
|||||||
rd 4 ;+216
|
rd 4 ;+216
|
||||||
priority dd ? ;+232
|
priority dd ? ;+232
|
||||||
in_schedule LHEAD ;+236
|
in_schedule LHEAD ;+236
|
||||||
counter_add dd ? ;+244 ; R
|
counter_add dd ? ;+244
|
||||||
cpu_usage dd ? ;+248 ; R
|
cpu_usage dd ? ;+248
|
||||||
dd ? ;+252 ; temporary place to save cursor
|
dd ? ;+252 ; temporary place to save cursor
|
||||||
ends
|
ends
|
||||||
|
|
||||||
@ -546,22 +535,6 @@ assert sizeof.APPDATA = 256
|
|||||||
APP_OBJ_OFFSET = 48
|
APP_OBJ_OFFSET = 48
|
||||||
APP_EV_OFFSET = 40
|
APP_EV_OFFSET = 40
|
||||||
|
|
||||||
; Note: in future TASKDATA will be merged into APPDATA
|
|
||||||
;struct TASKDATA
|
|
||||||
; event_mask dd ? ;+0 mask which stores event types allowed for task
|
|
||||||
; pid dd ? ;+4
|
|
||||||
; dw ? ;+8
|
|
||||||
; state db ? ;+10
|
|
||||||
; db ? ;+11
|
|
||||||
; dw ? ;+12
|
|
||||||
; wnd_number db ? ;+14
|
|
||||||
; db ? ;+15
|
|
||||||
; mem_start dd ? ;+16
|
|
||||||
; counter_sum dd ? ;+20
|
|
||||||
; counter_add dd ? ;+24
|
|
||||||
; cpu_usage dd ? ;+28
|
|
||||||
;ends
|
|
||||||
|
|
||||||
; Thread states:
|
; Thread states:
|
||||||
TSTATE_RUNNING = 0
|
TSTATE_RUNNING = 0
|
||||||
TSTATE_RUN_SUSPENDED = 1
|
TSTATE_RUN_SUSPENDED = 1
|
||||||
@ -613,7 +586,7 @@ struct WDATA
|
|||||||
draw_bgr_y dd ?
|
draw_bgr_y dd ?
|
||||||
draw_data RECT
|
draw_data RECT
|
||||||
thread dd ? ; prt APPDATA
|
thread dd ? ; prt APPDATA
|
||||||
rb 64 - 16 - 4*2 - 4*2 - 4 - 16
|
rb 12
|
||||||
ends
|
ends
|
||||||
|
|
||||||
label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3
|
label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; ;;
|
;; ;;
|
||||||
;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;;
|
;; Copyright (C) KolibriOS team 2004-2023. All rights reserved. ;;
|
||||||
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;;
|
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;;
|
||||||
;; Distributed under terms of the GNU General Public License ;;
|
;; Distributed under terms of the GNU General Public License ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -68,33 +68,26 @@ endg
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
update_counters:
|
update_counters:
|
||||||
;mov edi, [TASK_BASE]
|
|
||||||
mov esi, [current_slot]
|
mov esi, [current_slot]
|
||||||
rdtsc
|
rdtsc
|
||||||
;sub eax, [edi+TASKDATA.counter_add] ; time stamp counter add
|
sub eax, [esi + APPDATA.counter_add] ; time stamp counter add
|
||||||
;add [edi+TASKDATA.counter_sum], eax ; counter sum
|
add [esi + APPDATA.counter_sum], eax ; counter sum
|
||||||
sub eax, [esi - sizeof.APPDATA + APPDATA.counter_add] ; time stamp counter add
|
|
||||||
add [esi - sizeof.APPDATA + APPDATA.counter_sum], eax ; counter sum
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
updatecputimes:
|
updatecputimes:
|
||||||
mov ecx, [thread_count]
|
mov ecx, [thread_count]
|
||||||
;mov edi, TASK_DATA
|
|
||||||
mov esi, SLOT_BASE
|
mov esi, SLOT_BASE
|
||||||
.newupdate:
|
.newupdate:
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
;xchg eax, [edi+TASKDATA.counter_sum]
|
|
||||||
;mov [edi+TASKDATA.cpu_usage], eax
|
|
||||||
xchg eax, [esi + APPDATA.counter_sum]
|
|
||||||
;add edi, 0x20
|
|
||||||
mov [esi + APPDATA.cpu_usage], eax
|
|
||||||
add esi, sizeof.APPDATA
|
add esi, sizeof.APPDATA
|
||||||
|
xchg eax, [esi + APPDATA.counter_sum]
|
||||||
|
mov [esi + APPDATA.cpu_usage], eax
|
||||||
loop .newupdate
|
loop .newupdate
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;TODO: Надо бы убрать использование do_change_task из V86...
|
;TODO: Надо бы убрать использование do_change_task из V86...
|
||||||
; и после этого перенести обработку TASKDATA.counter_add/sum в do_change_task
|
; и после этого перенести обработку APPDATA.counter_add/sum в do_change_task
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
do_change_task:
|
do_change_task:
|
||||||
@ -266,10 +259,9 @@ SCHEDULE_HIGHER_PRIORITY = 1
|
|||||||
; keep running the current thread if other ready threads have the same or lower priority
|
; keep running the current thread if other ready threads have the same or lower priority
|
||||||
;retval:
|
;retval:
|
||||||
; ebx = address of the APPDATA for the selected task (slot-base)
|
; ebx = address of the APPDATA for the selected task (slot-base)
|
||||||
; edi = address of the TASKDATA for the selected task
|
|
||||||
; ZF = 1 if the task is the same
|
; ZF = 1 if the task is the same
|
||||||
;warning:
|
;warning:
|
||||||
; [current_slot_idx] = bh , [TASK_BASE] = edi -- as result
|
; [current_slot_idx] = bh -- as result
|
||||||
; [current_slot] is not set to new value (ebx)!!!
|
; [current_slot] is not set to new value (ebx)!!!
|
||||||
;scratched: eax,ecx
|
;scratched: eax,ecx
|
||||||
proc find_next_task
|
proc find_next_task
|
||||||
@ -296,7 +288,7 @@ proc find_next_task
|
|||||||
mov al, [ebx + APPDATA.state]
|
mov al, [ebx + APPDATA.state]
|
||||||
test al, al
|
test al, al
|
||||||
jz .task_found ; state == 0
|
jz .task_found ; state == 0
|
||||||
cmp al, 5
|
cmp al, TSTATE_WAITING
|
||||||
jne .task_next ; state == 1,2,3,4,9
|
jne .task_next ; state == 1,2,3,4,9
|
||||||
; state == 5
|
; state == 5
|
||||||
pushad ; more freedom for [APPDATA.wait_test]
|
pushad ; more freedom for [APPDATA.wait_test]
|
||||||
@ -335,8 +327,7 @@ proc find_next_task
|
|||||||
mov byte [current_slot_idx], bh
|
mov byte [current_slot_idx], bh
|
||||||
|
|
||||||
rdtsc ;call _rdtsc
|
rdtsc ;call _rdtsc
|
||||||
mov [ebx - sizeof.APPDATA + APPDATA.counter_add], eax; for next using update_counters
|
mov [ebx + APPDATA.counter_add], eax; for next using update_counters
|
||||||
;mov [edi+TASKDATA.counter_add], eax; for next using update_counters
|
|
||||||
cmp ebx, [current_slot]
|
cmp ebx, [current_slot]
|
||||||
ret
|
ret
|
||||||
.task_next:
|
.task_next:
|
||||||
|
@ -141,7 +141,7 @@ iglobal
|
|||||||
dd set_app_param ; 40-WantEvents
|
dd set_app_param ; 40-WantEvents
|
||||||
dd undefined_syscall ; 41- deprecated GetIrqOwner
|
dd undefined_syscall ; 41- deprecated GetIrqOwner
|
||||||
dd undefined_syscall ; 42- deprecated ReadIrqData
|
dd undefined_syscall ; 42- deprecated ReadIrqData
|
||||||
dd undefined_syscall ; 43-SendDeviceData
|
dd undefined_syscall ; 43- deprecated SendDeviceData
|
||||||
dd undefined_syscall ; 44- deprecated ProgramIrqs
|
dd undefined_syscall ; 44- deprecated ProgramIrqs
|
||||||
dd undefined_syscall ; 45- deprecated ReserveIrq and FreeIrq
|
dd undefined_syscall ; 45- deprecated ReserveIrq and FreeIrq
|
||||||
dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
|
dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
|
||||||
|
@ -398,7 +398,7 @@ proc create_process stdcall, app_size:dword
|
|||||||
|
|
||||||
mov edi, [tmp_task_ptab]
|
mov edi, [tmp_task_ptab]
|
||||||
stdcall map_page, edi, eax, PG_SWR
|
stdcall map_page, edi, eax, PG_SWR
|
||||||
mov ecx, 1024
|
mov ecx, PAGE_SIZE/4
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
rep stosd
|
rep stosd
|
||||||
|
|
||||||
@ -1086,14 +1086,14 @@ pid_to_appdata:
|
|||||||
mov ebx, [thread_count]
|
mov ebx, [thread_count]
|
||||||
shl ebx, BSF sizeof.APPDATA ; multiply by size
|
shl ebx, BSF sizeof.APPDATA ; multiply by size
|
||||||
; skip first process in the task table
|
; skip first process in the task table
|
||||||
|
mov ecx, SLOT_BASE
|
||||||
|
add ebx, ecx
|
||||||
.loop:
|
.loop:
|
||||||
add ecx, sizeof.APPDATA
|
add ecx, sizeof.APPDATA
|
||||||
cmp [SLOT_BASE + ecx + APPDATA.state], TSTATE_FREE
|
cmp [ecx + APPDATA.state], TSTATE_FREE
|
||||||
jz @f ;skip empty slots
|
jz @f ;skip empty slots
|
||||||
cmp [SLOT_BASE + ecx + APPDATA.tid], eax
|
cmp [ecx + APPDATA.tid], eax
|
||||||
jz .pid_found
|
jz .pid_found
|
||||||
;ecx = offset of current process info entry
|
|
||||||
;ebx = maximum permitted offset
|
|
||||||
@@:
|
@@:
|
||||||
cmp ecx, ebx
|
cmp ecx, ebx
|
||||||
jb .loop
|
jb .loop
|
||||||
|
@ -199,7 +199,7 @@ WaitEventTimeout:
|
|||||||
---------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------
|
||||||
GetEvent:
|
GetEvent:
|
||||||
Бесконечно ожидает любое событие в очереди событий текущего потока. Поток замораживается
|
Бесконечно ожидает любое событие в очереди событий текущего потока. Поток замораживается
|
||||||
путем перевода TASKDATA.state<=TSTATE_WAITING=5. Данные события (EVENT.code+5*dword)
|
путем перевода APPDATA.state<=TSTATE_WAITING=5. Данные события (EVENT.code+5*dword)
|
||||||
по получении копируются в указанный буфер. Сбрасывает байт приоритета (см. выше) в буфере.
|
по получении копируются в указанный буфер. Сбрасывает байт приоритета (см. выше) в буфере.
|
||||||
Если в полученном событии НЕ установлен MANUAL_RESET, то:
|
Если в полученном событии НЕ установлен MANUAL_RESET, то:
|
||||||
{EVENT_SIGNALED и EVENT_WATCHED по получении события сбрасываются.
|
{EVENT_SIGNALED и EVENT_WATCHED по получении события сбрасываются.
|
||||||
|
@ -2173,8 +2173,8 @@ align 4
|
|||||||
|
|
||||||
movzx edx, word[esi]
|
movzx edx, word[esi]
|
||||||
shl edx, BSF sizeof.WDATA
|
shl edx, BSF sizeof.WDATA
|
||||||
cmp byte [SLOT_BASE + edx*(sizeof.APPDATA/sizeof.WDATA) - sizeof.APPDATA + APPDATA.state], TSTATE_FREE
|
test byte [window_data + edx + WDATA.fl_wstate], WSTATE_USED
|
||||||
je .next_window
|
jz .next_window
|
||||||
|
|
||||||
mov eax, [edi + WDATA.box.top]
|
mov eax, [edi + WDATA.box.top]
|
||||||
mov ebx, [edi + WDATA.box.height]
|
mov ebx, [edi + WDATA.box.height]
|
||||||
|
@ -2229,8 +2229,7 @@ sysfn_zmodif:
|
|||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getidletime: ; 18.4 = GET IDLETIME
|
sysfn_getidletime: ; 18.4 = GET IDLETIME
|
||||||
;mov eax, [TASK_TABLE+32+TASKDATA.cpu_usage]
|
mov eax, [SLOT_BASE + sizeof.APPDATA + APPDATA.cpu_usage]
|
||||||
mov eax, [SLOT_BASE + APPDATA.cpu_usage]
|
|
||||||
mov [esp + SYSCALL_STACK.eax], eax
|
mov [esp + SYSCALL_STACK.eax], eax
|
||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
@ -2532,8 +2531,7 @@ sys_cpuusage:
|
|||||||
shl ecx, BSF sizeof.APPDATA
|
shl ecx, BSF sizeof.APPDATA
|
||||||
|
|
||||||
; +0: dword: memory usage
|
; +0: dword: memory usage
|
||||||
;mov eax, [ecx+TASK_TABLE+TASKDATA.cpu_usage]
|
mov eax, [SLOT_BASE + ecx + APPDATA.cpu_usage]
|
||||||
mov eax, [SLOT_BASE + ecx - sizeof.APPDATA + APPDATA.cpu_usage]
|
|
||||||
mov [ebx], eax
|
mov [ebx], eax
|
||||||
; +10: 11 bytes: name of the process
|
; +10: 11 bytes: name of the process
|
||||||
push ecx
|
push ecx
|
||||||
@ -2543,16 +2541,15 @@ sys_cpuusage:
|
|||||||
call memmove
|
call memmove
|
||||||
pop ecx
|
pop ecx
|
||||||
|
|
||||||
shr ecx, (BSF sizeof.APPDATA - BSF sizeof.WDATA)
|
|
||||||
; +22: address of the process in memory
|
; +22: address of the process in memory
|
||||||
; +26: size of used memory - 1
|
; +26: size of used memory - 1
|
||||||
push edi
|
push edi
|
||||||
lea edi, [ebx+12]
|
lea edi, [ebx+12]
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov edx, 0x100000*16
|
mov edx, 0x100000*16
|
||||||
cmp ecx, 1 shl BSF sizeof.WDATA
|
cmp ecx, 1 shl BSF sizeof.APPDATA
|
||||||
je .os_mem
|
je .os_mem
|
||||||
mov edx, [SLOT_BASE + ecx*(sizeof.APPDATA/sizeof.WDATA) + APPDATA.process]
|
mov edx, [SLOT_BASE + ecx + APPDATA.process]
|
||||||
mov edx, [edx + PROC.mem_used]
|
mov edx, [edx + PROC.mem_used]
|
||||||
mov eax, std_application_base_address
|
mov eax, std_application_base_address
|
||||||
.os_mem:
|
.os_mem:
|
||||||
@ -2560,39 +2557,42 @@ sys_cpuusage:
|
|||||||
lea eax, [edx-1]
|
lea eax, [edx-1]
|
||||||
stosd
|
stosd
|
||||||
|
|
||||||
|
mov edx, ecx
|
||||||
|
shr edx, (BSF sizeof.APPDATA - BSF sizeof.WDATA)
|
||||||
|
|
||||||
; +30: PID/TID
|
; +30: PID/TID
|
||||||
mov eax, [SLOT_BASE + ecx*(sizeof.APPDATA/sizeof.WDATA) + APPDATA.tid]
|
mov eax, [SLOT_BASE + ecx + APPDATA.tid]
|
||||||
stosd
|
stosd
|
||||||
|
|
||||||
; window position and size
|
; window position and size
|
||||||
push esi
|
push esi
|
||||||
lea esi, [window_data + ecx + WDATA.box]
|
lea esi, [window_data + edx + WDATA.box]
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
|
|
||||||
; Process state (+50)
|
; Process state (+50)
|
||||||
movzx eax, byte [SLOT_BASE + ecx*(sizeof.APPDATA/sizeof.WDATA) + APPDATA.state]
|
movzx eax, byte [SLOT_BASE + ecx + APPDATA.state]
|
||||||
stosd
|
stosd
|
||||||
|
|
||||||
; Window client area box
|
; Window client area box
|
||||||
lea esi, [window_data + ecx + WDATA.clientbox]
|
lea esi, [window_data + edx + WDATA.clientbox]
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
|
|
||||||
; Window state
|
; Window state
|
||||||
mov al, [window_data + ecx + WDATA.fl_wstate]
|
mov al, [window_data + edx + WDATA.fl_wstate]
|
||||||
stosb
|
stosb
|
||||||
|
|
||||||
; Event mask (+71)
|
; Event mask (+71)
|
||||||
mov EAX, dword [SLOT_BASE + ecx*(sizeof.APPDATA/sizeof.WDATA) + APPDATA.event_mask]
|
mov eax, dword [SLOT_BASE + ecx + APPDATA.event_mask]
|
||||||
stosd
|
stosd
|
||||||
|
|
||||||
; Keyboard mode (+75)
|
; Keyboard mode (+75)
|
||||||
mov al, byte [SLOT_BASE + ecx*(sizeof.APPDATA/sizeof.WDATA) + APPDATA.keyboard_mode]
|
mov al, byte [SLOT_BASE + ecx + APPDATA.keyboard_mode]
|
||||||
stosb
|
stosb
|
||||||
|
|
||||||
pop esi
|
pop esi
|
||||||
|
Loading…
Reference in New Issue
Block a user