11#include <efi.h>
22#include <io.h>
3+ #include <pci.h>
34#include <printf.h>
45#include "csmwrap.h"
56
@@ -38,11 +39,16 @@ void uacpi_kernel_unmap(EFI_UNUSED void *ptr, EFI_UNUSED uacpi_size len) {
3839
3940uacpi_status uacpi_kernel_pci_device_open (uacpi_pci_address address , uacpi_handle * out_handle ) {
4041 void * handle ;
41- if (gBS -> AllocatePool (EfiLoaderData , sizeof (uacpi_pci_address ), & handle ) != EFI_SUCCESS ) {
42+ if (gBS -> AllocatePool (EfiLoaderData , sizeof (struct pci_address ), & handle ) != EFI_SUCCESS ) {
4243 return UACPI_STATUS_OUT_OF_MEMORY ;
4344 }
4445
45- memcpy (handle , & address , sizeof (uacpi_pci_address ));
46+ struct pci_address * pci_address = (struct pci_address * )handle ;
47+ pci_address -> segment = address .segment ;
48+ pci_address -> bus = address .bus ;
49+ pci_address -> slot = address .device ;
50+ pci_address -> function = address .function ;
51+
4652 * out_handle = handle ;
4753 return UACPI_STATUS_OK ;
4854}
@@ -52,38 +58,32 @@ void uacpi_kernel_pci_device_close(uacpi_handle handle) {
5258}
5359
5460uacpi_status uacpi_kernel_pci_read8 (uacpi_handle device , uacpi_size offset , uacpi_u8 * value ) {
55- uacpi_pci_address * address = (uacpi_pci_address * )device ;
56- * value = pciConfigReadByte (address -> bus , address -> device , address -> function , offset );
61+ * value = pci_read8 ((struct pci_address * )device , offset );
5762 return UACPI_STATUS_OK ;
5863}
5964
6065uacpi_status uacpi_kernel_pci_read16 (uacpi_handle device , uacpi_size offset , uacpi_u16 * value ) {
61- uacpi_pci_address * address = (uacpi_pci_address * )device ;
62- * value = pciConfigReadWord (address -> bus , address -> device , address -> function , offset );
66+ * value = pci_read16 ((struct pci_address * )device , offset );
6367 return UACPI_STATUS_OK ;
6468}
6569
6670uacpi_status uacpi_kernel_pci_read32 (uacpi_handle device , uacpi_size offset , uacpi_u32 * value ) {
67- uacpi_pci_address * address = (uacpi_pci_address * )device ;
68- * value = pciConfigReadDWord (address -> bus , address -> device , address -> function , offset );
71+ * value = pci_read32 ((struct pci_address * )device , offset );
6972 return UACPI_STATUS_OK ;
7073}
7174
7275uacpi_status uacpi_kernel_pci_write8 (uacpi_handle device , uacpi_size offset , uacpi_u8 value ) {
73- uacpi_pci_address * address = (uacpi_pci_address * )device ;
74- pciConfigWriteByte (address -> bus , address -> device , address -> function , offset , value );
76+ pci_write8 ((struct pci_address * )device , offset , value );
7577 return UACPI_STATUS_OK ;
7678}
7779
7880uacpi_status uacpi_kernel_pci_write16 (uacpi_handle device , uacpi_size offset , uacpi_u16 value ) {
79- uacpi_pci_address * address = (uacpi_pci_address * )device ;
80- pciConfigWriteWord (address -> bus , address -> device , address -> function , offset , value );
81+ pci_write16 ((struct pci_address * )device , offset , value );
8182 return UACPI_STATUS_OK ;
8283}
8384
8485uacpi_status uacpi_kernel_pci_write32 (uacpi_handle device , uacpi_size offset , uacpi_u32 value ) {
85- uacpi_pci_address * address = (uacpi_pci_address * )device ;
86- pciConfigWriteDWord (address -> bus , address -> device , address -> function , offset , value );
86+ pci_write32 ((struct pci_address * )device , offset , value );
8787 return UACPI_STATUS_OK ;
8888}
8989
0 commit comments