Skip to content

Commit

Permalink
Tidy-up
Browse files Browse the repository at this point in the history
  • Loading branch information
Paweł Łukasik committed Oct 16, 2024
1 parent f2edd26 commit 5c383df
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
36 changes: 18 additions & 18 deletions src/impl/x86_64/device/pci.cpp
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
#include "../../../intf/pci.h"

pt::uint32_t pciConfigReadDWord(pt::uint8_t bus, pt::uint8_t slot, pt::uint8_t func, pt::uint8_t offset) {
pt::uint32_t lbus = (pt::uint32_t)bus;
pt::uint32_t lslot = (pt::uint32_t)slot;
pt::uint32_t lfunc = (pt::uint32_t)func;
pt::uint32_t pciConfigReadDWord(const pt::uint8_t bus, const pt::uint8_t slot, const pt::uint8_t func, const pt::uint8_t offset) {
const pt::uint32_t lbus = bus;
const pt::uint32_t lslot = slot;
const pt::uint32_t lfunc = func;

// Create configuration address as per Figure 1
const pt::uint32_t address = (pt::uint32_t) ((lbus << 16) | (lslot << 11) |
(lfunc << 8) | (offset & 0xFC) | ((pt::uint32_t) 0x80000000));
const auto address = lbus << 16 | lslot << 11 |
lfunc << 8 | offset & 0xFC | 0x80000000;

// Write out the address
IO::outd(0xCF8, address);
return (pt::uint32_t)(IO::ind(0xCFC));
return IO::ind(0xCFC);
}

bool pci::check_device(pci_device* ptr, const pci_query query)
{
auto config_word = pciConfigReadDWord(query.bus, query.device, 0, 0);
auto vendor_id = config_word & 0xFFFF;
const auto config_word = pciConfigReadDWord(query.bus, query.device, 0, 0);
const auto vendor_id = config_word & 0xFFFF;
if (vendor_id == 0xFFFF) {
(*ptr).vendor_id = vendor_id;
ptr->vendor_id = vendor_id;
return false;
}
auto device_id = config_word >> 16;
auto class_with_subclass = pciConfigReadDWord(query.bus, query.device, 0, 8);
auto class_code = class_with_subclass >> 24;
auto subclass_code = class_with_subclass & 0xFF;
(*ptr).vendor_id = vendor_id;
(*ptr).device_id = device_id;
(*ptr).class_code = class_code;
(*ptr).subclass_code = subclass_code;
const auto device_id = config_word >> 16;
const auto class_with_subclass = pciConfigReadDWord(query.bus, query.device, 0, 8);
const auto class_code = class_with_subclass >> 24;
const auto subclass_code = class_with_subclass & 0xFF;
ptr->vendor_id = vendor_id;
ptr->device_id = device_id;
ptr->class_code = class_code;
ptr->subclass_code = subclass_code;
return true;
}

Expand Down
8 changes: 4 additions & 4 deletions src/intf/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
#include "virtual.h"

struct pci_device {
int vendor_id;
int device_id;
int class_code;
int subclass_code;
pt::uint32_t vendor_id;
pt::uint32_t device_id;
pt::uint32_t class_code;
pt::uint32_t subclass_code;
};

struct pci_query {
Expand Down

0 comments on commit 5c383df

Please sign in to comment.