Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5165 → Rev 5166

/programs/network/netcfg/netcfg.asm
224,10 → 224,9
mcall 62 ; get ID's
 
cmp ax, 0 ; Vendor ID should not be 0 or 0xFFFF
je nextDev ; check next device if nothing exists here
 
je .nextDev ; check next device if nothing exists here
cmp ax, 0xffff ;
je nextDev ;
je .nextDev ;
 
mov [PCI_Vendor], ax ; There is a device here, save the ID's
shr eax, 16 ;
238,50 → 237,57
mov cl, 0x08 ; Register to read (Get Revision)
mcall 62 ; Read it
mov [PCI_Rev], al ; Save it
 
mov cl, 0x0b ; Register to read (Get class)
mcall 62 ; Read it
mov [PCI_Class], al ; Save it
mov [PCI_Class], al ; Save it
mov cl, 0x0a ; Register to read (Get Subclass)
mcall 62 ; Read it
mov [PCI_SubClass], al ; Save it
 
mov cl, 0x09 ; Register to read (Get Interface)
mcall 62 ; Read it
mov [PCI_Interface], al ; Save it
 
mov cl, 0x3c ; Register to read (Get IRQ)
@@: mcall 62 ; Read it
mcall 62 ; Read it
mov [PCI_IRQ], al ; Save it
 
; Could it be a network card?
cmp [PCI_Class], 2 ; network controller
je @f
je .found
 
cmp [PCI_Class], 6 ; bridge type device
jne nextDev
jne .nextDev
cmp [PCI_SubClass], 0x80 ; PCI-other bridge (for nvidia chipset)
jne nextDev
jne .nextDev
cmp [PCI_Vendor], 0x10DE ; nvidia
jne nextDev
@@:
jne .nextDev
 
cmp byte[param], 0
.found:
cmp byte[param], 0 ; Load network driver immediately?
jne load_and_start
 
call Print_New_Device ; print device info to screen
 
.nextDev:
test [V_Dev], 7
jnz .nextFn
 
; Is this a multifunction device?
mov bl, 4 ; Read config byte
mov bh, [V_Bus] ; Bus #
mov ch, [V_Dev] ; Device # on bus
mov cl, 0x0e
mcall 62
push eax
call Print_New_Device ; print device info to screen
pop eax
test al, al
js nextDev
js .nextFn
 
nextdev2:
test [V_Dev], 7
jnz nextDev
; Not a multifunction device, go to the next device
or [V_Dev], 7
 
nextDev:
.nextFn:
inc [V_Dev] ; lower 3 bits are the function number
jnz Start_Enum ; jump until we reach zero
 
321,7 → 327,7
 
.next:
cmp byte[param], 'A'
je nextdev2
je Start_Enum.nextDev
jmp exit