diff mbox series

[V6,1/5] pci/shpc: Move function to generic header file

Message ID 20180107123224.100877-2-marcel@redhat.com
State New
Headers show
Series [V6,1/5] pci/shpc: Move function to generic header file | expand

Commit Message

Marcel Apfelbaum Jan. 7, 2018, 12:32 p.m. UTC
From: Yuval Shaia <yuval.shaia@oracle.com>

This function should be declared in generic header file so we can
utilize it.

Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---
 hw/pci/shpc.c             | 13 ++-----------
 include/qemu/host-utils.h | 10 ++++++++++
 2 files changed, 12 insertions(+), 11 deletions(-)

Comments

Philippe Mathieu-Daudé Jan. 7, 2018, 1:47 p.m. UTC | #1
Hi Marcel,

On 01/07/2018 09:32 AM, Marcel Apfelbaum wrote:
> From: Yuval Shaia <yuval.shaia@oracle.com>
> 
> This function should be declared in generic header file so we can
> utilize it.
> 
> Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
>  hw/pci/shpc.c             | 13 ++-----------
>  include/qemu/host-utils.h | 10 ++++++++++
>  2 files changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
> index 69fc14b218..a8462d48bb 100644
> --- a/hw/pci/shpc.c
> +++ b/hw/pci/shpc.c
> @@ -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)
> diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
> index 5ac621cf1f..9fadb3f1ba 100644
> --- a/include/qemu/host-utils.h
> +++ b/include/qemu/host-utils.h
> @@ -400,6 +400,16 @@ static inline uint64_t pow2ceil(uint64_t value)
>      return 0x8000000000000000ull >> (n - 1);
>  }
>  
> +static inline int pow2roundup32(int x)

Can you change the type?

static inline uint32_t pow2roundup32(uint32_t value)

Then:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> +{
> +    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.
>
Marcel Apfelbaum Jan. 7, 2018, 2:35 p.m. UTC | #2
On 07/01/2018 15:47, Philippe Mathieu-Daudé wrote:
> Hi Marcel,
> 

Hi Philippe,

> On 01/07/2018 09:32 AM, Marcel Apfelbaum wrote:
>> From: Yuval Shaia <yuval.shaia@oracle.com>
>>
>> This function should be declared in generic header file so we can
>> utilize it.
>>
>> Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
>> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
>> ---
>>   hw/pci/shpc.c             | 13 ++-----------
>>   include/qemu/host-utils.h | 10 ++++++++++
>>   2 files changed, 12 insertions(+), 11 deletions(-)
>>
>> diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
>> index 69fc14b218..a8462d48bb 100644
>> --- a/hw/pci/shpc.c
>> +++ b/hw/pci/shpc.c
>> @@ -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)
>> diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
>> index 5ac621cf1f..9fadb3f1ba 100644
>> --- a/include/qemu/host-utils.h
>> +++ b/include/qemu/host-utils.h
>> @@ -400,6 +400,16 @@ static inline uint64_t pow2ceil(uint64_t value)
>>       return 0x8000000000000000ull >> (n - 1);
>>   }
>>   
>> +static inline int pow2roundup32(int x)
> 
> Can you change the type?
> 
> static inline uint32_t pow2roundup32(uint32_t value)
> 

Sure.

> Then:
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Appreciated,
Marcel


>> +{
>> +    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.
>>
diff mbox series

Patch

diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
index 69fc14b218..a8462d48bb 100644
--- a/hw/pci/shpc.c
+++ b/hw/pci/shpc.c
@@ -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)
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 5ac621cf1f..9fadb3f1ba 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -400,6 +400,16 @@  static inline uint64_t pow2ceil(uint64_t value)
     return 0x8000000000000000ull >> (n - 1);
 }
 
+static inline int pow2roundup32(int 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.