diff options
author | Pablo Neira Ayuso <pablo@gnumonks.org> | 2011-03-23 18:08:08 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-03-23 18:08:08 +0100 |
commit | fba495e5f6084800c076e0ecae990ed9e6483530 (patch) | |
tree | 0f9513f0f54bd01ccfdceb172b4fe14b3cabd16b /src/rxlev_stat.c | |
parent | 04139f14b6197e3ec996133a945af3fa8a68fb7a (diff) |
This patch moves the GSM-specific functions to the new library
libosmogsm which is provided by libosmocore.
I have also moved generate_backtrace() to backtrace.c instead
of gsm_utils.c, otherwise the timer and msgfile tests depend on
libosmogsm.
Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
Diffstat (limited to 'src/rxlev_stat.c')
-rw-r--r-- | src/rxlev_stat.c | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/rxlev_stat.c b/src/rxlev_stat.c deleted file mode 100644 index b474aaa8..00000000 --- a/src/rxlev_stat.c +++ /dev/null @@ -1,94 +0,0 @@ -/* Rx Level statistics */ - -/* (C) 2010 by Harald Welte <laforge@gnumonks.org> - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <stdint.h> - -#include <osmocore/bitvec.h> -#include <osmocore/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; - - if (rxlev >= NUM_RXLEVS) - rxlev = NUM_RXLEVS-1; - - bv.data_len = NUM_ARFCNS/8; - bv.data = st->rxlev_buckets[rxlev]; - - bitvec_set_bit_pos(&bv, arfcn, ONE); -} - -/* get the next ARFCN that has the specified Rxlev */ -int16_t rxlev_stat_get_next(const struct rxlev_stats *st, uint8_t rxlev, int16_t arfcn) -{ - struct bitvec bv; - - if (rxlev >= NUM_RXLEVS) - rxlev = NUM_RXLEVS-1; - - bv.data_len = NUM_ARFCNS/8; - - if (arfcn < 0) - arfcn = -1; - - bv.data = (uint8_t *) st->rxlev_buckets[rxlev]; - - return bitvec_find_bit_pos(&bv, arfcn+1, ONE); -} - -void rxlev_stat_reset(struct rxlev_stats *st) -{ - memset(st, 0, sizeof(*st)); -} - -void rxlev_stat_dump(const struct rxlev_stats *st) -{ - int i; - - for (i = NUM_RXLEVS-1; i >= 0; i--) { - int16_t arfcn = -1; - - printf("ARFCN with RxLev %u: ", i); - while ((arfcn = rxlev_stat_get_next(st, i, arfcn)) >= 0) { - printf("%u ", arfcn); - } - printf("\n"); - } -} |