summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2011-03-28 19:24:19 +0200
committerHarald Welte <laforge@gnumonks.org>2011-03-28 20:00:45 +0200
commit36bdf2cb73a82548cc1a6a9e332a4e646a5868b2 (patch)
tree3c4836cb51f163b4c58e3f6d2f33fd8470a8248b
parentd6643d5fcf627d64cc3d7c385ba1cdd3981a8663 (diff)
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
-rw-r--r--include/osmocom/core/bitvec.h2
-rw-r--r--src/bitvec.c14
-rw-r--r--src/gsm/rxlev_stat.c12
3 files changed, 16 insertions, 12 deletions
diff --git a/include/osmocom/core/bitvec.h b/include/osmocom/core/bitvec.h
index 42977fb..bbe1641 100644
--- a/include/osmocom/core/bitvec.h
+++ b/include/osmocom/core/bitvec.h
@@ -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);
diff --git a/src/bitvec.c b/src/bitvec.c
index 4984af2..4fd3834 100644
--- a/src/bitvec.c
+++ b/src/bitvec.c
@@ -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;
+}
diff --git a/src/gsm/rxlev_stat.c b/src/gsm/rxlev_stat.c
index 626aaff..d226861 100644
--- a/src/gsm/rxlev_stat.c
+++ b/src/gsm/rxlev_stat.c
@@ -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;