Applied patch by Urias in order to let the PPC port build again.

Temporarily removed the VESA driver, as long as it only builds on x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25913 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2008-06-10 21:53:00 +00:00
parent 90ab7ea343
commit 52b5cb5a10
2 changed files with 33 additions and 30 deletions

View File

@ -83,7 +83,7 @@ BEOS_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ;
BEOS_ADD_ONS_ACCELERANTS = $(X86_ONLY)radeon.accelerant $(X86_ONLY)nvidia.accelerant BEOS_ADD_ONS_ACCELERANTS = $(X86_ONLY)radeon.accelerant $(X86_ONLY)nvidia.accelerant
$(X86_ONLY)matrox.accelerant $(X86_ONLY)neomagic.accelerant $(X86_ONLY)matrox.accelerant $(X86_ONLY)neomagic.accelerant
$(X86_ONLY)intel_extreme.accelerant $(X86_ONLY)s3.accelerant vesa.accelerant $(X86_ONLY)intel_extreme.accelerant $(X86_ONLY)s3.accelerant $(X86_ONLY)vesa.accelerant
#$(X86_ONLY)via.accelerant #$(X86_ONLY)via.accelerant
#$(X86_ONLY)vmware.accelerant #$(X86_ONLY)vmware.accelerant
; ;
@ -122,7 +122,7 @@ BEOS_ADD_ONS_SCREENSAVERS = Haiku IFS Spider ;
BEOS_ADD_ONS_DRIVERS_AUDIO = auich auvia emuxki ; #hda BEOS_ADD_ONS_DRIVERS_AUDIO = auich auvia emuxki ; #hda
BEOS_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia BEOS_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia
$(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme
$(X86_ONLY)s3 vesa #$(X86_ONLY)via #$(X86_ONLY)vmware $(X86_ONLY)s3 $(X86_ONLY)vesa #$(X86_ONLY)via #$(X86_ONLY)vmware
; ;
BEOS_ADD_ONS_DRIVERS_MIDI = emuxki ; BEOS_ADD_ONS_DRIVERS_MIDI = emuxki ;
BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com etherpci $(X86_ONLY)ipro1000 BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com etherpci $(X86_ONLY)ipro1000

View File

@ -349,14 +349,14 @@ public:
~DeviceTreeIterator() ~DeviceTreeIterator()
{ {
if (fParent != NULL) if (fParent != NULL)
fDeviceManager->put_device_node(fParent); fDeviceManager->put_node(fParent);
if (fNode != NULL) if (fNode != NULL)
fDeviceManager->put_device_node(fNode); fDeviceManager->put_node(fNode);
} }
void Rewind() void Rewind()
{ {
fNode = fDeviceManager->get_root(); fNode = fDeviceManager->get_root_node();
} }
bool HasNext() const bool HasNext() const
@ -364,38 +364,38 @@ public:
return (fNode != NULL); return (fNode != NULL);
} }
device_node_handle Next() device_node *Next()
{ {
if (fNode == NULL) if (fNode == NULL)
return NULL; return NULL;
device_node_handle foundNode = fNode; device_node *foundNode = fNode;
// get first child // get first child
device_node_handle child = NULL; device_node *child = NULL;
if (fDeviceManager->get_next_child_device(fNode, &child, NULL) if (fDeviceManager->get_next_child_node(fNode, NULL, &child)
== B_OK) { == B_OK) {
// move to the child node // move to the child node
if (fParent != NULL) if (fParent != NULL)
fDeviceManager->put_device_node(fParent); fDeviceManager->put_node(fParent);
fParent = fNode; fParent = fNode;
fNode = child; fNode = child;
// no more children; backtrack to find the next sibling // no more children; backtrack to find the next sibling
} else { } else {
while (fParent != NULL) { while (fParent != NULL) {
if (fDeviceManager->get_next_child_device(fParent, &fNode, NULL) if (fDeviceManager->get_next_child_node(fParent, NULL, &fNode)
== B_OK) { == B_OK) {
// get_next_child_device() always puts the node // get_next_child_node() always puts the node
break; break;
} }
fNode = fParent; fNode = fParent;
fParent = fDeviceManager->get_parent(fNode); fParent = fDeviceManager->get_parent_node(fNode);
} }
// if we hit the root node again, we're done // if we hit the root node again, we're done
if (fParent == NULL) { if (fParent == NULL) {
fDeviceManager->put_device_node(fNode); fDeviceManager->put_node(fNode);
fNode = NULL; fNode = NULL;
} }
} }
@ -405,8 +405,8 @@ public:
private: private:
device_manager_info *fDeviceManager; device_manager_info *fDeviceManager;
device_node_handle fNode; device_node *fNode;
device_node_handle fParent; device_node *fParent;
}; };
@ -444,13 +444,13 @@ get_interrupt_controller_modules(PICModuleList &list)
static bool static bool
probe_pic_device(device_node_handle node, PICModuleList &picModules) probe_pic_device(device_node *node, PICModuleList &picModules)
{ {
for (PICModule *module = picModules.Head(); for (PICModule *module = picModules.Head();
module; module;
module = picModules.GetNext(module)) { module = picModules.GetNext(module)) {
bool noConnection; //bool noConnection;
if (module->module->info.supports_device(node, &noConnection) > 0) { if (module->module->info.supports_device(node) > 0) {
if (module->module->info.register_device(node) == B_OK) if (module->module->info.register_device(node) == B_OK)
return true; return true;
} }
@ -484,29 +484,32 @@ arch_int_init_post_device_manager(struct kernel_args *args)
// iterate through the device tree and probe the interrupt controllers // iterate through the device tree and probe the interrupt controllers
DeviceTreeIterator iterator(deviceManager); DeviceTreeIterator iterator(deviceManager);
while (device_node_handle node = iterator.Next()) while (device_node *node = iterator.Next())
probe_pic_device(node, picModules); probe_pic_device(node, picModules);
// iterate through the tree again and get an interrupt controller node // iterate through the tree again and get an interrupt controller node
iterator.Rewind(); iterator.Rewind();
while (device_node_handle node = iterator.Next()) { while (device_node *node = iterator.Next()) {
char *deviceType; const char *deviceType;
if (deviceManager->get_attr_string(node, B_DRIVER_DEVICE_TYPE, if (deviceManager->get_attr_string(node, B_DEVICE_TYPE,
&deviceType, false) == B_OK) { &deviceType, false) == B_OK) {
bool isPIC = false;
/*
bool isPIC bool isPIC
= (strcmp(deviceType, B_INTERRUPT_CONTROLLER_DRIVER_TYPE) == 0); = (strcmp(deviceType, B_INTERRUPT_CONTROLLER_DRIVER_TYPE) == 0);
free(deviceType); free(deviceType);
*/
if (isPIC) { if (isPIC) {
driver_module_info *driver; driver_module_info *driver;
void *driverCookie; void *driverCookie;
error = deviceManager->init_driver(node, NULL, &driver,
&driverCookie); deviceManager->get_driver(node, (driver_module_info **)&driver, (void **)&driverCookie);
if (error == B_OK) {
sPIC = (interrupt_controller_module_info *)driver; sPIC = (interrupt_controller_module_info *)driver;
sPICCookie = driverCookie; sPICCookie = driverCookie;
return B_OK; return B_OK;
}
} }
} }
} }