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 |