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... | |
#define arp_decrease_entry_ttls |
--------------------------------------------------------------—; ; arp_decrease_entry_ttls ; ; --------------------------------------------------------------—;
#define arp_init |
--------------------------------------------------------------—; ; arp_init: Resets all ARP variables. ; ; --------------------------------------------------------------—;
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 ; ; --------------------------------------------------------------—;
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 ; ; --------------------------------------------------------------—;
rd ARP_conflicts |
label arp_del_entry |
--------------------------------------------------------------—; ; arp_del_entry: Remove an entry from the ARP table. ; ; IN: esi = ptr to arp entry ; edi = device number ; ; OUT: / ; ; --------------------------------------------------------------—;
rd ARP_entries |
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: / ; ; --------------------------------------------------------------—;
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 ; ; --------------------------------------------------------------—;
label arp_output_request |
--------------------------------------------------------------—; ; arp_output_request ; ; IN: ebx = device ptr ; eax = IP ; ; OUT: scratched: probably everything ; ; --------------------------------------------------------------—;
rd ARP_packets_rx |
rd ARP_packets_tx |
rb ARP_table |