On Monday 31,October,2011 03:50 PM, Peter Teoh wrote: > On Thursday 05,May,2011 03:15 AM, catcalls wrote: > >> Hi Owner, >> >> Interested in joining this group to learn about the USB functions of >> the Linux kernel with hopes of one day writing a USB Keyboard Device >> Driver. >> >> Just looking for pointers in the right direction of the source code. >> >> Kind regards, >> >> Mr A. Obrzut >> >> >> > Doing a systemtap tracing of the keyboard also reveal all the kernel API executed:
0xc0494080 : atkbd_interrupt+0x0/0x650 [kernel] 0xc05f7e08 : kretprobe_trampoline+0x0/0x38 [kernel] 0xc048ac52 : i8042_interrupt+0x1f2/0x350 [kernel] 0xc019f5cb : handle_irq_event_percpu+0x5b/0x1e0 [kernel] 0xc019f785 : handle_irq_event+0x35/0x60 [kernel] 0xc01a1ddc : handle_edge_irq+0x5c/0x130 [kernel] 0xc0104167 : handle_irq+0x67/0x90 [kernel] 0xc05fd501 : do_IRQ+0x41/0xc0 [kernel] 0xc05fd429 : common_interrupt+0x29/0x30 [kernel] 0xc016007b : cpumask_weight+0xb/0x20 [kernel] (inexact) 0xc03aed28 : acpi_idle_enter_bm+0x253/0x287 [kernel] (inexact) 0xc04ca6c1 : cpuidle_idle_call+0xe1/0x1c0 [kernel] (inexact) 0xc0101f02 : cpu_idle+0x52/0x90 [kernel] (inexact) 0xc05f000d : start_secondary+0x15a/0x1ad [kernel] (inexact) ====>atkbd_event 0xc04934a0 : atkbd_event+0x0/0x70 [kernel] 0xc05f7e08 : kretprobe_trampoline+0x0/0x38 [kernel] 0xc048ef28 : input_event+0x68/0x80 [kernel] 0xc0494375 : atkbd_interrupt+0x2f5/0x650 [kernel] 0xc05f7e08 : kretprobe_trampoline+0x0/0x38 [kernel] 0xc048ac52 : i8042_interrupt+0x1f2/0x350 [kernel] 0xc019f5cb : handle_irq_event_percpu+0x5b/0x1e0 [kernel] 0xc019f785 : handle_irq_event+0x35/0x60 [kernel] 0xc01a1ddc : handle_edge_irq+0x5c/0x130 [kernel] 0xc0104167 : handle_irq+0x67/0x90 [kernel] 0xc05fd501 : do_IRQ+0x41/0xc0 [kernel] 0xc05fd429 : common_interrupt+0x29/0x30 [kernel] 0xc016007b : cpumask_weight+0xb/0x20 [kernel] (inexact) 0xc03aed28 : acpi_idle_enter_bm+0x253/0x287 [kernel] (inexact) 0xc04ca6c1 : cpuidle_idle_call+0xe1/0x1c0 [kernel] (inexact) 0xc0101f02 : cpu_idle+0x52/0x90 [kernel] (inexact) 0xc05f000d : start_secondary+0x15a/0x1ad [kernel] (inexact)