Subversion Repositories Kolibri OS

Rev

Rev 9692 | Rev 9823 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9692 Rev 9715
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2020. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2022. 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: 9692 $
8
$Revision: 9715 $
9
 
9
 
Line 707... Line 707...
707
        mov     [count], 0
707
        mov     [count], 0
708
        cmp     [buf_size], 0
708
        cmp     [buf_size], 0
709
        jz      .exit
709
        jz      .exit
Line 710... Line 710...
710
 
710
 
711
        mov     eax, [slot]
711
        mov     eax, [slot]
712
        shl     eax, 8
712
        shl     eax, BSF sizeof.APPDATA
713
        mov     eax, [SLOT_BASE+eax+APPDATA.process]
713
        mov     eax, [SLOT_BASE + eax + APPDATA.process]
714
        test    eax, eax
714
        test    eax, eax
Line 715... Line 715...
715
        jz      .exit
715
        jz      .exit
Line 770... Line 770...
770
        mov     [count], 0
770
        mov     [count], 0
771
        cmp     [buf_size], 0
771
        cmp     [buf_size], 0
772
        jz      .exit
772
        jz      .exit
Line 773... Line 773...
773
 
773
 
774
        mov     eax, [slot]
774
        mov     eax, [slot]
775
        shl     eax, 8
775
        shl     eax, BSF sizeof.APPDATA
776
        mov     eax, [SLOT_BASE+eax+APPDATA.process]
776
        mov     eax, [SLOT_BASE + eax + APPDATA.process]
777
        test    eax, eax
777
        test    eax, eax
Line 778... Line 778...
778
        jz      .exit
778
        jz      .exit
Line 862... Line 862...
862
        pushf
862
        pushf
863
        cli
863
        cli
864
        cld
864
        cld
865
        push    ebx ecx
865
        push    ebx ecx
866
        mov     eax, [slot]
866
        mov     eax, [slot]
867
        shl     eax, 8
867
        shl     eax, BSF sizeof.APPDATA
868
        mov     eax, [SLOT_BASE+eax+APPDATA.process]
868
        mov     eax, [SLOT_BASE + eax + APPDATA.process]
869
        mov     eax, [eax+PROC.dlls_list_ptr]
869
        mov     eax, [eax + PROC.dlls_list_ptr]
870
        test    eax, eax
870
        test    eax, eax
871
        jz      .no_hdll
871
        jz      .no_hdll
872
        mov     ecx, [eax+HDLL.fd]
872
        mov     ecx, [eax + HDLL.fd]
Line 968... Line 968...
968
        call    pid_to_slot
968
        call    pid_to_slot
969
        test    eax, eax
969
        test    eax, eax
970
        jz      .no_pid
970
        jz      .no_pid
Line 971... Line 971...
971
 
971
 
972
        mov     [dst_slot], eax
972
        mov     [dst_slot], eax
973
        shl     eax, 8
973
        shl     eax, BSF sizeof.APPDATA
974
        mov     edi, [eax+SLOT_BASE+APPDATA.ipc_start] ;is ipc area defined?
974
        mov     edi, [SLOT_BASE + eax + APPDATA.ipc_start] ;is ipc area defined?
975
        test    edi, edi
975
        test    edi, edi
Line 976... Line 976...
976
        jz      .no_ipc_area
976
        jz      .no_ipc_area
977
 
977
 
978
        mov     ebx, edi
978
        mov     ebx, edi
Line 979... Line 979...
979
        and     ebx, 0xFFF
979
        and     ebx, 0xFFF
980
        mov     [dst_offset], ebx
980
        mov     [dst_offset], ebx
Line 981... Line 981...
981
 
981
 
982
        mov     esi, [eax+SLOT_BASE+APPDATA.ipc_size]
982
        mov     esi, [SLOT_BASE + eax + APPDATA.ipc_size]
983
        mov     [buf_size], esi
983
        mov     [buf_size], esi
Line 1041... Line 1041...
1041
        mov     [page_tabs+ebx*4], eax
1041
        mov     [page_tabs + ebx*4], eax
1042
        invlpg  [edx]
1042
        invlpg  [edx]
Line 1043... Line 1043...
1043
 
1043
 
1044
        mov     eax, [dst_slot]
1044
        mov     eax, [dst_slot]
1045
        shl     eax, BSF sizeof.APPDATA
1045
        shl     eax, BSF sizeof.APPDATA
1046
        or      [eax+SLOT_BASE+APPDATA.occurred_events], EVENT_IPC
1046
        or      [SLOT_BASE + eax + APPDATA.occurred_events], EVENT_IPC
1047
        push    0
1047
        push    0
1048
        jmp     .ret
1048
        jmp     .ret
1049
.no_pid:
1049
.no_pid:
1050
        popf
1050
        popf
Line 1301... Line 1301...
1301
        movsd   ; SRV.entry
1301
        movsd   ; SRV.entry
1302
        movsd   ; SRV.srv_proc
1302
        movsd   ; SRV.srv_proc
1303
        ;movsd   ; SRV.srv_proc_ex
1303
        ;movsd   ; SRV.srv_proc_ex
Line 1304... Line 1304...
1304
 
1304
 
1305
        xor     eax, eax
-
 
1306
        mov     [esp+SYSCALL_STACK._eax], eax
-
 
1307
        ret
1305
        xor     eax, eax
1308
.fail:
1306
.fail:
1309
        mov     [esp+SYSCALL_STACK._eax], eax
1307
        mov     [esp + SYSCALL_STACK._eax], eax
Line 1310... Line 1308...
1310
        ret
1308
        ret