Subversion Repositories Kolibri OS

Rev

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

Rev 3861 Rev 3884
Line 2049... Line 2049...
2049
;----------------------------------------------------
2049
;----------------------------------------------------
2050
;
2050
;
2051
; SOCKET_free
2051
; SOCKET_free
2052
;
2052
;
2053
; Free socket data memory and remove socket from the list
2053
; Free socket data memory and remove socket from the list
-
 
2054
; Caller should lock and unlock socket_mutex
2054
;
2055
;
2055
; IN:  eax = socket ptr
2056
; IN:  eax = socket ptr
2056
; OUT: /
2057
; OUT: /
2057
;
2058
;
2058
;----------------------------------------------------
2059
;----------------------------------------------------
2059
align 4
2060
align 4
2060
SOCKET_free:
2061
SOCKET_free:
Line 2061... Line 2062...
2061
 
2062
 
Line 2062... Line -...
2062
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_free: %x\n", eax
-
 
2063
 
-
 
2064
        pusha
-
 
2065
        mov     ecx, socket_mutex
-
 
2066
        call    mutex_lock
-
 
2067
        popa
2063
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_free: %x\n", eax
2068
 
2064
 
Line 2069... Line 2065...
2069
        call    SOCKET_check
2065
        call    SOCKET_check
Line 2109... Line 2105...
2109
        pop     ebx
2105
        pop     ebx
Line 2110... Line 2106...
2110
 
2106
 
Line 2111... Line 2107...
2111
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_free: success!\n"
2107
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_free: success!\n"
2112
 
-
 
2113
  .error:
-
 
2114
 
-
 
2115
        pusha
-
 
2116
        mov     ecx, socket_mutex
-
 
2117
        call    mutex_unlock
-
 
2118
        popa
2108
 
Line 2119... Line 2109...
2119
 
2109
  .error:
2120
        ret
2110
        ret
2121
 
2111
 
Line 2329... Line 2319...
2329
;
2319
;
2330
;------------------------------------------------------
2320
;------------------------------------------------------
2331
align 4
2321
align 4
2332
SOCKET_process_end:
2322
SOCKET_process_end:
Line 2333... Line -...
2333
 
-
 
2334
        pushf
-
 
2335
        cli     ; FIXME
-
 
2336
 
2323
 
Line 2337... Line 2324...
2337
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_process_end: %x\n", edx
2324
        DEBUGF  DEBUG_NETWORK_VERBOSE, "SOCKET_process_end: %x\n", edx
2338
 
2325
 
2339
        pusha
2326
        pusha
Line 2358... Line 2345...
2358
        mov     [ebx + SOCKET.PID], 0
2345
        mov     [ebx + SOCKET.PID], 0
2359
        mov     eax, ebx
2346
        mov     eax, ebx
2360
        mov     ebx, [ebx + SOCKET.NextPtr]
2347
        mov     ebx, [ebx + SOCKET.NextPtr]
Line 2361... Line 2348...
2361
 
2348
 
2362
        pusha
-
 
2363
        mov     ecx, socket_mutex
-
 
2364
        call    mutex_unlock
-
 
2365
        popa
-
 
2366
 
-
 
2367
        pusha
2349
        pusha
2368
        cmp     [eax + SOCKET.Domain], AF_INET4
2350
        cmp     [eax + SOCKET.Domain], AF_INET4
Line 2369... Line 2351...
2369
        jne     .free
2351
        jne     .free
2370
 
2352
 
Line 2377... Line 2359...
2377
  .free:
2359
  .free:
2378
        call    SOCKET_free
2360
        call    SOCKET_free
Line 2379... Line 2361...
2379
 
2361
 
2380
  .closed:
2362
  .closed:
2381
        popa
-
 
2382
 
-
 
2383
        pusha
-
 
2384
        mov     ecx, socket_mutex
-
 
2385
        call    mutex_lock
-
 
2386
        popa
-
 
2387
 
2363
        popa
Line 2388... Line 2364...
2388
        jmp     .next_socket_test
2364
        jmp     .next_socket_test
2389
 
2365
 
Line 2390... Line 2366...
2390
  .done:
2366
  .done:
2391
        pop     ebx
2367
        pop     ebx
2392
 
2368
 
2393
        pusha
2369
        pusha
Line 2394... Line -...
2394
        mov     ecx, socket_mutex
-
 
2395
        call    mutex_unlock
-
 
2396
        popa
2370
        mov     ecx, socket_mutex