| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds RB-tree based timers which scales better than the
previous list-based implementation.
It does not require any API changes. It breaks ABI because the
osmo_timer_list structure has changed though (to avoid this in
the future, we can put internal data in some private structure).
The following table summarizes the worst-case computational complexity
of this new implementation versus the previous one:
rb-tree list-based
------- ----------
calculate next timer to expire O(1) O(n)
insertion of new timer O(log n) O(n)
deletion of timer O(log n) O(1)
timer-fired scheduler O(log n) O(3n)
The most repeated cases are:
* the calculation of the next timer to expire, that happens in every
loop of our select function.
* the timer-fired scheduler execution.
This new implementation only loses in the deletion of timer scenario,
this happens because we may need to rebalance the tree after the
removal.
So I think there is some real gain if we have some situation in which
we have to handle lots of timers.
|
|
|
|
|
|
|
|
|
| |
This patch adds red black trees implementation to libosmocore.
This data structure is very useful to search for elements in
ordered sets in O(log n) instead of O(n) that lists provide.
The first client of this code will be one follow up patch that
implements rbtree-based timer scheduler.
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
|
|
|
|
|
|
|
| |
There have been some changes in the wireshark source code that have
never been submitted to gsmtap.h
GSMTAP_CHANNEL_PACCH has been defined in an incompatible way in mainline
wirshark :(
|
|
|
|
|
| |
From: iZsh <izsh@fail0verflow.com>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
|
|
|
|
|
|
| |
fixes tiny compile error:
CC socket.lo
In file included from socket.c:13:
../include/osmocom/core/logging.h:31: error: expected declaration
specifiers or ‘...’ before ‘va_list’
make[3]: *** [socket.lo] Error 1
|
|
|
|
|
| |
Sometimes we need stuff like reversing every bit in each byte (but not
the byte-order).
|
| |
|
|
|
|
|
|
|
| |
Use the u suffix to mark the constant as unsiged integer.
This fixes:
warning: this decimal constant is unsigned only in ISO C90
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This bug was introduced in 95f7eb288c4b8b69d61fa8d68957fb21f09e11e5 and
it caused a segfault on 'write terminal'
|
| |
|
|
|
|
|
| |
They are not used anywhere in our libraries, so they should be defined
by the respective applications
|
|
|
|
|
|
|
|
| |
* All loging prefixes in libraries should be DL like DLINP
* All signals / subsystems should be called S_L_* SS_L_*
* All command nodes should be called L_*_NODE
This makes sure existinc code still compiles as expected
|
|
|
|
|
| |
this ensures struct msgb is the same size as before, which will ensure
binary compatibility
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a new attribute to msgb objects. This new
attribute will store a pointer to the routing information,
in the case of the A-bis link, this will be used to store
e1inp_sign_link instead of struct gsm_bts_trx.
This deprecates msg->trx, that can be removed once all
application are ported to use msg->dst.
|
|
|
|
|
|
| |
This adds the libosmo-abis logging subsystems to libosmocore,
it uses the new change that harald proposed based on negative
numbers for library logging subsystems.
|
|
|
|
|
|
|
|
|
| |
The first range (from 0 to INT_MAX/2) of signal subsystems can be
used by client applications while the second range (from INT_MAX)
is reserved for libraries.
This is useful to support signals defined in libraries that
may be used by different client applications.
|
|
|
|
| |
Detected by Smatch
|
|
|
|
| |
detected by Smatch
|
|
|
|
| |
This has been detected by http://smatch.sourceforge.net/
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We do this by using a trick: library-internal log categories use
negative subsystem numbers, which are converted into positive
array indexes at the time of logging.
library-internal log categories need to be knwo at compile-time,
while application-specified categories now are of unlimited number,
as they are dynamically allocated.
|
| |
|
| |
|
|
|
|
|
| |
The idea here is to use the osmocom core primitive code ot abstract out
primitives for inter-layer comunication in GSM.
|
| |
|
|
|
|
|
|
|
|
| |
This extends the socket infrastructure in libosmocore to allow
to create non-blocking sockets.
Basically, it replaces the connect0_bind1 parameter by one
flags parameter.
|
| |
|
|
|
|
|
|
| |
osmo_sock_init_ofd() is a wrapper around osmo_sock_init() which will
take care of initializing and registering a 'struct osmo_fd' for the
newly-created socket.
|
| |
|
|
|
|
|
|
| |
* use write_queue where applicable
* provide functions that work on raw FD and those with osmo_fd
* add support for multiple gsmtap instances (no global variables)
|
|
|
|
|
|
|
|
|
| |
The plan is to collect structs and routines for application
setup and remove many copies of the boilerplate code we have
right now. This starts with routines to ignore certain signals
and the stderr init code.
Increment the age of the library because a new interface was added.
|