net/ice/base: move and add some help function and macros

The patch move ice_ilog2 and ice_is_pow2 to ice_type.h, also add help
macro ROUND_UP and IS_ETHER_ADDR_EQUAL.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
This commit is contained in:
Qi Zhang 2019-08-29 10:36:34 +08:00 committed by Ferruh Yigit
parent eda40e22b8
commit f636f2888c
3 changed files with 39 additions and 24 deletions

View File

@ -360,15 +360,6 @@ struct ice_flow_prof_params {
ice_declare_bitmap(ptypes, ICE_FLOW_PTYPE_MAX);
};
/**
* ice_is_pow2 - check if integer value is a power of 2
* @val: unsigned integer to be validated
*/
static bool ice_is_pow2(u64 val)
{
return (val && !(val & (val - 1)));
}
#define ICE_FLOW_SEG_HDRS_L2_MASK \
(ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_VLAN)
#define ICE_FLOW_SEG_HDRS_L3_MASK \

View File

@ -1848,21 +1848,6 @@ static void ice_fill_sw_info(struct ice_hw *hw, struct ice_fltr_info *fi)
}
}
/**
* ice_ilog2 - Calculates integer log base 2 of a number
* @n: number on which to perform operation
*/
static int ice_ilog2(u64 n)
{
int i;
for (i = 63; i >= 0; i--)
if (((u64)1 << i) & n)
return i;
return -1;
}
/**
* ice_fill_sw_rule - Helper function to fill switch rule structure
* @hw: pointer to the hardware structure

View File

@ -22,6 +22,16 @@
#define ICE_BYTES_PER_DWORD 4
#define ICE_MAX_TRAFFIC_CLASS 8
/**
* ROUND_UP - round up to next arbitrary multiple (not a power of 2)
* @a: value to round up
* @b: arbitrary multiple
*
* Round up to the next multiple of the arbitrary b.
* Note, when b is a power of 2 use ICE_ALIGN() instead.
*/
#define ROUND_UP(a, b) ((b) * DIVIDE_AND_ROUND_UP((a), (b)))
#define MIN_T(_t, _a, _b) min((_t)(_a), (_t)(_b))
#define IS_ASCII(_ch) ((_ch) < 0x80)
@ -36,6 +46,30 @@
#include "ice_flex_type.h"
#include "ice_protocol_type.h"
/**
* ice_is_pow2 - check if integer value is a power of 2
* @val: unsigned integer to be validated
*/
static inline bool ice_is_pow2(u64 val)
{
return (val && !(val & (val - 1)));
}
/**
* ice_ilog2 - Calculates integer log base 2 of a number
* @n: number on which to perform operation
*/
static inline int ice_ilog2(u64 n)
{
int i;
for (i = 63; i >= 0; i--)
if (((u64)1 << i) & n)
return i;
return -1;
}
static inline bool ice_is_tc_ena(ice_bitmap_t bitmap, u8 tc)
{
return ice_is_bit_set(&bitmap, tc);
@ -104,6 +138,11 @@ static inline u32 ice_round_to_num(u32 N, u32 R)
#define IS_ETHER_ADDR_EQUAL(addr1, addr2) \
(((bool)((((u16 *)(addr1))[0] == ((u16 *)(addr2))[0]))) && \
((bool)((((u16 *)(addr1))[1] == ((u16 *)(addr2))[1]))) && \
((bool)((((u16 *)(addr1))[2] == ((u16 *)(addr2))[2]))))
enum ice_aq_res_ids {
ICE_NVM_RES_ID = 1,
ICE_SPD_RES_ID,