Subversion Repositories Kolibri OS

Rev

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

Rev 2555 Rev 2614
Line 14... Line 14...
14
;;          GNU GENERAL PUBLIC LICENSE                             ;;
14
;;          GNU GENERAL PUBLIC LICENSE                             ;;
15
;;             Version 2, June- 1991                               ;;
15
;;             Version 2, June- 1991                               ;;
16
;;                                                                 ;;
16
;;                                                                 ;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 18... Line 18...
18
 
18
 
Line 19... Line 19...
19
$Revision: 2555 $
19
$Revision: 2614 $
20
 
20
 
21
ARP_NO_ENTRY            equ 0
21
ARP_NO_ENTRY            = 0
22
ARP_VALID_MAPPING       equ 1
22
ARP_VALID_MAPPING       = 1
Line 23... Line 23...
23
ARP_AWAITING_RESPONSE   equ 2
23
ARP_AWAITING_RESPONSE   = 2
24
ARP_RESPONSE_TIMEOUT    equ 3
24
ARP_RESPONSE_TIMEOUT    = 3
25
 
25
 
Line 26... Line 26...
26
ARP_REQUEST_TTL         equ 31          ; 20 s
26
ARP_REQUEST_TTL         = 31          ; 20 s
27
ARP_ENTRY_TTL           equ 937         ; 600 s
27
ARP_ENTRY_TTL           = 937         ; 600 s
Line 28... Line 28...
28
ARP_STATIC_ENTRY        equ -1
28
ARP_STATIC_ENTRY        = -1
Line 29... Line 29...
29
 
29
 
Line 30... Line 30...
30
ARP_REQ_OPCODE          equ 0x0100      ; request
30
ARP_REQ_OPCODE          = 0x0100      ; request
31
ARP_REP_OPCODE          equ 0x0200      ; reply
31
ARP_REP_OPCODE          = 0x0200      ; reply
Line 568... Line 568...
568
;
568
;
569
; OUT:  ?
569
; OUT:  ?
570
;
570
;
571
;-----------------------------------------------------------------
571
;-----------------------------------------------------------------
572
align 4
572
align 4
573
ARP_API:
573
ARP_api:
Line 574... Line 574...
574
 
574
 
575
        movzx   eax, bh
575
        movzx   eax, bh
Line 576... Line 576...
576
        shl     eax, 2
576
        shl     eax, 2
577
 
577
 
578
        test    bl, bl
578
        and     ebx, 0xff
579
        jz      .packets_tx     ; 0
579
        cmp     ebx, .number
-
 
580
        ja      .error
580
        dec     bl
581
        jmp     dword [.table + 4*ebx]
581
        jz      .packets_rx     ; 1
582
 
582
        dec     bl
583
  .table:
583
        jz      .entries        ; 2
584
        dd      .packets_tx     ; 0
584
        dec     bl
585
        dd      .packets_rx     ; 1
585
        jz      .read           ; 3
586
        dd      .entries        ; 2
586
        dec     bl
-
 
587
        jz      .write          ; 4
587
        dd      .read           ; 3
588
        dec     bl
588
        dd      .write          ; 4
Line 589... Line 589...
589
        jz      .remove         ; 5
589
        dd      .remove         ; 5
590
        dec     bl
590
  .number = ($ - .table) / 4 - 1
591
 
591
 
Line 592... Line 592...
592
.error:
592
  .error:
593
        mov     eax, -1
593
        mov     eax, -1
594
        ret
-
 
595
 
594
        ret
Line 596... Line 595...
596
.packets_tx:
595
 
597
        add     eax, ARP_PACKETS_TX
596
  .packets_tx:
598
        mov     eax, [eax]
-
 
599
        ret
597
        mov     eax, [ARP_PACKETS_TX + eax]
Line 600... Line 598...
600
 
598
        ret
601
.packets_rx:
599
 
602
        add     eax, ARP_PACKETS_RX
600
  .packets_rx: