Subversion Repositories Kolibri OS

Rev

Rev 869 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 869 Rev 907
Line 30... Line 30...
30
;;                                                                 ;;
30
;;                                                                 ;;
31
;;  See file COPYING for details                                   ;;
31
;;  See file COPYING for details                                   ;;
32
;;                                                                 ;;
32
;;                                                                 ;;
33
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 34... Line 34...
34
 
34
 
Line 35... Line 35...
35
$Revision: 869 $
35
$Revision: 907 $
36
 
36
 
37
 
37
 
Line 351... Line 351...
351
;      IPRX queue.
351
;      IPRX queue.
352
;      If no queue entry is available, the packet is silently discarded
352
;      If no queue entry is available, the packet is silently discarded
353
;      All registers may be destroyed
353
;      All registers may be destroyed
354
;
354
;
355
;***************************************************************************
355
;***************************************************************************
-
 
356
uglobal
-
 
357
  ether_IP_handler_cnt dd ?
-
 
358
endg
356
ether_IP_handler:
359
ether_IP_handler:
357
    mov     eax, EMPTY_QUEUE
360
    mov     eax, EMPTY_QUEUE
358
    call    dequeue
361
    call    dequeue
359
    cmp     ax, NO_BUFFER
362
    cmp     ax, NO_BUFFER
360
    je	    eiph00x
363
    je	    eiph00x
Line 374... Line 377...
374
    mov     ecx, IPBUFFSIZE / 4     ; Copy all of the available
377
    mov     ecx, IPBUFFSIZE / 4     ; Copy all of the available
375
			      ; data across - worse case
378
			      ; data across - worse case
376
    cld
379
    cld
377
    rep     movsd
380
    rep     movsd
Line -... Line 381...
-
 
381
 
-
 
382
;        inc     [ether_IP_handler_cnt]
-
 
383
;        DEBUGF  1, "K : ether_IP_handler (%u)\n", [ether_IP_handler_cnt]
378
 
384
 
379
    ; And finally, place the buffer in the IPRX queue
385
    ; And finally, place the buffer in the IPRX queue
380
    pop     ebx
386
    pop     ebx
381
    mov     eax, IPIN_QUEUE
387
    mov     eax, IPIN_QUEUE
Line 460... Line 466...
460
    je	    .is_ip		     ; It's IP
466
    je	    .is_ip		     ; It's IP
Line 461... Line 467...
461
 
467
 
462
    cmp     ax, ETHER_ARP
468
    cmp     ax, ETHER_ARP
Line -... Line 469...
-
 
469
    je	    .is_arp		     ; It is ARP
-
 
470
 
463
    je	    .is_arp		     ; It is ARP
471
    DEBUGF  1,"K : eth_rx - dumped (%u)\n", ax
Line 464... Line 472...
464
 
472
    inc     [dumped_rx_count]
465
    jmp     .exit		; If not IP or ARP, ignore
473
    jmp     .exit		; If not IP or ARP, ignore
466
 
474
 
467
  .is_ip:
475
  .is_ip:
468
    DEBUGF  1,"K : eth_rx - IP packet\n"
476
;    DEBUGF  1,"K : eth_rx - IP packet\n"
Line 469... Line 477...
469
    inc     dword [ip_rx_count]
477
    inc     dword [ip_rx_count]
470
    call    ether_IP_handler
478
    call    ether_IP_handler
471
    jmp     .exit
479
    jmp     .exit
472
 
480
 
Line 473... Line 481...
473
  .is_arp:
481
  .is_arp:
474
    DEBUGF  1,"K : eth_rx - ARP packet\n"
482
;    DEBUGF  1,"K : eth_rx - ARP packet\n"