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 |