Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 510 → Rev 511

/kernel/trunk/network/eth_drv/arp.inc
345,23 → 345,7
je .ip_to_mac_send_request ;if ARP-table not contain an entries, we have to request IP.
;EAX will be containing a zero, it's equal to ARP_NO_ENTRY
 
; first, check destination IP to see if it is on 'this' network.
; The test is:
; if ( destIP & subnet_mask == stack_ip & subnet_mask )
; destination is local
; else
; destination is remote, so pass to gateway
 
mov eax, [Index] ;eax=required IP
mov esi, eax
and esi, [subnet_mask]
mov ecx, [stack_ip]
and ecx, [subnet_mask]
cmp esi, ecx
je @f ;if we and target IP are located in the same network
mov eax, [gateway_ip]
@@:
 
mov ecx, dword[NumARP]
imul esi, ecx, ARP_ENTRY_SIZE ;esi=current ARP-table size
 
/kernel/trunk/network/eth_drv/ethernet.inc
279,6 → 279,23
cmp edx, 0xffffffff
je .send ; If it is broadcast, just send
 
; first, check destination IP to see if it is on 'this' network.
; The test is:
; if ( destIP & subnet_mask == stack_ip & subnet_mask )
; destination is local
; else
; destination is remote, so pass to gateway
 
mov eax, edx
and eax, [subnet_mask]
mov ecx, [stack_ip]
and ecx, [subnet_mask]
cmp eax, ecx
je .local
 
mov edx, [gateway_ip]
.local:
 
lea eax, [MACAddress] ;cause this is local variable
stdcall arp_table_manager, ARP_TABLE_IP_TO_MAC, edx, eax ;opcode,IP,MAC_ptr - Get the MAC address.