Rev 1249 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1249 | Rev 1251 | ||
---|---|---|---|
Line 15... | Line 15... | ||
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 | 19 | ||
20 | $Revision: 1249 $ |
20 | $Revision: 1251 $ |
21 | 21 | ||
Line 343... | Line 343... | ||
343 | 343 | ||
344 | mov ecx, [NumARP] |
344 | mov ecx, [NumARP] |
345 | test ecx, ecx |
345 | test ecx, ecx |
Line 346... | Line 346... | ||
346 | jz .add |
346 | jz .add |
347 | 347 | ||
348 | mov eax, dword[esp + ARP_ENTRY.MAC] |
348 | mov eax, dword[esp + 4 + ARP_ENTRY.MAC] |
Line 349... | Line 349... | ||
349 | mov bx , word[esp + ARP_ENTRY.MAC + 4] |
349 | mov bx , word[esp + 4 + ARP_ENTRY.MAC + 4] |
350 | mov esi, ARPTable |
350 | mov esi, ARPTable |
351 | 351 | ||
352 | .loop: |
352 | .loop: |
353 | cmp dword [esi + ARP_ENTRY.MAC], eax |
353 | cmp dword [esi + ARP_ENTRY.MAC], eax |
Line 354... | Line 354... | ||
354 | jne .maybe_next |
354 | jne .maybe_next |
355 | cmp word [esi + ARP_ENTRY.MAC + 4], bx |
355 | cmp word [esi + ARP_ENTRY.MAC + 4], bx |
356 | jne .maybe_next |
356 | jne .maybe_next |
357 | 357 | ||
358 | cmp dword[esi + ARP_ENTRY.TTL], 0xFFFF ; static entry |
358 | cmp dword[esi + ARP_ENTRY.TTL], 0xFFFF ; static entry |
Line 359... | Line 359... | ||
359 | jne .notstatic |
359 | jne .notstatic |
360 | cmp dword[esp + ARP_ENTRY.TTL], 0xFFFF |
360 | cmp dword[esp + 4 + ARP_ENTRY.TTL], 0xFFFF |
Line 384... | Line 384... | ||
384 | 384 | ||
385 | inc [NumARP] |
385 | inc [NumARP] |
Line 386... | Line 386... | ||
386 | pop eax |
386 | pop eax |
387 | - | ||
388 | .exit: |
- | |
389 | pop ebx ; return addr |
387 | |
390 | add esp, ARP_ENTRY.size |
388 | .exit: |
Line 391... | Line 389... | ||
391 | DEBUGF 1,"Exiting\n" |
389 | DEBUGF 1,"Exiting\n" |
Line 392... | Line 390... | ||
392 | jmp ebx |
390 | ret ARP_ENTRY.size |
Line 637... | Line 635... | ||
637 | ; esi = pointer to buffer |
635 | ; esi = pointer to buffer |
638 | sub esp, ARP_ENTRY.size |
636 | sub esp, ARP_ENTRY.size |
639 | mov edi, esp |
637 | mov edi, esp |
640 | mov ecx, ARP_ENTRY.size/2 |
638 | mov ecx, ARP_ENTRY.size/2 |
641 | rep movsw |
639 | rep movsw |
642 | jmp ARP_add_entry ;out: eax = entry number, -1 on error |
640 | call ARP_add_entry ;out: eax = entry number, -1 on error |
- | 641 | ret |
|
Line 643... | Line 642... | ||
643 | 642 | ||
644 | .remove: |
643 | .remove: |
645 | ; ecx = # entry |
644 | ; ecx = # entry |
646 | mov esi, ecx |
645 | mov esi, ecx |