Files

34 lines
766 B
C

#ifndef __PCI_H
#define __PCI_H
#include "system.h"
typedef struct DeviceDescriptor
{
uint32_t PortBase;
uint32_t Interrupt;
uint16_t Bus;
uint16_t Device;
uint16_t Function;
uint16_t VendorId;
uint16_t DeviceId;
uint8_t ClassId;
uint8_t SubClassId;
uint8_t InterfaceId;
uint8_t Revision;
};
uint32_t Read(uint16_t busNumber, uint16_t deviceNumber, uint16_t functionNumber, uint32_t registerOffset);
void Write(uint16_t busNumber, uint16_t deviceNumber, uint16_t functionNumber, uint32_t registerOffset, uint32_t value);
bool DeviceHasFunctions(uint16_t bus, uint16_t device);
void EnumPCISubsystem(void);
struct DeviceDescriptor GetDeviceDescriptor(uint16_t busNumber, uint16_t deviceNumber, uint16_t functionNumber);
#endif