pci/shpc: Move function to generic header file
This function should be declared in generic header file so we can utilize it. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
		
							parent
							
								
									6f0bb23072
								
							
						
					
					
						commit
						37e626ceda
					
				| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#include "qemu/osdep.h"
 | 
			
		||||
#include "qapi/error.h"
 | 
			
		||||
#include "qemu-common.h"
 | 
			
		||||
#include "qemu/host-utils.h"
 | 
			
		||||
#include "qemu/range.h"
 | 
			
		||||
#include "qemu/error-report.h"
 | 
			
		||||
#include "hw/pci/shpc.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -122,16 +123,6 @@
 | 
			
		|||
#define SHPC_PCI_TO_IDX(pci_slot) ((pci_slot) - 1)
 | 
			
		||||
#define SHPC_IDX_TO_PHYSICAL(slot) ((slot) + 1)
 | 
			
		||||
 | 
			
		||||
static int roundup_pow_of_two(int x)
 | 
			
		||||
{
 | 
			
		||||
    x |= (x >> 1);
 | 
			
		||||
    x |= (x >> 2);
 | 
			
		||||
    x |= (x >> 4);
 | 
			
		||||
    x |= (x >> 8);
 | 
			
		||||
    x |= (x >> 16);
 | 
			
		||||
    return x + 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static uint16_t shpc_get_status(SHPCDevice *shpc, int slot, uint16_t msk)
 | 
			
		||||
{
 | 
			
		||||
    uint8_t *status = shpc->config + SHPC_SLOT_STATUS(slot);
 | 
			
		||||
| 
						 | 
				
			
			@ -656,7 +647,7 @@ int shpc_init(PCIDevice *d, PCIBus *sec_bus, MemoryRegion *bar,
 | 
			
		|||
 | 
			
		||||
int shpc_bar_size(PCIDevice *d)
 | 
			
		||||
{
 | 
			
		||||
    return roundup_pow_of_two(SHPC_SLOT_REG(SHPC_MAX_SLOTS));
 | 
			
		||||
    return pow2roundup32(SHPC_SLOT_REG(SHPC_MAX_SLOTS));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void shpc_cleanup(PCIDevice *d, MemoryRegion *bar)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -400,6 +400,16 @@ static inline uint64_t pow2ceil(uint64_t value)
 | 
			
		|||
    return 0x8000000000000000ull >> (n - 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline uint32_t pow2roundup32(uint32_t x)
 | 
			
		||||
{
 | 
			
		||||
    x |= (x >> 1);
 | 
			
		||||
    x |= (x >> 2);
 | 
			
		||||
    x |= (x >> 4);
 | 
			
		||||
    x |= (x >> 8);
 | 
			
		||||
    x |= (x >> 16);
 | 
			
		||||
    return x + 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * urshift - 128-bit Unsigned Right Shift.
 | 
			
		||||
 * @plow: in/out - lower 64-bit integer.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue