Skip to content

Commit

Permalink
add Interrupt PIN reader
Browse files Browse the repository at this point in the history
  • Loading branch information
RadWolfie committed May 1, 2023
1 parent 122994d commit 16b4505
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
20 changes: 19 additions & 1 deletion src/lib/pci_database.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,4 +830,22 @@ const char* pci_get_prog_if_str(
break;
}
return "-";
}
}

const char* pci_get_interrupt_pin_str(
uint8_t interrupt_pin)
{
switch (interrupt_pin) {
case 0:
return "N/A";
case 1:
return "INTA#";
case 2:
return "INTB#";
case 3:
return "INTC#";
case 4:
return "INTD#";
}
return unknown;
}
5 changes: 4 additions & 1 deletion src/lib/pci_database.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,7 @@ const char* pci_get_subclass_str(
const char* pci_get_prog_if_str(
uint8_t class_code,
uint8_t subclass,
uint8_t prog_if);
uint8_t prog_if);

const char* pci_get_interrupt_pin_str(
uint8_t interrupt_pin);
6 changes: 3 additions & 3 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ void pci_dump_header(
print("reserved1 =%04hX", pci_header_standard.reserved1);
print("reserved2 =%08X", pci_header_standard.reserved2);
print("interrupt_line =%02hhX", pci_header_standard.interrupt_line);
print("interrupt_pin =%02hhX", pci_header_standard.interrupt_pin);
print("interrupt_pin =%02hhX %s", pci_header_standard.interrupt_pin, pci_get_interrupt_pin_str(pci_header_standard.interrupt_pin));
print("min_grant =%02hhX", pci_header_standard.min_grant);
print("max_latency =%02hhX", pci_header_standard.max_latency);
}
Expand Down Expand Up @@ -81,7 +81,7 @@ void pci_dump_header(
print("reserved1 = %04hX", pci_header_pci2pci_bridge.reserved1);
print("expansion_rom_base_address = %08X", pci_header_pci2pci_bridge.expansion_rom_base_address);
print("interrupt_line = %02hhX", pci_header_pci2pci_bridge.interrupt_line);
print("interrupt_pin = %02hhX", pci_header_pci2pci_bridge.interrupt_pin);
print("interrupt_pin = %02hhX %s", pci_header_pci2pci_bridge.interrupt_pin, pci_get_interrupt_pin_str(pci_header_pci2pci_bridge.interrupt_pin));
print("bridge_control = %04hX", pci_header_pci2pci_bridge.bridge_control);
}
else if (header_type == 0x02) {
Expand All @@ -104,7 +104,7 @@ void pci_dump_header(
print("io_base_address_1 = %08X", pci_header_pci2cardbus_bridge.io_base_address_1);
print("io_limit_1 = %08X", pci_header_pci2cardbus_bridge.io_limit_1);
print("interrupt_line = %02hhX", pci_header_pci2cardbus_bridge.interrupt_line);
print("interrupt_pin = %02hhX", pci_header_pci2cardbus_bridge.interrupt_pin);
print("interrupt_pin = %02hhX %s", pci_header_pci2cardbus_bridge.interrupt_pin, pci_get_interrupt_pin_str(pci_header_pci2cardbus_bridge.interrupt_pin));
print("bridge_control = %04hX", pci_header_pci2cardbus_bridge.bridge_control);
print("subsystem_device_id = %04hX", pci_header_pci2cardbus_bridge.subsystem_device_id);
print("subsystem_vendor_id = %04hX", pci_header_pci2cardbus_bridge.subsystem_vendor_id);
Expand Down

0 comments on commit 16b4505

Please sign in to comment.