kolibrios/programs/develop/metcc/trunk/libc/mesys/cofflib.asm
victor 1391dd1d1d Added several functions (to ctype.h, stdlib.h)
"Optimised" some functions in string.h
Added dynamic libraries support based on sysfunction 68.19 (experimental)

git-svn-id: svn://kolibrios.org@215 a494cfbc-eb01-0410-851d-a64ba20cac60
2006-11-21 12:36:25 +00:00

65 lines
1.3 KiB
NASM

format ELF
include 'proc32.inc'
section '.text' executable
;extrn 'malloc' as malloc:dword
extrn 'strncmp' as strncmp:dword
extrn 'debug_out_str' as debug_out_str
;extrn 'free' as free:dword
;extrn 'realloc' as realloc:dword
;extrn 'mf_init' as mf_init:dword
public _msys_cofflib_load
;public _msys_cofflib_link
public _msys_cofflib_getproc
proc _msys_cofflib_load stdcall, name:dword
mov eax, 68
mov ebx, 19
mov ecx, [name]
int 0x40
ret
endp
;align 4
;proc _msys_cofflib_link stdcall, exp:dword, imp:dword
; stdcall debug_out_str, szFuncLink
; mov esi, [imp]
; test esi, esi
; jz .done
;.next:
; lodsd
; test eax, eax
; jz .done
; stdcall _msys_cofflib_getproc, [exp], eax
; mov [esi-4], eax
; jmp .next
;.done:
; ret
;endp
align 4
proc _msys_cofflib_getproc stdcall, exp:dword, sz_name:dword
stdcall debug_out_str, szFuncGetProc
mov edx, [exp]
.next:
test edx, edx
jz .end
stdcall strncmp, [edx], [sz_name], 16
test eax, eax
jz .ok
add edx,8
jmp .next
.ok:
mov eax, [edx+4]
.end:
ret
endp
section '.data'
szFuncGetProc db 'somebody did call GetProc',0x0d, 0x0a,0
szFuncLink db 'somebody did call Link',0x0d, 0x0a,0