Chameleon

Chameleon Svn Source Tree

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

1/*
2 * GraphicsEnabler Module
3 *Enabled many nvidia and ati cards to be used out of the box in
4 *OS X. This was converted from boot2 code to a boot2 module.
5 *
6 */
7
8#include "libsaio.h"
9#include "pci.h"
10#include "bootstruct.h"
11#include "nvidia.h"
12#include "ati.h"
13#include "gma.h"
14#include "modules.h"
15
16
17#define kGraphicsEnabler"EnableGFXModule"
18
19void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6);
20void GraphicsEnabler_start(void);
21
22void GraphicsEnabler_start(void)
23{
24bool enable = true;
25getBoolForKey(kGraphicsEnabler, &enable, DEFAULT_BOOT_CONFIG);
26
27
28if (enable)
29{
30register_hook_callback("PCIDevice", &GraphicsEnabler_hook);
31}
32}
33
34void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6)
35{
36pci_dt_t* current = arg1;
37
38if(current && current->class_id == PCI_CLASS_DISPLAY_VGA)
39{
40
41switch (current->vendor_id)
42{
43case PCI_VENDOR_ID_ATI:
44
45setup_ati_devprop(current);
46break;
47
48case PCI_VENDOR_ID_INTEL:
49setup_gma_devprop(current);
50break;
51
52case PCI_VENDOR_ID_NVIDIA:
53setup_nvidia_devprop(current);
54break;
55default:
56break;
57}
58
59}
60}

Archive Download this file

Revision: 1919