Harald Welte has uploaded this change for review. ( 
https://gerrit.osmocom.org/11415


Change subject: scheduler_trx.c: Switch to osmo_timerfd() of libosmocore >= 
0.12.0
......................................................................

scheduler_trx.c: Switch to osmo_timerfd() of libosmocore >= 0.12.0

Change-Id: I721d493659fde57eca1543b2e63171df1be1279d
Fixes: Coverity CID#178646
---
M configure.ac
M src/osmo-bts-trx/scheduler_trx.c
2 files changed, 10 insertions(+), 72 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/11415/1

diff --git a/configure.ac b/configure.ac
index 38e6713..f2d4f84 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,12 +62,12 @@
 fi

 dnl checks for libraries
-PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore  >= 0.11.0)
-PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.11.0)
-PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.11.0)
-PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 0.11.0)
-PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 0.11.0)
-PKG_CHECK_MODULES(LIBOSMOCODING, libosmocoding >= 0.11.0)
+PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore  >= 0.12.0)
+PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.12.0)
+PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.12.0)
+PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 0.12.0)
+PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 0.12.0)
+PKG_CHECK_MODULES(LIBOSMOCODING, libosmocoding >= 0.12.0)
 PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.5.0)
 PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 0.5.0)

diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 4bac235..fa3aed2 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -1434,68 +1434,6 @@
        ts->tv_nsec = ts->tv_nsec % 1000000000;
 }

-/*! disable the osmocom-wrapped timerfd */
-/* FIXME: Use libosmocore after release with 
Ibeffba7c997252c003723bcd5d14122c4ded2fe7 was made */
-static int timer_ofd_disable(struct osmo_fd *ofd)
-{
-       const struct itimerspec its_null = {
-               .it_value = { 0, 0 },
-               .it_interval = { 0, 0 },
-       };
-       return timerfd_settime(ofd->fd, 0, &its_null, NULL);
-}
-
-/*! schedule the osmcoom-wrapped timerfd to occur first at \a first, then 
periodically at \a interval
- *  \param[in] ofd Osmocom wrapped timerfd
- *  \param[in] first Relative time at which the timer should first execute 
(NULL = \a interval)
- *  \param[in] interval Time interval at which subsequent timer shall fire
- *  \returns 0 on success; negative on error */
-/* FIXME: Use libosmocore after release with 
Ibeffba7c997252c003723bcd5d14122c4ded2fe7 was made */
-static int timer_ofd_schedule(struct osmo_fd *ofd, const struct timespec 
*first,
-                             const struct timespec *interval)
-{
-       struct itimerspec its;
-
-       if (ofd->fd < 0)
-               return -EINVAL;
-
-       /* first expiration */
-       if (first)
-               its.it_value = *first;
-       else
-               its.it_value = *interval;
-       /* repeating interval */
-       its.it_interval = *interval;
-
-       return timerfd_settime(ofd->fd, 0, &its, NULL);
-}
-
-/*! setup osmocom-wrapped timerfd
- *  \param[inout] ofd Osmocom-wrapped timerfd on which to operate
- *  \param[in] cb Call-back function called when timerfd becomes readable
- *  \param[in] data Opaque data to be passed on to call-back
- *  \returns 0 on success; negative on error
- *
- *  We simply initialize the data structures here, but do not yet
- *  schedule the timer.
- */
-/* FIXME: Use libosmocore after release with 
Ibeffba7c997252c003723bcd5d14122c4ded2fe7 was made */
-static int timer_ofd_setup(struct osmo_fd *ofd, int (*cb)(struct osmo_fd *, 
unsigned int), void *data)
-{
-       ofd->cb = cb;
-       ofd->data = data;
-       ofd->when = BSC_FD_READ;
-
-       if (ofd->fd < 0) {
-               ofd->fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
-               if (ofd->fd < 0)
-                       return ofd->fd;
-
-               osmo_fd_register(ofd);
-       }
-       return 0;
-}
-
 /*! Increment a GSM frame number modulo GSM_HYPERFRAME */
 #define INCREMENT_FN(fn)       (fn) = (((fn) + 1) % GSM_HYPERFRAME)
 
@@ -1557,7 +1495,7 @@
        return 0;

 no_clock:
-       timer_ofd_disable(&tcs->fn_timer_ofd);
+       osmo_timerfd_disable(&tcs->fn_timer_ofd);
        transceiver_available = 0;

        bts_shutdown(bts, "No clock from osmo-trx");
@@ -1575,8 +1513,8 @@
        trx_sched_fn(bts, tcs->last_fn_timer.fn);

        /* schedule first FN clock timer */
-       timer_ofd_setup(&tcs->fn_timer_ofd, trx_fn_timer_cb, bts);
-       timer_ofd_schedule(&tcs->fn_timer_ofd, NULL, interval);
+       osmo_timerfd_setup(&tcs->fn_timer_ofd, trx_fn_timer_cb, bts);
+       osmo_timerfd_schedule(&tcs->fn_timer_ofd, NULL, interval);

        tcs->last_fn_timer.tv = *tv_now;
        tcs->last_clk_ind.tv = *tv_now;
@@ -1666,7 +1604,7 @@
                normalize_timespec(&first);
                LOGP(DL1C, LOGL_NOTICE, "We were %d FN faster than TRX, 
compensating\n", -elapsed_fn);
                /* set time to the time our next FN has to be transmitted */
-               timer_ofd_schedule(&tcs->fn_timer_ofd, &first, &interval);
+               osmo_timerfd_schedule(&tcs->fn_timer_ofd, &first, &interval);
                return 0;
        }


--
To view, visit https://gerrit.osmocom.org/11415
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I721d493659fde57eca1543b2e63171df1be1279d
Gerrit-Change-Number: 11415
Gerrit-PatchSet: 1
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>

Reply via email to