Subversion Repositories Kolibri OS

Rev

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

Rev 9800 Rev 9801
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: 9800 $
19
$Revision: 9801 $
20
 
20
 
Line 21... Line 21...
21
IPv4_MAX_FRAGMENTS              = 64
21
IPv4_MAX_FRAGMENTS              = 64
Line 85... Line 85...
85
        IPv4_packets_dumped     rd NET_DEVICES_MAX
85
        IPv4_packets_dumped     rd NET_DEVICES_MAX
Line 86... Line 86...
86
 
86
 
Line 87... Line 87...
87
        IPv4_fragments          rb IPv4_MAX_FRAGMENTS * sizeof.IPv4_FRAGMENT_slot
87
        IPv4_fragments          rb IPv4_MAX_FRAGMENTS * sizeof.IPv4_FRAGMENT_slot
-
 
88
 
Line 88... Line 89...
88
 
89
;        IPv4_routes             rd IPv4_MAX_ROUTES * sizeof.IPv4_ROUTE
Line 89... Line 90...
89
;        IPv4_routes             rd IPv4_MAX_ROUTES * sizeof.IPv4_ROUTE
90
        edi_saved               rd 1
Line 455... Line 456...
455
        je      .dump
456
        je      .dump
Line 456... Line 457...
456
 
457
 
457
        mov     esi, [esi + IPv4_FRAGMENT_slot.ptr]                     ; We found the first entry, let's calculate total size of the packet in eax, so we can allocate a buffer
458
        mov     esi, [esi + IPv4_FRAGMENT_slot.ptr]                     ; We found the first entry, let's calculate total size of the packet in eax, so we can allocate a buffer
458
        push    esi
459
        push    esi
-
 
460
        xor     eax, eax
459
        xor     eax, eax
461
        mov     [edi_saved], edi
Line 460... Line 462...
460
        or      edi, -1
462
        or      edi, -1
461
 
463
 
462
  .count_bytes:
464
  .count_bytes:
Line 551... Line 553...
551
        mov     edx, eax
553
        mov     edx, eax
552
        mov     [edx + IPv4_header.TotalLength], cx
554
        mov     [edx + IPv4_header.TotalLength], cx
553
        add     esp, 12
555
        add     esp, 12
554
        xchg    cl, ch
556
        xchg    cl, ch
555
        push    ecx edx                 ; size and pointer
557
        push    ecx edx                 ; size and pointer
-
 
558
        mov     edi, [edi_saved]
556
        jmp     .handle_it              ; edx = buf ptr, ecx = size, [esp] buf ptr, [esp+4], total size, ebx=device ptr
559
        jmp     .handle_it              ; edx = buf ptr, ecx = size, [esp] buf ptr, [esp+4], total size, ebx=device ptr
Line 557... Line 560...
557
 
560
 
558
  .destroy_slot_pop:
561
  .destroy_slot_pop:
559
        add     esp, 4
562
        add     esp, 4