Subversion Repositories Kolibri OS

Rev

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

Rev 2614 Rev 2621
Line 19... Line 19...
19
;;          GNU GENERAL PUBLIC LICENSE                             ;;
19
;;          GNU GENERAL PUBLIC LICENSE                             ;;
20
;;             Version 2, June 1991                                ;;
20
;;             Version 2, June 1991                                ;;
21
;;                                                                 ;;
21
;;                                                                 ;;
22
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 23... Line 23...
23
 
23
 
Line 24... Line 24...
24
$Revision: 2614 $
24
$Revision: 2621 $
25
 
25
 
Line 26... Line 26...
26
__DEBUG_LEVEL_OLD__     equ __DEBUG_LEVEL__     ; use seperate debug level for network part of kernel
26
__DEBUG_LEVEL_OLD__     equ __DEBUG_LEVEL__     ; use seperate debug level for network part of kernel
Line 587... Line 587...
587
        shr     esi, 6
587
        shr     esi, 6
Line 588... Line 588...
588
 
588
 
589
        cmp     dword [esi + NET_DRV_LIST], 0   ; check if driver is running
589
        cmp     dword [esi + NET_DRV_LIST], 0   ; check if driver is running
Line -... Line 590...
-
 
590
        je      .doesnt_exist
Line -... Line 591...
-
 
591
 
-
 
592
        mov     eax, [esi + NET_DRV_LIST]
-
 
593
 
-
 
594
        and     ebx, 0x000000ff
-
 
595
        cmp     ebx, .number
-
 
596
        ja      .doesnt_exist
-
 
597
        jmp     dword [.table + 4*ebx]
-
 
598
 
-
 
599
  .table:
-
 
600
        dd      .get_type               ; 0
-
 
601
        dd      .get_dev_name           ; 1
-
 
602
        dd      .reset                  ; 2
-
 
603
        dd      .stop                   ; 3
-
 
604
        dd      .get_ptr                ; 4
Line 590... Line 605...
590
        je      .doesnt_exist
605
        dd      .get_drv_name           ; 5
591
 
-
 
Line 592... Line 606...
592
 
606
        dd      .set_default            ; 6
593
 
607
  .number = ($ - .table) / 4 - 1
Line 594... Line -...
594
        test    bl, bl                  ; 0 = Get device type (ethernet/token ring/...)
-
 
595
        jnz     @f
608
 
596
 
-
 
Line 597... Line -...
597
        xor     eax, eax
-
 
598
        jmp     .return
609
  .get_type:                            ; 0 = Get device type (ethernet/token ring/...)
599
 
610
 
Line 600... Line 611...
600
 
611
        mov     eax, [eax + NET_DEVICE.type]
601
  @@:
612
        jmp     .return
Line 602... Line 613...
602
        dec     bl                      ; 1 = Get device name
613
 
603
        jnz     @f
614
 
Line 604... Line -...
604
 
-
 
605
        mov     esi, [esi + NET_DRV_LIST]
-
 
606
        mov     esi, [esi + NET_DEVICE.name]
615
  .get_dev_name:                        ; 1 = Get device name
607
        mov     edi, ecx
-
 
Line 608... Line -...
608
 
-
 
609
        mov     ecx, 64 ; max length
616
 
610
        repnz   movsb
617
        mov     esi, [eax + NET_DEVICE.name]
Line 611... Line -...
611
 
-
 
612
        xor     eax, eax
-
 
613
        jmp     .return
618
        mov     edi, ecx
614
 
-
 
Line 615... Line -...
615
  @@:
-
 
616
 
619
 
617
        dec     bl                      ; 2 = Reset the device
620
        mov     ecx, 64/4 ; max length
Line 618... Line -...
618
        jnz     @f
-
 
619
 
-
 
620
        mov     esi, [esi + NET_DRV_LIST]
-
 
Line 621... Line -...
621
        call    [esi + NET_DEVICE.reset]
-
 
622
        jmp     .return
621
        rep     movsd
-
 
622
 
623
 
623
        xor     eax, eax
Line 624... Line -...
624
  @@:
-
 
625
 
624
        jmp     .return
626
        dec     bl                      ; 3 = Stop driver for this device
-
 
Line 627... Line -...
627
        jnz     @f
-
 
628
 
625
 
629
        mov     esi, [esi + NET_DRV_LIST]
626
  .reset:                               ; 2 = Reset the device
Line 630... Line -...
630
        call    [esi + NET_DEVICE.unload]
-
 
631
        jmp     .return
627
 
632
 
-
 
Line 633... Line -...
633
  @@:
-
 
634
        dec     bl                      ; 4 = Get driver pointer
628
        call    [eax + NET_DEVICE.reset]
635
        jnz     @f
629
        jmp     .return
Line 636... Line -...
636
 
-
 
637
        ; ..;
-
 
638
        xor     eax, eax
-
 
639
        jmp     .return
630
 
640
 
631
  .stop:                                ; 3 = Stop driver for this device
641
 
632
 
Line 642... Line 633...
642
  @@:
633
        call    [eax + NET_DEVICE.unload]
643
        dec     bl                      ; 5 = Get driver name
634
        jmp     .return
644
        jnz     @f
635
 
Line 645... Line 636...
645
 
636
 
646
        ; ..;
637
  .get_ptr:                             ; 4 = Get driver pointer