forked from KolibriOS/kolibrios
Netcfg now accept parameters, so it can automatically load network drivers on boot.
F to load first card only A to load all cards git-svn-id: svn://kolibrios.org@1253 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b599c0a70c
commit
1a07e149d0
@ -1,9 +1,47 @@
|
||||
include '../macros.inc'
|
||||
MEOS_APP_START
|
||||
;
|
||||
; Netcfg v1.02
|
||||
;
|
||||
; Application to load network drivers in KolibriOS
|
||||
;
|
||||
; By hidnplayr
|
||||
;
|
||||
|
||||
use32
|
||||
org 0x0
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; header version
|
||||
dd START ; start of code
|
||||
dd IM_END ; size of image
|
||||
dd (I_END+0x100) ; memory for app
|
||||
dd (I_END+0x100) ; esp
|
||||
dd param, 0x0 ; I_Param , I_Icon
|
||||
|
||||
type_ethernet equ 1
|
||||
|
||||
CODE
|
||||
include '../macros.inc'
|
||||
include 'proc32.inc'
|
||||
include 'struct.inc'
|
||||
|
||||
START:
|
||||
; first, check boot parameters
|
||||
|
||||
cmp byte[param], 0
|
||||
je .noparams
|
||||
|
||||
mcall 40, 0
|
||||
|
||||
|
||||
push exit
|
||||
cmp byte[param], 'A' ; A for All
|
||||
je Get_PCI_Info
|
||||
|
||||
cmp byte[param], 'F' ; F for First
|
||||
je Get_PCI_Info
|
||||
|
||||
ret
|
||||
|
||||
.noparams:
|
||||
call draw_window
|
||||
|
||||
still: mcall 10 ; wait here for event
|
||||
@ -36,7 +74,7 @@ button: ; button
|
||||
|
||||
cmp ah, 1 ; button id = 1 ?
|
||||
jne @f
|
||||
mcall -1 ; close this program
|
||||
exit: mcall -1 ; close this program
|
||||
@@:
|
||||
cmp eax,0x0000ff00
|
||||
jg load_drv
|
||||
@ -150,6 +188,9 @@ draw_window:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;* Gets the PCI Version and Last Bus
|
||||
Get_PCI_Info:
|
||||
@ -206,7 +247,11 @@ Start_Enum:
|
||||
cmp byte [PCI_Class],2
|
||||
jne nextDev
|
||||
|
||||
cmp byte[param], 0
|
||||
jne load_and_start
|
||||
|
||||
call Print_New_Device ; print device info to screen
|
||||
|
||||
nextDev:
|
||||
add byte [V_Dev], 8 ; lower 3 bits are the function number
|
||||
|
||||
@ -218,6 +263,40 @@ nextDev:
|
||||
jbe Start_Enum ; if not jump to keep searching
|
||||
ret
|
||||
|
||||
|
||||
|
||||
load_and_start:
|
||||
|
||||
call get_drv_ptr
|
||||
cmp eax, lbl_none
|
||||
je .next
|
||||
|
||||
mov ecx, eax
|
||||
mcall 68, 16
|
||||
test eax, eax
|
||||
jz .next
|
||||
mov [IOCTL.handle], eax
|
||||
|
||||
mov al, [V_Dev]
|
||||
mov [hardwareinfo.pci_dev], al
|
||||
mov al, [V_Bus]
|
||||
mov [hardwareinfo.pci_bus], al
|
||||
|
||||
mov [IOCTL.io_code], 1 ; SRV_HOOK
|
||||
mov [IOCTL.inp_size], 3
|
||||
mov [IOCTL.input], hardwareinfo
|
||||
mov [IOCTL.out_size], 0
|
||||
mov [IOCTL.output], 0
|
||||
|
||||
mcall 68, 17, IOCTL
|
||||
|
||||
.next:
|
||||
cmp byte[param], 'A'
|
||||
je nextDev
|
||||
jmp exit
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;* Print device info to screen
|
||||
Print_New_Device:
|
||||
@ -380,8 +459,12 @@ get_drv_ptr:
|
||||
|
||||
include 'vendors.inc'
|
||||
include 'drivers.inc'
|
||||
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; DATA AREA
|
||||
|
||||
|
||||
DATA
|
||||
|
||||
|
||||
@ -393,22 +476,28 @@ Form: dw 800 ; window width (no more, special for 800x600)
|
||||
title db 'Network Driver Control Center', 0
|
||||
|
||||
caption db 'Vendor Device Bus Dev Rev IRQ Company Description DRIVER',0
|
||||
;lbl_1 db 'Hardware control',0
|
||||
nonefound db 'No compatible devices were found!',0
|
||||
btn_start db 'Start device',0
|
||||
btn_reset db 'Reset device',0
|
||||
btn_stop db 'Stop device',0
|
||||
;lbl_hdw_addr db 'hardware address:',0
|
||||
;lbl_type db 'type:',0
|
||||
lbl_none db 'none',0
|
||||
;lbl_unknown db 'unknown',0
|
||||
;lbl_ethernet db 'ethernet',0
|
||||
load_error db 'Could not load driver!',0
|
||||
|
||||
devicename db 'test'
|
||||
rb 64
|
||||
db 0
|
||||
|
||||
hardwareinfo:
|
||||
.type db 1 ; pci
|
||||
.pci_bus db ?
|
||||
.pci_dev db ?
|
||||
|
||||
|
||||
IM_END:
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; UNINITIALIZED DATA AREA
|
||||
|
||||
|
||||
IOCTL:
|
||||
.handle dd ?
|
||||
@ -421,15 +510,6 @@ IOCTL:
|
||||
drivernumber db ?
|
||||
MAC dp ?
|
||||
|
||||
hardwareinfo:
|
||||
.type db 1 ; pci
|
||||
.pci_bus db ?
|
||||
.pci_dev db ?
|
||||
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; UNINITIALIZED DATA AREA
|
||||
UDATA
|
||||
|
||||
type db ?
|
||||
selected dw ?
|
||||
@ -450,5 +530,7 @@ PCI_IRQ db ?
|
||||
|
||||
Proc_Info process_information
|
||||
|
||||
param rb 1024
|
||||
|
||||
MEOS_APP_END
|
||||
|
||||
I_END:
|
Loading…
Reference in New Issue
Block a user