Rev 3348 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3348 | Rev 3515 | ||
---|---|---|---|
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: 3348 $ |
19 | $Revision: 3515 $ |
Line 20... | Line 20... | ||
20 | 20 | ||
Line 576... | Line 576... | ||
576 | push ecx eax edx di |
576 | push ecx eax edx di |
Line 577... | Line 577... | ||
577 | 577 | ||
578 | cmp eax, 1 shl 24 + 127 |
578 | cmp eax, 1 shl 24 + 127 |
Line 579... | Line 579... | ||
579 | je .loopback |
579 | je .loopback |
580 | 580 | ||
581 | call IPv4_dest_to_dev ; outputs device number in edi, dest ip in eax |
581 | call IPv4_route ; outputs device number in edi, dest ip in eax |
582 | call ARP_IP_to_MAC |
582 | call ARP_IP_to_MAC |
583 | test eax, 0xffff0000 ; error bits |
583 | test eax, 0xffff0000 ; error bits |
584 | jnz .arp_error |
584 | jnz .arp_error |
Line 664... | Line 664... | ||
664 | ja .too_large |
664 | ja .too_large |
Line 665... | Line 665... | ||
665 | 665 | ||
666 | sub esp, 8 |
666 | sub esp, 8 |
Line 667... | Line 667... | ||
667 | push esi eax |
667 | push esi eax |
668 | 668 | ||
Line 669... | Line 669... | ||
669 | call IPv4_dest_to_dev |
669 | call IPv4_route |
670 | call ARP_IP_to_MAC |
670 | call ARP_IP_to_MAC |
Line 850... | Line 850... | ||
850 | 850 | ||
851 | 851 | ||
852 | 852 | ||
853 | ;--------------------------------------------------------------------------- |
853 | ;--------------------------------------------------------------------------- |
854 | ; |
854 | ; |
855 | ; IPv4_dest_to_dev |
855 | ; IPv4_route |
856 | ; |
856 | ; |
857 | ; IN: eax = Destination IP |
857 | ; IN: eax = Destination IP |
858 | ; OUT: edi = device id * 4 |
858 | ; OUT: edi = device id * 4 |
859 | ; eax = ip of gateway if nescessary, unchanged otherwise |
859 | ; eax = ip of gateway if nescessary, unchanged otherwise |
860 | ; |
860 | ; |
Line 861... | Line 861... | ||
861 | ;--------------------------------------------------------------------------- |
861 | ;--------------------------------------------------------------------------- |
862 | align 4 |
862 | align 4 |
Line 863... | Line 863... | ||
863 | IPv4_dest_to_dev: |
863 | IPv4_route: |