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: |