Subversion Repositories Kolibri OS

Rev

Rev 617 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
617 mikedld 1
 
2
		mov	esi,[import_table]
3
  .next_lib:	mov	edx,[esi]
4
		or	edx,edx
5
		jz	.exit
6
		push	esi
7
		mov	esi,[esi+4]
8
		mov	edi,s_libdir.fname
9
	    @@: lodsb
10
		stosb
11
		or	al,al
12
		jnz	@b
13
		mcall	68,19,s_libdir
14
		or	eax,eax
15
		jz	.fail
16
		stdcall dll.Link,eax,edx
17
		stdcall dll.Init,[eax+4]
18
		pop	esi
19
		add	esi,8
20
		jmp	.next_lib
21
  .exit:	xor	eax,eax
22
		ret
23
  .fail:	add	esp,4
24
		xor	eax,eax
25
		inc	eax
26
		ret
27
endp
28
29
 
30
		push	eax
31
		mov	esi,[imp]
32
		test	esi,esi
33
		jz	.done
34
  .next:	lodsd
35
		test	eax,eax
36
		jz	.done
37
		stdcall dll.GetProcAddress,[exp],eax
38
		or	eax,eax
39
		jz	@f
40
		mov	[esi-4],eax
41
		jmp	.next
42
	    @@: mov	dword[esp],0
43
  .done:	pop	eax
44
		ret
45
endp
46
47
 
48
		pushad
49
		mov	eax,mem.Alloc
50
		mov	ebx,mem.Free
51
		mov	ecx,mem.ReAlloc
52
		mov	edx,dll.Load
53
		stdcall [dllentry]
54
		popad
55
		ret
56
endp
57
58
 
59
		mov	edx,[exp]
60
		xor	eax,eax
987 mikedld 61
  .next:	or	edx,edx
62
		jz	.end
63
		cmp	dword[edx],0
64
		jz	.end
617 mikedld 65
		stdcall strcmp,[edx],[sz_name]
66
		test	eax,eax
67
		jz	.ok
68
		add	edx,8
69
		jmp	.next
70
  .ok:		mov	eax,[edx+4]
71
  .end: 	ret
72
endp
73
74
 
75
		push	esi edi
76
		mov	esi,[str1]
77
		mov	edi,[str2]
78
		xor	eax,eax
79
	    @@: lodsb
80
		scasb
81
		jne	.fail
82
		or	al,al
83
		jnz	@b
84
		jmp	.ok
85
  .fail:	or	eax,-1
86
  .ok:		pop	edi esi
87
		ret
88
endp
89
90
 
987 mikedld 91
  db '/sys/lib/'
92
  .fname rb 32
93