Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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