69 lines
887 B
PHP
69 lines
887 B
PHP
;; File: dev.inc
|
|
|
|
include 'at/cmos.inc'
|
|
include 'at/com.inc'
|
|
include 'at/ne2k.inc'
|
|
include 'at/pit.inc'
|
|
include 'at/kbd.inc'
|
|
include 'at/cga.inc'
|
|
include 'at/ata.inc'
|
|
include 'at/floppy.inc'
|
|
|
|
struc Device {
|
|
.name db 8 dup(?)
|
|
.init dd ?
|
|
}
|
|
DEFN Device
|
|
|
|
struc BlkDev {
|
|
.open dd ?
|
|
.strategy dd ?
|
|
.ioctl dd ?
|
|
.close dd ?
|
|
.dump dd ?
|
|
.psize dd ?
|
|
}
|
|
|
|
struc CharDev {
|
|
.open dd ?
|
|
.close dd ?
|
|
.read dd ?
|
|
.write dd ?
|
|
.ioctl dd ?
|
|
.select dd ?
|
|
.stop dd ?
|
|
.mmap dd ?
|
|
.reset dd ?
|
|
}
|
|
|
|
aBlockDevices:
|
|
dd floppy_bdevsw
|
|
.end:
|
|
|
|
aCharDevices:
|
|
dd console_cdevws
|
|
dd com_cdevsw
|
|
.end:
|
|
|
|
aDevices:
|
|
dd floppy_device
|
|
dd kbd_device
|
|
dd console_device
|
|
dd com_device
|
|
dd ne2k_device
|
|
dd ata_device
|
|
.end:
|
|
|
|
dev_init:
|
|
mov ecx, aDevices
|
|
@@:
|
|
mov eax, [ecx]
|
|
mov eax, [eax + Device.init]
|
|
push ecx
|
|
call eax
|
|
pop ecx
|
|
add ecx, 4
|
|
cmp ecx, aDevices.end
|
|
jb @b
|
|
|
|
ret
|