Rev 9440 | Rev 9692 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9440 | Rev 9567 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2020. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2020. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License. ;; |
4 | ;; Distributed under terms of the GNU General Public License. ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 9440 $ |
8 | $Revision: 9567 $ |
9 | 9 | ||
Line 32... | Line 32... | ||
32 | @@: |
32 | @@: |
33 | call change_task |
33 | call change_task |
34 | jmp .wait |
34 | jmp .wait |
35 | endp |
35 | endp |
Line 36... | Line -... | ||
36 | - | ||
37 | align 4 |
- | |
38 | proc pci_read32 stdcall, bus:dword, devfn:dword, reg:dword |
- | |
39 | push ebx |
- | |
40 | xor eax, eax |
- | |
41 | xor ebx, ebx |
- | |
42 | mov ah, byte [bus] |
- | |
43 | mov al, 6 |
- | |
44 | mov bh, byte [devfn] |
- | |
45 | mov bl, byte [reg] |
- | |
46 | call pci_read_reg |
- | |
47 | pop ebx |
- | |
48 | ret |
- | |
Line 49... | Line -... | ||
49 | endp |
- | |
50 | - | ||
51 | align 4 |
- | |
52 | proc pci_read16 stdcall, bus:dword, devfn:dword, reg:dword |
- | |
53 | push ebx |
- | |
54 | xor eax, eax |
- | |
55 | xor ebx, ebx |
- | |
56 | mov ah, byte [bus] |
- | |
57 | mov al, 5 |
- | |
58 | mov bh, byte [devfn] |
- | |
59 | mov bl, byte [reg] |
- | |
60 | call pci_read_reg |
- | |
61 | pop ebx |
- | |
62 | ret |
- | |
63 | endp |
- | |
64 | - | ||
65 | align 4 |
- | |
66 | proc pci_read8 stdcall, bus:dword, devfn:dword, reg:dword |
- | |
67 | push ebx |
- | |
68 | xor eax, eax |
- | |
69 | xor ebx, ebx |
- | |
70 | mov ah, byte [bus] |
- | |
71 | mov al, 4 |
- | |
72 | mov bh, byte [devfn] |
- | |
73 | mov bl, byte [reg] |
- | |
74 | call pci_read_reg |
- | |
75 | pop ebx |
- | |
76 | ret |
- | |
77 | endp |
- | |
78 | - | ||
79 | align 4 |
- | |
80 | proc pci_write8 stdcall, bus:dword, devfn:dword, reg:dword, val:dword |
- | |
81 | push ebx |
- | |
82 | xor eax, eax |
- | |
83 | xor ebx, ebx |
- | |
84 | mov ah, byte [bus] |
- | |
85 | mov al, 8 |
- | |
86 | mov bh, byte [devfn] |
- | |
87 | mov bl, byte [reg] |
- | |
88 | mov ecx, [val] |
- | |
89 | call pci_write_reg |
- | |
90 | pop ebx |
- | |
91 | ret |
- | |
92 | endp |
- | |
93 | - | ||
94 | align 4 |
- | |
95 | proc pci_write16 stdcall, bus:dword, devfn:dword, reg:dword, val:dword |
- | |
96 | push ebx |
- | |
97 | xor eax, eax |
- | |
98 | xor ebx, ebx |
- | |
99 | mov ah, byte [bus] |
- | |
100 | mov al, 9 |
- | |
101 | mov bh, byte [devfn] |
- | |
102 | mov bl, byte [reg] |
- | |
103 | mov ecx, [val] |
- | |
104 | call pci_write_reg |
- | |
105 | pop ebx |
- | |
106 | ret |
- | |
107 | endp |
- | |
108 | - | ||
109 | align 4 |
- | |
110 | proc pci_write32 stdcall, bus:dword, devfn:dword, reg:dword, val:dword |
- | |
111 | push ebx |
- | |
112 | xor eax, eax |
- | |
113 | xor ebx, ebx |
- | |
114 | mov ah, byte [bus] |
- | |
115 | mov al, 10 |
- | |
116 | mov bh, byte [devfn] |
- | |
117 | mov bl, byte [reg] |
- | |
118 | mov ecx, [val] |
- | |
119 | call pci_write_reg |
- | |
120 | pop ebx |
- | |
Line 121... | Line 36... | ||
121 | ret |
36 | |
122 | endp |
37 | |
123 | 38 | ||
124 | handle equ IOCTL.handle |
39 | handle equ IOCTL.handle |
Line 315... | Line 230... | ||
315 | pop ebx |
230 | pop ebx |
316 | ret |
231 | ret |
317 | endp |
232 | endp |
Line 318... | Line 233... | ||
318 | 233 | ||
- | 234 | align 4 |
|
- | 235 | stop_all_services: ;used in shutdown system |
|
- | 236 | push ebp |
|
- | 237 | mov edx, [srv.fd] |
|
- | 238 | .next: |
|
- | 239 | cmp edx, srv.fd-SRV.fd |
|
- | 240 | je .done |
|
- | 241 | cmp [edx+SRV.magic], ' SRV' |
|
- | 242 | jne .next |
|
- | 243 | cmp [edx+SRV.size], sizeof.SRV |
|
- | 244 | jne .next |
|
- | 245 | ||
- | 246 | mov ebx, [edx+SRV.entry] |
|
- | 247 | mov edx, [edx+SRV.fd] |
|
- | 248 | test ebx, ebx |
|
- | 249 | jz .next |
|
- | 250 | ||
- | 251 | push edx |
|
- | 252 | mov ebp, esp |
|
- | 253 | push 0 |
|
- | 254 | push DRV_EXIT |
|
- | 255 | call ebx ;stdcall |
|
- | 256 | mov esp, ebp |
|
- | 257 | pop edx |
|
- | 258 | jmp .next |
|
- | 259 | .done: |
|
- | 260 | pop ebp |
|
- | 261 | ret |
|
- | 262 | ||
319 | align 4 |
263 | align 4 |
Line 320... | Line 264... | ||
320 | proc get_proc stdcall, exp:dword, sz_name:dword |
264 | proc get_proc stdcall, exp:dword, sz_name:dword |
321 | 265 | ||
322 | mov edx, [exp] |
266 | mov edx, [exp] |
Line 1357... | Line 1301... | ||
1357 | call destroy_hdll |
1301 | call destroy_hdll |
1358 | jmp .loop |
1302 | jmp .loop |
1359 | .ret: |
1303 | .ret: |
1360 | ret |
1304 | ret |
Line 1361... | Line -... | ||
1361 | - | ||
1362 | align 4 |
- | |
1363 | stop_all_services: |
- | |
1364 | push ebp |
- | |
1365 | mov edx, [srv.fd] |
- | |
1366 | .next: |
- | |
1367 | cmp edx, srv.fd-SRV.fd |
- | |
1368 | je .done |
- | |
1369 | cmp [edx+SRV.magic], ' SRV' |
- | |
1370 | jne .next |
- | |
1371 | cmp [edx+SRV.size], sizeof.SRV |
- | |
1372 | jne .next |
- | |
1373 | - | ||
1374 | mov ebx, [edx+SRV.entry] |
- | |
1375 | mov edx, [edx+SRV.fd] |
- | |
1376 | test ebx, ebx |
- | |
1377 | jz .next |
- | |
1378 | - | ||
1379 | push edx |
- | |
1380 | mov ebp, esp |
- | |
1381 | push 0 |
- | |
1382 | push -1 |
- | |
1383 | call ebx |
- | |
1384 | mov esp, ebp |
- | |
1385 | pop edx |
- | |
1386 | jmp .next |
- | |
1387 | .done: |
- | |
1388 | pop ebp |
- | |
1389 | ret |
- | |
1390 | 1305 | ||
1391 | ; param |
1306 | ; param |
1392 | ; eax= size |
1307 | ; eax= size |
Line 1393... | Line 1308... | ||
1393 | ; ebx= pid |
1308 | ; ebx= pid |