353,6 → 353,9 |
; All registers may be destroyed |
; |
;*************************************************************************** |
uglobal |
ether_IP_handler_cnt dd ? |
endg |
ether_IP_handler: |
mov eax, EMPTY_QUEUE |
call dequeue |
376,6 → 379,9 |
cld |
rep movsd |
|
; inc [ether_IP_handler_cnt] |
; DEBUGF 1, "K : ether_IP_handler (%u)\n", [ether_IP_handler_cnt] |
|
; And finally, place the buffer in the IPRX queue |
pop ebx |
mov eax, IPIN_QUEUE |
462,16 → 468,18 |
cmp ax, ETHER_ARP |
je .is_arp ; It is ARP |
|
DEBUGF 1,"K : eth_rx - dumped (%u)\n", ax |
inc [dumped_rx_count] |
jmp .exit ; If not IP or ARP, ignore |
|
.is_ip: |
DEBUGF 1,"K : eth_rx - IP packet\n" |
; DEBUGF 1,"K : eth_rx - IP packet\n" |
inc dword [ip_rx_count] |
call ether_IP_handler |
jmp .exit |
|
.is_arp: |
DEBUGF 1,"K : eth_rx - ARP packet\n" |
; DEBUGF 1,"K : eth_rx - ARP packet\n" |
; At this point, the packet is still in the Ether_buffer |
call arp_handler |
|