/kernel/trunk/core/taskman.inc |
---|
550,7 → 550,7 |
xor edx, edx |
push edx |
mov eax, 0x1 |
mov eax, 0x2 |
mov ebx, [pg_dir] |
.loop: |
;eax = current slot of process |
/kernel/trunk/core/dll.inc |
---|
142,11 → 142,7 |
cmp [edi+SRV.size], sizeof.SRV |
jne .fail |
; stdcall [edi+SRV.srv_proc], esi |
mov eax, [edi+SRV.srv_proc] |
test eax, eax |
jz .fail |
stdcall eax, esi |
stdcall [edi+SRV.srv_proc], esi |
ret |
.fail: |
xor eax, eax |
178,11 → 174,7 |
cmp [eax+SRV.size], sizeof.SRV |
jne .fail |
; stdcall [eax+SRV.srv_proc], ecx |
mov eax, [eax+SRV.srv_proc] |
test eax, eax |
jz .fail |
stdcall eax, ecx |
stdcall [eax+SRV.srv_proc], ecx |
ret |
.fail: |
or eax, -1 |
221,31 → 213,9 |
ret |
endp |
reg_service: |
xor eax, eax |
mov ecx, [esp+8] |
jecxz .nothing |
push sizeof.SRV |
push ecx |
pushd [esp+12] |
call reg_service_ex |
.nothing: |
ret 8 |
align 4 |
proc reg_service stdcall, name:dword, handler:dword |
reg_usb_driver: |
push sizeof.USBSRV |
pushd [esp+12] |
pushd [esp+12] |
call reg_service_ex |
test eax, eax |
jz .nothing |
mov ecx, [esp+12] |
mov [eax+USBSRV.usb_func], ecx |
.nothing: |
ret 12 |
proc reg_service_ex stdcall, name:dword, handler:dword, srvsize:dword |
push ebx |
xor eax, eax |
253,10 → 223,10 |
cmp [name], eax |
je .fail |
; cmp [handler], eax |
; je .fail |
cmp [handler], eax |
je .fail |
mov eax, [srvsize] |
mov eax, sizeof.SRV |
call malloc |
test eax, eax |
jz .fail |
/kernel/trunk/kernel.asm |
---|
805,8 → 805,6 |
stdcall load_driver, szVidintel |
call usb_init |
; SET PRELIMINARY WINDOW STACK AND POSITIONS |
mov esi, boot_windefs |
/kernel/trunk/const.inc |
---|
634,17 → 634,6 |
srv_proc_ex dd ? ;+0x2C ;kernel mode service handler |
ends |
struct USBSRV |
srv SRV |
usb_func dd ? |
ends |
struct USBFUNC |
strucsize dd ? |
add_device dd ? |
device_disconnect dd ? |
ends |
DRV_ENTRY equ 1 |
DRV_EXIT equ -1 |
/kernel/trunk/bus/usb/ehci.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/uhci.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/memory.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/pipe.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/hub.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/scheduler.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/protocol.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/ohci.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/hccommon.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/bus/usb/init.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/docs/usbapi.txt |
---|
File deleted |
/kernel/trunk/drivers/usbhid.asm |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/drivers/usbstor.asm |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/drivers/fdo.inc |
---|
File deleted |
Property changes: |
Deleted: svn:eol-style |
-native |
\ No newline at end of property |
/kernel/trunk/drivers/imports.inc |
---|
97,14 → 97,6 |
GetDisplay,\ |
SetScreen,\ |
\ |
RegUSBDriver,\ |
USBOpenPipe,\ |
USBNormalTransferAsync,\ |
USBControlTransferAsync,\ |
\ |
DiskAdd,\ |
DiskMediaChanged,\ |
DiskDel,\ |
\ |
TimerHS,\ |
CancelTimerHS |
DiskDel |
/kernel/trunk/kernel32.inc |
---|
220,9 → 220,6 |
include "bus/pci/pci32.inc" |
; USB functions |
include "bus/usb/init.inc" |
; Floppy drive controller |
include "blkdev/fdc.inc" |
/kernel/trunk/detect/biosdisk.inc |
---|
7,7 → 7,6 |
; Detect all BIOS hard drives. |
; diamond, 2008 |
; Do not include USB mass storages. CleverMouse, 2013 |
xor cx, cx |
mov es, cx |
25,40 → 24,21 |
test ah, ah |
jz bddc |
inc cx |
; We are going to call int 13h/func 48h, Extended get drive parameters. |
; The latest version of the EDD specification is 3.0. |
; There are two slightly incompatible variants for version 3.0; |
; original one from Phoenix in 1998, see e.g. |
; http://www.t10.org/t13/technical/d98120r0.pdf, and T13 draft, |
; http://www.t13.org/documents/UploadedDocuments/docs2004/d1572r3-EDD3.pdf |
; T13 draft addresses more possible buses, so it gives additional 8 bytes |
; for device path. |
; Most BIOSes follow Phoenix, but T13 version is also known to be used |
; (e.g. systems based on AMD Geode). |
; Fortunately, there is an in/out length field, so |
; it is easy to tell what variant was selected by the BIOS: |
; Phoenix-3.0 has 42h bytes, T13-3.0 has 4Ah bytes. |
; Note that 2.0 has 1Eh bytes, 1.1 has 1Ah bytes; both variants of 3.0 have |
; the same structure for first 1Eh bytes, compatible with previous versions. |
; Note also that difference between Phoenix-3.0 and T13-3.0 starts near the |
; end of the structure, so the current code doesn't even need to distinguish. |
; It needs, however, give at least 4Ah bytes as input and expect that BIOS |
; could return 42h bytes as output while still giving all the information. |
mov ah, 48h |
push ds |
push es |
pop ds |
mov si, 0xA000 |
mov word [si], 4Ah |
mov word [si], 1Eh |
mov ah, 48h |
int 13h |
pop ds |
jc bddc2 |
inc byte [es:0x907F] |
cmp word [es:si], 1Eh |
jb .noide |
jb bddl |
cmp word [es:si+1Ah], 0xFFFF |
jz .noide |
inc byte [es:0x907F] |
jz bddl |
mov al, dl |
stosb |
push ds |
81,15 → 61,7 |
stosw |
pop ds |
jmp bddc2 |
.noide: |
cmp word [es:si], 42h |
jb .nousb |
cmp word [es:si+28h], 'US' |
jnz .nousb |
cmp byte [es:si+2Ah], 'B' |
jz bddc2 |
.nousb: |
inc byte [es:0x907F] |
bddl: |
mov al, dl |
stosb |
xor ax, ax |