Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
45
csky/csi_kernel/rhino/common/k_ffs.c
Normal file
45
csky/csi_kernel/rhino/common/k_ffs.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Alibaba Group Holding Limited
|
||||
*/
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
This file provides method to find the least/most significant bit in 32 bit
|
||||
fields.
|
||||
*/
|
||||
|
||||
#include "k_api.h"
|
||||
#include "k_ffs.h"
|
||||
#include "k_bitmap.h"
|
||||
|
||||
/* find most significant bit set */
|
||||
|
||||
int ffs32_msb(uint32_t bitmap)
|
||||
{
|
||||
if (bitmap == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 32 - krhino_find_first_bit(&bitmap);
|
||||
}
|
||||
|
||||
|
||||
/* find least significant bit set */
|
||||
|
||||
int ffs32_lsb(uint32_t bitmap)
|
||||
{
|
||||
uint32_t x;
|
||||
int lsbit;
|
||||
|
||||
if (bitmap == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
x = bitmap & -bitmap;
|
||||
lsbit = krhino_find_first_bit((uint32_t *)(&x));
|
||||
|
||||
return 32 - lsbit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user