ApertureOS
pci.h
Go to the documentation of this file.
1 #ifndef _PCI_DRIVER_H_
2 #define _PCI_DRIVER_H_
3 
4 #include "types.h"
5 
6 #define MAX_DEVICE_COUNT 128
7 #define MAX_POSSIBLE_BARS 6
8 
9 #define PCI_MASS_STORAGE_DEVICE_CLASS 0x1
10 
11 #define PCI_BUS_MASTER_CMD (1<<2)
12 
13 typedef struct
14 {
15  uint8_t classCode;
16  uint8_t subClassCode;
17  uint8_t progIf;
18 
19  uint16_t deviceID;
20  uint16_t vendorID;
21 
22  uint32_t bus;
23  uint32_t device;
24  uint32_t function;
25 
26  uint8_t bar_count;
27  uint32_t bars[MAX_POSSIBLE_BARS];
28 
29  uint8_t headerType;
31 
33 uint32_t pci_deviceCount;
34 
35 
36 void
38  uint32_t bus,
39  uint32_t device,
40  uint32_t function,
41  uint32_t offset,
42  uint32_t val
43 );
44 
45 
46 uint32_t
48  uint32_t bus,
49  uint32_t device,
50  uint32_t function,
51  uint32_t offset
52 );
53 
54 void
56  long classcode,
57  char ** base,
58  char ** sub,
59  char ** prog
60 );
61 
62 void
63 pci_GetPCIDevice(uint16_t venID,
64  uint16_t devID,
65  char **chip_name,
66  char **chip_desc);
67 
68 
69 void
70 pci_GetPCIVendor(uint16_t venID,
71  char ** short_name,
72  char ** long_name);
73 
74 void
75 pci_Initialize(void);
76 
77 void
78 pci_setCommand(uint32_t device_index,
79  uint16_t value);
80 
81 #endif /* end of include guard: _PCI_DRIVER_H_ */
void pci_setCommand(uint32_t device_index, uint16_t value)
Definition: pci.c:142
void pci_Initialize(void)
Definition: pci.c:38
uint8_t classCode
Definition: pci.h:15
uint16_t deviceID
Definition: pci.h:19
uint32_t device
Definition: pci.h:23
uint32_t pci_readDWord(uint32_t bus, uint32_t device, uint32_t function, uint32_t offset)
Definition: pci.c:13
void pci_GetPCIClass(long classcode, char **base, char **sub, char **prog)
Definition: pci_devices.c:39
uint32_t pci_deviceCount
Definition: pci.h:33
Definition: pci.h:13
uint8_t subClassCode
Definition: pci.h:16
void pci_GetPCIVendor(uint16_t venID, char **short_name, char **long_name)
Definition: pci_devices.c:56
#define MAX_POSSIBLE_BARS
Definition: pci.h:7
void pci_writeDWord(uint32_t bus, uint32_t device, uint32_t function, uint32_t offset, uint32_t val)
Definition: pci.c:25
uint8_t headerType
Definition: pci.h:29
uint32_t bus
Definition: pci.h:22
uint8_t bar_count
Definition: pci.h:26
#define MAX_DEVICE_COUNT
Definition: pci.h:6
void pci_GetPCIDevice(uint16_t venID, uint16_t devID, char **chip_name, char **chip_desc)
Definition: pci_devices.c:76
PCI_DeviceFuncs devices[MAX_DEVICE_COUNT]
Definition: pci.h:32
uint16_t vendorID
Definition: pci.h:20
uint8_t progIf
Definition: pci.h:17