Subversion Repositories Kolibri OS

Rev

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

Rev 2914 Rev 2924
Line 14... Line 14...
14
;;          GNU GENERAL PUBLIC LICENSE                             ;;
14
;;          GNU GENERAL PUBLIC LICENSE                             ;;
15
;;             Version 2, June 1991                                ;;
15
;;             Version 2, June 1991                                ;;
16
;;                                                                 ;;
16
;;                                                                 ;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 18... Line 18...
18
 
18
 
Line 19... Line 19...
19
$Revision: 2914 $
19
$Revision: 2924 $
20
 
-
 
21
MAX_FRAGMENTS                   = 64
-
 
Line 22... Line 20...
22
MAX_IP                          = MAX_NET_DEVICES
20
 
Line 23... Line 21...
23
IP_MAX_INTERFACES               = MAX_IP
21
MAX_FRAGMENTS                   = 64
24
 
22
 
Line 58... Line 56...
58
 
56
 
59
 
57
 
Line 60... Line 58...
60
align 4
58
align 4
61
uglobal
59
uglobal
62
 
60
 
63
        IP_LIST         rd MAX_IP
61
        IP_LIST         rd MAX_NET_DEVICES
64
        SUBNET_LIST     rd MAX_IP
62
        SUBNET_LIST     rd MAX_NET_DEVICES
Line 65... Line 63...
65
        DNS_LIST        rd MAX_IP
63
        DNS_LIST        rd MAX_NET_DEVICES
66
        GATEWAY_LIST    rd MAX_IP
64
        GATEWAY_LIST    rd MAX_NET_DEVICES
Line 67... Line 65...
67
        BROADCAST_LIST  rd MAX_IP
65
        BROADCAST_LIST  rd MAX_NET_DEVICES
68
 
66
 
Line 82... Line 80...
82
;-----------------------------------------------------------------
80
;-----------------------------------------------------------------
83
macro   IPv4_init {
81
macro   IPv4_init {
Line 84... Line 82...
84
 
82
 
85
        xor     eax, eax
83
        xor     eax, eax
86
        mov     edi, IP_LIST
84
        mov     edi, IP_LIST
87
        mov     ecx, 7*MAX_IP + (sizeof.FRAGMENT_slot*MAX_FRAGMENTS)/4
85
        mov     ecx, 7*MAX_NET_DEVICES + (sizeof.FRAGMENT_slot*MAX_FRAGMENTS)/4
Line 88... Line 86...
88
        rep     stosd
86
        rep     stosd
Line 540... Line 538...
540
        cmp     [esi + FRAGMENT_slot.DstIP], edx
538
        cmp     [esi + FRAGMENT_slot.DstIP], edx
541
        je      .found_slot
539
        je      .found_slot
542
  .try_next:
540
  .try_next:
543
        add     esi, sizeof.FRAGMENT_slot
541
        add     esi, sizeof.FRAGMENT_slot
544
        loop    .find_slot
542
        loop    .find_slot
545
;        pop     edx ebx
-
 
546
        or      esi, -1
-
 
547
;        ret
-
 
Line -... Line 543...
-
 
543
 
548
 
544
        or      esi, -1
549
  .found_slot:
545
  .found_slot:
550
        pop     edx ecx ebx eax
546
        pop     edx ecx ebx eax
Line 867... Line 863...
867
 
863
 
868
        cmp     eax, 0xffffffff
864
        cmp     eax, 0xffffffff
Line 869... Line 865...
869
        je      .broadcast
865
        je      .broadcast
870
 
866
 
871
        xor     edi, edi
867
        xor     edi, edi
872
        mov     ecx, MAX_IP
868
        mov     ecx, MAX_NET_DEVICES
873
  .loop:
869
  .loop:
874
        mov     ebx, [IP_LIST+edi]
870
        mov     ebx, [IP_LIST+edi]
875
        and     ebx, [SUBNET_LIST+edi]
871
        and     ebx, [SUBNET_LIST+edi]