Subversion Repositories Kolibri OS

Rev

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