forked from KolibriOS/kolibrios
Now NetCFG also works with PCI devices wich have multiple functions.
git-svn-id: svn://kolibrios.org@2907 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
3b09f8611d
commit
04bafecfc8
@ -22,8 +22,6 @@ use32
|
|||||||
type_ethernet equ 1
|
type_ethernet equ 1
|
||||||
|
|
||||||
include '../macros.inc'
|
include '../macros.inc'
|
||||||
include 'proc32.inc'
|
|
||||||
include 'struct.inc'
|
|
||||||
|
|
||||||
START:
|
START:
|
||||||
; first, check boot parameters
|
; first, check boot parameters
|
||||||
@ -33,8 +31,7 @@ START:
|
|||||||
|
|
||||||
mcall 40, 0
|
mcall 40, 0
|
||||||
|
|
||||||
|
push .exit
|
||||||
push .launch_zeroconf_exit
|
|
||||||
cmp byte[param], 'A' ; A for All
|
cmp byte[param], 'A' ; A for All
|
||||||
je Get_PCI_Info
|
je Get_PCI_Info
|
||||||
|
|
||||||
@ -43,14 +40,14 @@ START:
|
|||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.launch_zeroconf_exit:
|
.exit:
|
||||||
mcall 70, zeroconf
|
|
||||||
mcall -1
|
mcall -1
|
||||||
|
|
||||||
.noparams:
|
.noparams:
|
||||||
call draw_window
|
call draw_window
|
||||||
|
|
||||||
still: mcall 10 ; wait here for event
|
still:
|
||||||
|
mcall 10 ; wait here for event
|
||||||
dec eax ; redraw request ?
|
dec eax ; redraw request ?
|
||||||
jz red
|
jz red
|
||||||
dec eax ; key in buffer ?
|
dec eax ; key in buffer ?
|
||||||
@ -185,8 +182,6 @@ draw_window:
|
|||||||
mcall , 33 shl 16 + 62, , btn_reset
|
mcall , 33 shl 16 + 62, , btn_reset
|
||||||
mcall , 36 shl 16 + 82, , btn_stop
|
mcall , 36 shl 16 + 82, , btn_stop
|
||||||
|
|
||||||
; mcall , 140 shl 16 + 62, 1 shl 31 + 0x00000000 , devicename
|
|
||||||
|
|
||||||
jmp .done
|
jmp .done
|
||||||
|
|
||||||
.nonefound:
|
.nonefound:
|
||||||
@ -249,19 +244,33 @@ Start_Enum:
|
|||||||
mov cl , 0x3c ; Register to read (Get IRQ)
|
mov cl , 0x3c ; Register to read (Get IRQ)
|
||||||
@@: mcall 62 ; Read it
|
@@: mcall 62 ; Read it
|
||||||
mov [PCI_IRQ], al ; Save it
|
mov [PCI_IRQ], al ; Save it
|
||||||
;
|
|
||||||
; inc byte [total] ; one more device found
|
|
||||||
|
|
||||||
cmp byte [PCI_Class],2
|
; cmp byte [PCI_Class], 0 ; device from before class codes
|
||||||
|
; je @f
|
||||||
|
|
||||||
|
cmp byte [PCI_Class], 2 ; network controller
|
||||||
jne nextDev
|
jne nextDev
|
||||||
|
; @@:
|
||||||
|
|
||||||
cmp byte[param], 0
|
cmp byte[param], 0
|
||||||
jne load_and_start
|
jne load_and_start
|
||||||
|
|
||||||
|
mov cl, 0x0e
|
||||||
|
mcall 62
|
||||||
|
|
||||||
|
push eax
|
||||||
call Print_New_Device ; print device info to screen
|
call Print_New_Device ; print device info to screen
|
||||||
|
pop eax
|
||||||
|
test al, al
|
||||||
|
js nextDev
|
||||||
|
|
||||||
|
test byte [V_Dev], 7
|
||||||
|
jnz nextDev
|
||||||
|
|
||||||
|
or byte [V_Dev], 7
|
||||||
|
|
||||||
nextDev:
|
nextDev:
|
||||||
add byte [V_Dev], 8 ; lower 3 bits are the function number
|
inc [V_Dev] ; lower 3 bits are the function number
|
||||||
|
|
||||||
jnz Start_Enum ; jump until we reach zero
|
jnz Start_Enum ; jump until we reach zero
|
||||||
mov byte [V_Dev], 0 ; reset device number
|
mov byte [V_Dev], 0 ; reset device number
|
||||||
@ -491,23 +500,11 @@ btn_stop db 'Stop device',0
|
|||||||
lbl_none db 'none',0
|
lbl_none db 'none',0
|
||||||
load_error db 'Could not load driver!',0
|
load_error db 'Could not load driver!',0
|
||||||
|
|
||||||
devicename db 'test'
|
|
||||||
rb 64
|
|
||||||
db 0
|
|
||||||
|
|
||||||
hardwareinfo:
|
hardwareinfo:
|
||||||
.type db 1 ; pci
|
.type db 1 ; pci
|
||||||
.pci_bus db ?
|
.pci_bus db ?
|
||||||
.pci_dev db ?
|
.pci_dev db ?
|
||||||
|
|
||||||
zeroconf:
|
|
||||||
dd 7 ; launch app
|
|
||||||
dd 0 ; no flags
|
|
||||||
dd 0 ; no parameters
|
|
||||||
dd 0 ; reserved
|
|
||||||
dd 0 ; reserved
|
|
||||||
db "/sys/network/zeroconf", 0
|
|
||||||
|
|
||||||
|
|
||||||
IM_END:
|
IM_END:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user