Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. format ELF
  2. include 'proc32.inc'
  3. section '.text' executable
  4.  
  5. ;extrn 'malloc' as malloc:dword
  6. extrn 'strncmp' as strncmp:dword
  7. extrn 'debug_out_str' as debug_out_str
  8. ;extrn 'free' as free:dword
  9. ;extrn 'realloc' as realloc:dword
  10. ;extrn 'mf_init' as mf_init:dword
  11.  
  12. public _msys_cofflib_load
  13. ;public _msys_cofflib_link
  14. public _msys_cofflib_getproc
  15.  
  16. proc  _msys_cofflib_load stdcall, name:dword
  17.         mov eax, 68
  18.         mov ebx, 19
  19.         mov ecx, [name]
  20.         int 0x40
  21.         ret
  22. endp
  23.  
  24.  
  25. ;align 4
  26. ;proc _msys_cofflib_link stdcall, exp:dword, imp:dword
  27. ;           stdcall debug_out_str, szFuncLink
  28. ;           mov esi, [imp]
  29. ;           test esi, esi
  30. ;           jz .done
  31. ;.next:
  32. ;           lodsd
  33. ;           test eax, eax
  34. ;           jz .done
  35. ;           stdcall _msys_cofflib_getproc, [exp], eax
  36. ;           mov [esi-4], eax
  37. ;           jmp .next
  38. ;.done:
  39. ;           ret
  40. ;endp
  41.  
  42. align 4
  43. proc _msys_cofflib_getproc stdcall, exp:dword, sz_name:dword
  44.            stdcall debug_out_str,  szFuncGetProc
  45.            mov edx, [exp]
  46. .next:
  47.            test edx, edx
  48.            jz .end
  49.  
  50.            stdcall strncmp, [edx], [sz_name], 16
  51.            test eax, eax
  52.            jz .ok
  53.  
  54.            add edx,8
  55.            jmp .next
  56. .ok:
  57.            mov eax, [edx+4]
  58. .end:
  59.            ret
  60. endp
  61.  
  62. section '.data'
  63.    szFuncGetProc db 'somebody did call GetProc',0x0d, 0x0a,0
  64.    szFuncLink db 'somebody did call Link',0x0d, 0x0a,0
  65.