diff options
author | Ian McFarlane <i.mcfarlane2002@gmail.com> | 2025-04-17 15:44:27 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-20 23:44:38 -0400 |
commit | 5c9c5e454b241d578a173b11fcde0cd179373d41 (patch) | |
tree | f768a81ff282b7c618906c0bf3c23e0e56416f12 /kernel/drivers | |
parent | starting on ata (diff) | |
download | comus-5c9c5e454b241d578a173b11fcde0cd179373d41.tar.gz comus-5c9c5e454b241d578a173b11fcde0cd179373d41.tar.bz2 comus-5c9c5e454b241d578a173b11fcde0cd179373d41.zip |
added logging, but we still get warnings about __FUNCTION__
Diffstat (limited to 'kernel/drivers')
-rw-r--r-- | kernel/drivers/ata.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/kernel/drivers/ata.c b/kernel/drivers/ata.c index 4c5896c..e940ad4 100644 --- a/kernel/drivers/ata.c +++ b/kernel/drivers/ata.c @@ -19,19 +19,24 @@ #define IDE_PROG_IF_SECONDARY_CHANNEL_CAN_SWITCH_TO_AND_FROM_PCI_NATIVE_FLAG 0x4 #define IDE_PROG_IF_DMA_SUPPORT_FLAG 0x7 -#include "comus/drivers/pci.h" -#include "comus/drivers/ata.h" +#include <comus/drivers/pci.h> +#include <comus/drivers/ata.h> +#include <lib.h> bool ata_find_primary_drive(struct pci_device *out) { if (!pci_findby_class(out, CLASS_MASS_STORAGE_CONTROLLER, - SUBCLASS_IDE_CONTROLLER, NULL)) { + SUBCLASS_IDE_CONTROLLER, NULL)) { + return false; + } + + const uint8_t prog_if = pci_rcfg_b(*out, PCI_PROG_IF_B); + const uint8_t header_type = pci_rcfg_b(*out, PCI_HEADER_TYPE_B); + + if (header_type != 0x0) { + TRACE("Wrong header type for IDE_CONTROLLER device, not reading BARs"); return false; } - const uint8_t prog_if = pci_rcfg_b(*out, PCI_PROG_IF_B); - - return true; + return true; } - - |