bitvec: add bitvec_find_first_bit_pos() from gsm/rxlev_stat.c

This patch adds bitvec_find_bit_pos() to bitvec.c where it really
belongs to. Before this patch used to be part of gsm/rxlev_stat.c
This commit is contained in:
Pablo Neira Ayuso 2011-03-28 19:24:19 +02:00 committed by Harald Welte
parent d6643d5fcf
commit 36bdf2cb73
3 changed files with 16 additions and 12 deletions

View File

@ -68,6 +68,8 @@ int bitvec_set_uint(struct bitvec *bv, unsigned int in, int count);
/* get multiple bits (based on numeric value) from current pos */
int bitvec_get_uint(struct bitvec *bv, int num_bits);
/* find the first bit set in bit vector */
int bitvec_find_bit_pos(const struct bitvec *bv, unsigned int n, enum bit_value val);
/* Pad the bit vector up to a certain bit position */
int bitvec_spare_padding(struct bitvec *bv, unsigned int up_to_bit);

View File

@ -217,3 +217,17 @@ int bitvec_spare_padding(struct bitvec *bv, unsigned int up_to_bit)
return 0;
}
/* find first bit set in bit vector */
int bitvec_find_bit_pos(const struct bitvec *bv, unsigned int n,
enum bit_value val)
{
unsigned int i;
for (i = n; i < bv->data_len*8; i++) {
if (bitvec_get_bit_pos(bv, i) == val)
return i;
}
return -1;
}

View File

@ -30,18 +30,6 @@
#include <osmocom/core/bitvec.h>
#include <osmocom/gsm/rxlev_stat.h>
int bitvec_find_bit_pos(const struct bitvec *bv, unsigned int n, enum bit_value val)
{
unsigned int i;
for (i = n; i < bv->data_len*8; i++) {
if (bitvec_get_bit_pos(bv, i) == val)
return i;
}
return -1;
}
void rxlev_stat_input(struct rxlev_stats *st, uint16_t arfcn, uint8_t rxlev)
{
struct bitvec bv;