Subversion Repositories Kolibri OS

Rev

Rev 278 | Rev 287 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 278 Rev 281
Line 1... Line 1...
1
DRV_ENTRY    equ  1
1
DRV_ENTRY    equ  1
2
DRV_EXIT     equ -1
2
DRV_EXIT     equ -1
3
DRV_COMPAT   equ  1  ;minimal required drivers version
3
DRV_COMPAT   equ  2  ;minimal required drivers version
4
DRV_CURRENT  equ  1  ;current drivers model version
4
DRV_CURRENT  equ  2  ;current drivers model version
Line 5... Line 5...
5
 
5
 
Line 6... Line 6...
6
DRV_VERSION equ (DRV_COMPAT shl 16) or DRV_CURRENT
6
DRV_VERSION equ (DRV_COMPAT shl 16) or DRV_CURRENT
7
 
7
 
Line 369... Line 369...
369
           mov [edx+SRV.bk], eax
369
           mov [edx+SRV.bk], eax
370
 
370
 
Line 371... Line 371...
371
           mov ecx, [.handler]
371
           mov ecx, [.handler]
372
           mov [eax+SRV.srv_proc], ecx
372
           mov [eax+SRV.srv_proc], ecx
373
	   ret
373
           ret 8
374
.fail:
374
.fail:
375
	   xor eax, eax
375
	   xor eax, eax
376
	   ret
376
           ret 8
Line 377... Line 377...
377
 
377
 
378
align 4
378
align 4
Line 379... Line 379...
379
proc get_proc stdcall, exp:dword, sz_name:dword
379
proc get_proc stdcall, exp:dword, sz_name:dword
Line 963... Line 963...
963
           xor eax, eax
963
           xor eax, eax
964
           ret
964
           ret
965
endp
965
endp
966
 
966
 
Line 967... Line -...
967
 
-
 
968
align 4
967
align 4
969
proc stop_all_services
968
proc stop_all_services
Line 970... Line 969...
970
 
969
 
971
           mov edx, [srv.fd]
970
           mov edx, [srv.fd]
Line 985... Line 984...
985
.done:
984
.done:
986
           ret
985
           ret
987
endp
986
endp
988
 
987
 
Line -... Line 988...
-
 
988
; param
-
 
989
;  eax= pid
-
 
990
;  ebx= size
-
 
991
 
-
 
992
align 4
-
 
993
create_kernel_object:
-
 
994
 
-
 
995
           push ebx
-
 
996
           call malloc
-
 
997
           pop ebx
-
 
998
           test eax, eax
-
 
999
           jz .fail
-
 
1000
 
-
 
1001
           mov ecx,[CURRENT_TASK]
-
 
1002
           shl ecx,8
-
 
1003
           add ecx, PROC_BASE+APP_OBJ_OFFSET
-
 
1004
 
-
 
1005
           mov edx, [ecx+APPOBJ.fd]
-
 
1006
           mov [eax+APPOBJ.fd], edx
-
 
1007
           mov [eax+APPOBJ.bk], ecx
-
 
1008
           mov [eax+APPOBJ.pid], ebx
-
 
1009
 
-
 
1010
           mov [ecx+APPOBJ.fd], eax
-
 
1011
           mov [edx+APPOBJ.bk], eax
-
 
1012
.fail:
-
 
1013
           ret
-
 
1014
 
-
 
1015
; param
-
 
1016
;  eax= object
-
 
1017
 
-
 
1018
align 4
-
 
1019
destroy_kernel_object:
-
 
1020
 
-
 
1021
           mov ebx, [eax+APPOBJ.fd]
-
 
1022
           mov ecx, [eax+APPOBJ.bk]
-
 
1023
           mov [ebx+APPOBJ.bk], ecx
-
 
1024
           mov [ecx+APPOBJ.fd], ebx
-
 
1025
 
-
 
1026
           xor edx, edx        ;clear common header
-
 
1027
           mov [eax], edx
-
 
1028
           mov [eax+4], edx
-
 
1029
           mov [eax+8], edx
-
 
1030
           mov [eax+12], edx
-
 
1031
           mov [eax+16], edx
-
 
1032
 
-
 
1033
           call free           ;release object memory
-
 
1034
           ret
-
 
1035
 
Line 989... Line 1036...
989
 
1036
 
990
drv_sound      db '/rd/1/drivers/unisound.obj', 0
1037
drv_sound      db '/rd/1/drivers/unisound.obj', 0
991
drv_infinity   db '/rd/1/drivers/infinity.obj', 0
1038
drv_infinity   db '/rd/1/drivers/infinity.obj', 0