forked from KolibriOS/kolibrios
56 lines
1001 B
PHP
56 lines
1001 B
PHP
|
; Include file for dumping user apps' memory through new debug BOARD
|
||
|
|
||
|
; Max amount of bytes to be dumped
|
||
|
IPC_BUF equ 160
|
||
|
|
||
|
; Dump macro parameters:
|
||
|
; ptr - pointer to memory dumped
|
||
|
; len - dump length
|
||
|
; workarea - any work area for sysfunc 9
|
||
|
; run_new - if not empty, run BOARD unless it is running already
|
||
|
|
||
|
macro Dump ptr, len, workarea,run_new
|
||
|
{
|
||
|
local .exist,.lt
|
||
|
pusha
|
||
|
mov ebx,workarea
|
||
|
call Board_seek
|
||
|
if ~ run_new eq
|
||
|
test edx,edx
|
||
|
jne .exist
|
||
|
mcall 19,Board_seek.board_fn,0
|
||
|
mov edx,eax
|
||
|
mcall 5,20
|
||
|
end if
|
||
|
.exist:
|
||
|
mov esi,len
|
||
|
cmp esi,IPC_BUF
|
||
|
jbe .lt
|
||
|
mov esi,IPC_BUF
|
||
|
.lt:
|
||
|
mcall 60,2,edx,ptr
|
||
|
popa
|
||
|
}
|
||
|
|
||
|
if used Board_seek
|
||
|
Board_seek:
|
||
|
; ebx - prcinfo
|
||
|
xor edx,edx
|
||
|
mcall 9,,-1
|
||
|
mov ecx,eax
|
||
|
mov esi,dword[.board_fn]
|
||
|
.lp:
|
||
|
mcall 9
|
||
|
cmp dword[ebx+10],esi
|
||
|
; jne .no
|
||
|
; cmp dword[ebx+42],399
|
||
|
je .ok
|
||
|
.no:
|
||
|
loop .lp
|
||
|
ret
|
||
|
.ok:
|
||
|
mov edx,[ebx+30]
|
||
|
ret
|
||
|
.board_fn db 'BOARD '
|
||
|
end if
|