Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/modules/USBFix/USBFix.c

1/*
2 * Copyright (c) 2009 Evan Lojewski. All rights reserved.
3 *
4 */
5
6#include "libsaio.h"
7#include "modules.h"
8#include "pci.h"
9#include "bootstruct.h"
10
11extern int usb_loop(void);
12extern void notify_usb_dev(pci_dt_t *pci_dev);
13
14void USBFix_pci_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6);
15void USBFix_start_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6);
16
17
18void USBFix_pci_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6)
19{
20pci_dt_t* current = arg1;
21if(current->class_id == PCI_CLASS_SERIAL_USB)
22{
23notify_usb_dev(current);
24}
25}
26
27void USBFix_start_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6)
28{
29usb_loop();
30}
31
32void USBFix_start(void);
33void USBFix_start(void)
34{
35 register_hook_callback("PCIDevice", &USBFix_pci_hook);
36 register_hook_callback("Kernel Start", &USBFix_start_hook);
37}
38
39

Archive Download this file

Revision: 1931