mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-10-31 08:21:49 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Musl patch for pci
 | |
| 
 | |
| diff -Nurp a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c
 | |
| --- a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c	2020-11-21 13:07:44.255206657 +0000
 | |
| +++ b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c	2020-11-21 13:04:06.488285583 +0000
 | |
| @@ -14,6 +14,32 @@
 | |
|  
 | |
|  #if defined(RTE_ARCH_X86)
 | |
|  #include <sys/io.h>
 | |
| +#if defined(__GLIBC__)
 | |
| +#define pci_uio_outl_p outl_p
 | |
| +#define pci_uio_outw_p outw_p
 | |
| +#define pci_uio_outb_p outb_p
 | |
| +#else
 | |
| +static inline void
 | |
| +pci_uio_outl_p(unsigned int value, unsigned short int port)
 | |
| +{
 | |
| +       __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80" : : "a" (value),
 | |
| +                             "Nd" (port));
 | |
| +}
 | |
| +
 | |
| +static inline void
 | |
| +pci_uio_outw_p(unsigned short int value, unsigned short int port)
 | |
| +{
 | |
| +       __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80" : : "a" (value),
 | |
| +                             "Nd" (port));
 | |
| +}
 | |
| +
 | |
| +static inline void
 | |
| +pci_uio_outb_p(unsigned char value, unsigned short int port)
 | |
| +{
 | |
| +       __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80" : : "a" (value),
 | |
| +                             "Nd" (port));
 | |
| +}
 | |
| +#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <rte_string_fns.h>
 | |
| @@ -528,21 +554,21 @@ pci_uio_ioport_write(struct rte_pci_iopo
 | |
|  		if (len >= 4) {
 | |
|  			size = 4;
 | |
|  #if defined(RTE_ARCH_X86)
 | |
| -			outl_p(*(const uint32_t *)s, reg);
 | |
| +			pci_uio_outl_p(*(const uint32_t *)s, reg);
 | |
|  #else
 | |
|  			*(volatile uint32_t *)reg = *(const uint32_t *)s;
 | |
|  #endif
 | |
|  		} else if (len >= 2) {
 | |
|  			size = 2;
 | |
|  #if defined(RTE_ARCH_X86)
 | |
| -			outw_p(*(const uint16_t *)s, reg);
 | |
| +			pci_uio_outw_p(*(const uint16_t *)s, reg);
 | |
|  #else
 | |
|  			*(volatile uint16_t *)reg = *(const uint16_t *)s;
 | |
|  #endif
 | |
|  		} else {
 | |
|  			size = 1;
 | |
|  #if defined(RTE_ARCH_X86)
 | |
| -			outb_p(*s, reg);
 | |
| +			pci_uio_outb_p(*s, reg);
 | |
|  #else
 | |
|  			*(volatile uint8_t *)reg = *s;
 | |
|  #endif
 |