Subversion Repositories Kolibri OS

Rev

Rev 139 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ; Include file for dumping user apps' memory through new debug BOARD
  2.  
  3. ; Max amount of bytes to be dumped
  4. IPC_BUF equ 160
  5.  
  6. ; Dump macro parameters:
  7. ;     ptr - pointer to memory dumped
  8. ;     len - dump length
  9. ;     workarea - any work area for sysfunc 9
  10. ;     run_new  - if not empty, run BOARD unless it is running already
  11.  
  12. macro Dump ptr, len, workarea,run_new
  13. {
  14.   local .exist,.lt
  15.   pusha
  16.   mov  ebx,workarea
  17.   call Board_seek
  18. if ~ run_new eq
  19.   test edx,edx
  20.   jne .exist
  21.   mcall 70,Board_seek.board_fn,0
  22.   mov  edx,eax
  23.   mcall 5,20
  24. end if
  25.  .exist:
  26.   mov  esi,len
  27.   cmp  esi,IPC_BUF
  28.   jbe  .lt
  29.   mov  esi,IPC_BUF
  30.  .lt:
  31.   mcall 60,2,edx,ptr
  32.   popa
  33. }
  34.  
  35. if used Board_seek
  36. Board_seek:
  37. ; ebx - prcinfo
  38.   xor  edx,edx
  39.   mcall 9,,-1
  40.   mov  ecx,eax
  41.   mov  esi,dword[.board_fn]
  42. .lp:
  43.   mcall 9
  44.   cmp  dword[ebx+10],esi
  45. ;  jne  .no
  46. ;  cmp  dword[ebx+42],399
  47.   je   .ok
  48. .no:
  49.   loop .lp
  50.   ret
  51. .ok:
  52.   mov  edx,[ebx+30]
  53.   ret
  54. .board_fn:
  55.         dd      7
  56.         dd      0
  57.         dd      0
  58.         dd      0
  59.         dd      0
  60.         db      '/sys/develop/BOARD',0
  61. end if
  62.