diff --git a/src/add-ons/kernel/bus_managers/config_manager/Jamfile b/src/add-ons/kernel/bus_managers/config_manager/Jamfile index dbe59e595f..b0333cae66 100644 --- a/src/add-ons/kernel/bus_managers/config_manager/Jamfile +++ b/src/add-ons/kernel/bus_managers/config_manager/Jamfile @@ -4,5 +4,7 @@ UsePrivateHeaders kernel ; KernelAddon config_manager : config_manager.c + : config_manager_arch.a ; +SubInclude HAIKU_TOP src add-ons kernel bus_managers config_manager arch $(TARGET_ARCH) ; diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/Jamfile b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/Jamfile index 61549a532e..cc3e99ad72 100644 --- a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/Jamfile +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/Jamfile @@ -6,5 +6,7 @@ UsePrivateHeaders kernel [ FDirName kernel arch m68k ] ; KernelStaticLibrary config_manager_arch : config_manager_arch.c + amiga_hardcoded.c + atari_hardcoded.c ; diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/amiga_hardcoded.c b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/amiga_hardcoded.c new file mode 100644 index 0000000000..258153b298 --- /dev/null +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/amiga_hardcoded.c @@ -0,0 +1,42 @@ +/* + * Copyright 2007 Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * arch-specific config manager + * + * Authors (in chronological order): + * François Revol (revol@free.fr) + */ + +#include "config_manager_arch.h" + +#if 0 + +#define DIS sizeof(struct device_info) +#define DIF (B_DEVICE_INFO_ENABLED|B_DEVICE_INFO_CONFIGURED) +#define DID 'm', '6', '8', + +static struct hardcoded_device gHardcodedDevices[] = { +/* video */ + {{DIS, DIS, B_ISA_BUS, {PCI_display, PCI_display_other, 0xff}, {DID, 0}, DIF, B_OK }, + .isa = {}}, +/* ide */ + {{DIS, DIS, B_ISA_BUS, {PCI_mass_storage, PCI_ide, 0xff}, {DID, 1}, DIF, B_OK }, + .isa = {}} +/* scsi */ + {{DIS, DIS, B_ISA_BUS, {PCI_mass_storage, PCI_scsi, 0xff}, {DID, 2}, DIF, B_OK }, + .isa = {}} +/* audio */ + {{DIS, DIS, B_ISA_BUS, {PCI_multimedia, 0xff, 0xff}, {DID, 3}, DIF, B_OK }, + .isa = {}} +}; + +#endif + +status_t +amiga_hardcoded(struct device_info **info, int32 *count) +{ + return B_OK; +} + + diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/atari_hardcoded.c b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/atari_hardcoded.c new file mode 100644 index 0000000000..1b21a92dac --- /dev/null +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/atari_hardcoded.c @@ -0,0 +1,42 @@ +/* + * Copyright 2007 Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * arch-specific config manager + * + * Authors (in chronological order): + * François Revol (revol@free.fr) + */ + +#include "config_manager_arch.h" + +#define DIS sizeof(struct device_info) +#define DIF (B_DEVICE_INFO_ENABLED|B_DEVICE_INFO_CONFIGURED) +#define DID 'm68k', 'atar', 'i ' + +static struct hardcoded_device gHardcodedDevices[] = { +/* video */ + {{DIS, DIS, B_ISA_BUS, {PCI_display, PCI_display_other, 0xff}, {DID, 0}, DIF, B_OK }, + { .isa = {} }, + .configs = {}}, +/* ide */ + {{DIS, DIS, B_ISA_BUS, {PCI_mass_storage, PCI_ide, 0xff}, {DID, 1}, DIF, B_OK }, + { .isa = {} }, + .configs = {}}, +/* scsi */ + {{DIS, DIS, B_ISA_BUS, {PCI_mass_storage, PCI_scsi, 0xff}, {DID, 2}, DIF, B_OK }, + { .isa = {} }, + .configs = {}}, +/* audio */ + {{DIS, DIS, B_ISA_BUS, {PCI_multimedia, 0xff, 0xff}, {DID, 3}, DIF, B_OK }, + { .isa = {} }, + .configs = { }}, +}; + +status_t +atari_hardcoded(struct device_info **info, int32 *count) +{ + return B_OK; +} + + diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.c b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.c index 59fd70c0b0..251271ec8c 100644 --- a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.c +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.c @@ -8,8 +8,15 @@ * François Revol (revol@free.fr) */ -int config_manager_scan_hardcoded(void *) +#include +#include + +status_t config_manager_scan_hardcoded(struct device_info **info, int32 *count) { + //XXX + return atari_hardcoded(info, count); + + count = 0; return B_OK; } diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.h b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.h new file mode 100644 index 0000000000..c00eed3429 --- /dev/null +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/m68k/config_manager_arch.h @@ -0,0 +1,29 @@ +/* + * Copyright 2007 Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * arch-specific config manager + * + * Authors (in chronological order): + * François Revol (revol@free.fr) + */ +#ifndef _CONFIG_MANAGER_ARCH_H +#define _CONFIG_MANAGER_ARCH_H + +#include +#include +#include +#include + +struct hardcoded_device { + struct device_info info; + union { + struct isa_info isa; + pci_info pci; + //pcmcia... + } bus; + struct possible_device_configurations configs; +}; + +#endif /* _CONFIG_MANAGER_ARCH_H */ + diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/ppc/config_manager_arch.c b/src/add-ons/kernel/bus_managers/config_manager/arch/ppc/config_manager_arch.c index 59fd70c0b0..fe48b06817 100644 --- a/src/add-ons/kernel/bus_managers/config_manager/arch/ppc/config_manager_arch.c +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/ppc/config_manager_arch.c @@ -8,7 +8,10 @@ * François Revol (revol@free.fr) */ -int config_manager_scan_hardcoded(void *) +#include +#include + +int config_manager_scan_hardcoded(struct device_info **info, int32 *count) { return B_OK; } diff --git a/src/add-ons/kernel/bus_managers/config_manager/arch/x86/config_manager_arch.c b/src/add-ons/kernel/bus_managers/config_manager/arch/x86/config_manager_arch.c index 59fd70c0b0..fe48b06817 100644 --- a/src/add-ons/kernel/bus_managers/config_manager/arch/x86/config_manager_arch.c +++ b/src/add-ons/kernel/bus_managers/config_manager/arch/x86/config_manager_arch.c @@ -8,7 +8,10 @@ * François Revol (revol@free.fr) */ -int config_manager_scan_hardcoded(void *) +#include +#include + +int config_manager_scan_hardcoded(struct device_info **info, int32 *count) { return B_OK; }