KolibriOS kernel
ARP.inc File Reference

Classes

struct  ARP_entry
 
struct  ARP_header
 

Macros

#define arp_init
 --------------------------------------------------------------—; ; arp_init: Resets all ARP variables. ; ; --------------------------------------------------------------—; More...
 
#define arp_decrease_entry_ttls
 --------------------------------------------------------------—; ; arp_decrease_entry_ttls ; ; --------------------------------------------------------------—; More...
 

Variables

rb ARP_table
 
rd ARP_entries
 
rd ARP_packets_tx
 
rd ARP_packets_rx
 
rd ARP_conflicts
 
label arp_input
 --------------------------------------------------------------—; ; arp_input ; ; IN: [esp] = Pointer to buffer ; [esp+4] = size of buffer ; ecx = packet size (without ethernet header) ; edx = packet ptr ; ebx = device ptr ; ; OUT: / ; ; --------------------------------------------------------------—; More...
 
label arp_output_request
 --------------------------------------------------------------—; ; arp_output_request ; ; IN: ebx = device ptr ; eax = IP ; ; OUT: scratched: probably everything ; ; --------------------------------------------------------------—; More...
 
label arp_add_entry
 --------------------------------------------------------------—; ; arp_add_entry: Add or update an entry in the ARP table. ; ; IN: esi = ptr to entry (can easily be made on the stack) ; edi = device num*4 ; ; OUT: eax = entry number on success ; eax = -1 on error ; esi = ptr to newly created entry ; ; --------------------------------------------------------------—; More...
 
label arp_del_entry
 --------------------------------------------------------------—; ; arp_del_entry: Remove an entry from the ARP table. ; ; IN: esi = ptr to arp entry ; edi = device number ; ; OUT: / ; ; --------------------------------------------------------------—; More...
 
label arp_ip_to_mac
 --------------------------------------------------------------—; ; arp_ip_to_mac: Translate an IP address to a MAC address. ; ; IN: eax = IPv4 address ; edi = device number * 4 ; ; OUT: eax = -1 on error ; eax = -2 when request send ; eax = first two bytes of mac on success ; ebx = last four bytes of mac on success ; edi = unchanged ; ; --------------------------------------------------------------—; More...
 
label arp_api
 --------------------------------------------------------------—; ; arp_api: Part of system function 76. ; ; IN: bl = subfunction number ; bh = device number ; ecx, edx, .. depends on subfunction ; ; OUT: depends on subfunction ; ; --------------------------------------------------------------—; More...
 

Macro Definition Documentation

◆ arp_decrease_entry_ttls

#define arp_decrease_entry_ttls

--------------------------------------------------------------—; ; arp_decrease_entry_ttls ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:91

◆ arp_init

#define arp_init

--------------------------------------------------------------—; ; arp_init: Resets all ARP variables. ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:77

Variable Documentation

◆ arp_add_entry

label arp_add_entry

--------------------------------------------------------------—; ; arp_add_entry: Add or update an entry in the ARP table. ; ; IN: esi = ptr to entry (can easily be made on the stack) ; edi = device num*4 ; ; OUT: eax = entry number on success ; eax = -1 on error ; esi = ptr to newly created entry ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:368

◆ arp_api

label arp_api

--------------------------------------------------------------—; ; arp_api: Part of system function 76. ; ; IN: bl = subfunction number ; bh = device number ; ecx, edx, .. depends on subfunction ; ; OUT: depends on subfunction ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:596

◆ ARP_conflicts

rd ARP_conflicts
Initial value
NET_DEVICES_MAX
Source
network/ARP.inc:65

◆ arp_del_entry

label arp_del_entry

--------------------------------------------------------------—; ; arp_del_entry: Remove an entry from the ARP table. ; ; IN: esi = ptr to arp entry ; edi = device number ; ; OUT: / ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:437

◆ ARP_entries

rd ARP_entries
Initial value
NET_DEVICES_MAX
Source
network/ARP.inc:62

◆ arp_input

label arp_input

--------------------------------------------------------------—; ; arp_input ; ; IN: [esp] = Pointer to buffer ; [esp+4] = size of buffer ; ecx = packet size (without ethernet header) ; edx = packet ptr ; ebx = device ptr ; ; OUT: / ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:167

◆ arp_ip_to_mac

label arp_ip_to_mac

--------------------------------------------------------------—; ; arp_ip_to_mac: Translate an IP address to a MAC address. ; ; IN: eax = IPv4 address ; edi = device number * 4 ; ; OUT: eax = -1 on error ; eax = -2 when request send ; eax = first two bytes of mac on success ; ebx = last four bytes of mac on success ; edi = unchanged ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:486

◆ arp_output_request

label arp_output_request

--------------------------------------------------------------—; ; arp_output_request ; ; IN: ebx = device ptr ; eax = IP ; ; OUT: scratched: probably everything ; ; --------------------------------------------------------------—;

Source
network/ARP.inc:309

◆ ARP_packets_rx

rd ARP_packets_rx
Initial value
NET_DEVICES_MAX
Source
network/ARP.inc:64

◆ ARP_packets_tx

rd ARP_packets_tx
Initial value
NET_DEVICES_MAX
Source
network/ARP.inc:63

◆ ARP_table

rb ARP_table
Initial value
NET_DEVICES_MAX*(ARP_TABLE_SIZE * sizeof.ARP_entry)
Source
network/ARP.inc:60