mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-03 22:01:55 +03:00
7dce54fc55
git-svn-id: svn://kolibrios.org@5051 a494cfbc-eb01-0410-851d-a64ba20cac60
61 lines
2.2 KiB
PHP
61 lines
2.2 KiB
PHP
; HID default driver, part of USBHID driver.
|
|
; Present only if compile-time setting HID_DUMP_UNCLAIMED is on.
|
|
; Active for those devices when we do not have a specialized driver.
|
|
; Just dumps everything to the debug board.
|
|
|
|
if HID_DUMP_UNCLAIMED
|
|
; Global constants.
|
|
; They are assembled in a macro to separate code and data;
|
|
; the code is located at the point of "include 'unclaimed.inc'",
|
|
; the data are collected when workers_globals is instantiated.
|
|
macro workers_globals
|
|
{
|
|
; include global constants from previous workers
|
|
workers_globals
|
|
align 4
|
|
; Callbacks for HID layer.
|
|
default_driver:
|
|
dd default_driver_add_device
|
|
dd default_driver_disconnect
|
|
dd default_driver_begin_packet
|
|
dd default_driver_array_overflow?
|
|
dd default_driver_input_field
|
|
dd default_driver_end_packet
|
|
}
|
|
; This procedure is called when HID layer detects a new driverless device.
|
|
; in: ebx -> usb_device_data, edi -> collection
|
|
; out: eax = device-specific data or NULL on error
|
|
default_driver_add_device:
|
|
; just return something nonzero, no matter what
|
|
xor eax, eax
|
|
inc eax
|
|
ret
|
|
; This procedure is called when HID layer processes every non-empty array field group.
|
|
; in: edi -> keyboard_device_data (pointer returned from keyboard_driver_add_device)
|
|
; in: ecx = fields count (always nonzero), edx = pointer to fields values
|
|
; in: esi -> report_field_group
|
|
; out: CF set => group is ok, CF cleared => group should be ignored
|
|
default_driver_array_overflow?:
|
|
; parse everything
|
|
stc
|
|
ret
|
|
; This procedure is called from HID layer for every field.
|
|
; in: ecx = field usage, edx = value, esi -> report_field_group
|
|
default_driver_input_field:
|
|
; Do not dump zero values in Variable fields,
|
|
; they are present even if the corresponding control is inactive.
|
|
test edx, edx
|
|
jnz @f
|
|
test byte [esi+report_field_group.flags], HID_FIELD_VARIABLE
|
|
jnz .nodump
|
|
@@:
|
|
DEBUGF 1,'K : unclaimed HID input: usage=%x, value=%x\n',ecx,edx
|
|
.nodump:
|
|
; pass through
|
|
; Three nothing-to-do procedures.
|
|
default_driver_disconnect:
|
|
default_driver_begin_packet:
|
|
default_driver_end_packet:
|
|
ret
|
|
end if
|