summaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* Rename 'statistics.c' to 'counter.c'Harald Welte2017-10-151-1/+1
| | | | | | | | | With stat_item, stats.c and stats_statsd.c, it is becoming a bit difficult to understand file naming. Also, the 'statistics.c' file actually only contained osmo_counter handling, so let's rename it to counter.c altogether. Change-Id: I2cfb2310543902b7da46cb15a76e2da317eaed7d
* Add pseudo-random bit sequence generator to libosmcooreHarald Welte2017-07-101-1/+1
| | | | | | | These PRBS sequences are specified in ITU-T O.150. They are typically used as test data to be transmitted for BER (bit error rate) testing. Change-Id: I227b6a6e86a251460ecb816afa9a7439d5fb94d1
* src/Makefile.am: fix build: use AM_CFLAGS, not CFLAGSNeels Hofmeyr2017-06-191-4/+4
| | | | | | | | | This allows passing 'make CFLAGS+="..."' without breaking the build. Suggested-by: zecke Change-Id: I0628a9c739cded771605f5c55df7f21cb07beb3b
* core/conv: use proper filenamesVadim Yanitskiy2017-06-191-8/+8
| | | | | | | | | | We already have generic convolutional transcoding implementation written by Sylvain Munaut and named 'conv.c', so 'viterbi_*' names looked a bit confusing. Let's use a single naming scheme for Viterbi related code. Change-Id: I61062a8d1fbf5f5fc85b4fac58dc4e9fa8b5ef90
* core/conv: do not mix up AVX and SSE codeVadim Yanitskiy2017-05-291-2/+15
| | | | | | | | | | | | | | | | | | | | | | | According to GCC's wiki: If you specify command-line switches such as -msse, the compiler could use the extended instruction sets even if the built-ins are not used explicitly in the program. For this reason, applications that perform run-time CPU detection must compile separate files for each supported architecture, using the appropriate flags. In particular, the file containing the CPU detection code should be compiled without these options. So, this change introduces a separate Viterbi implementation, which is almost the same as previous one, but is being compiled with -mavx2. This implementation will be only used by CPUs with both SSE and AVX support: SSE3 and AVX2: viterbi_sse_avx.c SSE3 only: viterbi_sse.c Generic: viterbi_generic.c Change-Id: I042cc76258df7e4c6c90a73af3d0a6e75999b2b0
* core/conv: rename viterbi_gen.c to viterbi_generic.cVadim Yanitskiy2017-05-291-1/+1
| | | | | | | Let's avoid confusion with generated files which have ending with _gen.* as well. Change-Id: I3ecd8f9e73c05236f2cdc186f58b3d0ba552283f
* core/conv: add x86 SSE support for Viterbi decoderTom Tsou2017-05-241-0/+6
| | | | | | | | | | | | | | Fast convolutional decoding is provided through x86 intrinsic based SSE operations. SSE3, found on virtually all modern x86 processors, is the minimal requirement. SSE4.1 and AVX2 are used if available. Also, the original code was extended with runtime SIMD detection, so only supported extensions will be used by target CPU. It makes the library more partable, what is very important for binary packages distribution. Runtime SIMD detection is currently implemented through the __builtin_cpu_supports call. Change-Id: I1da6d71ed0564f1d684f3a836e998d09de5f0351
* add libpseudotalloc as super-simplistic talloc replacementHarald Welte2017-05-171-0/+4
| | | | | | | | | | | In tightly embedded builds (--enable-embedded), we want the ability to replace talloc with a very simple heap allocator to avoid the complexity of talloc without modifying all our code that assumes talloc. This will break the hierarchical notion of the allocator, but libosmo{core,gsm,coding,codec} don't rely on that anyway. Change-Id: Ie341034076f242a813f081919dd09d845775ad35
* sercomm: Include in libosmocore MakefileHarald Welte2017-05-171-1/+1
| | | | Change-Id: If9d50d634381f43b2c67b97fea36a462a66e4559
* core/conv: implement optimized Viterbi decoderTom Tsou2017-04-111-1/+2
| | | | | | | | | | | | | | | | | | | | Add a separate, faster convolution decoding implementation for rates up to N=4 and constraint lengths of K=5 and K=7, which covers the most GSM code uses. The decoding algorithm exploits the symmetric structure of the Viterbi add-compare-select (ACS) operation - commonly known as the ACS butterfly. This shift-register optimization can be found in the well-known text by Dave Forney. Forney, G.D., "The Viterbi Algorithm," Proc. of the IEEE, March 1973. Implementation is non-architecture specific and improves performance on x86 as well as ARM processors. Existing API is unchanged with optimized code being called internally for supported codes. The original code was relicensed under GPLv2-or-later with permission of copyright holder - Tom Tsou. Change-Id: I74d355274b4176a7d924f91ef3c96912ce338fb2
* Catch-up with git version tagsMax2016-12-211-2/+3
| | | | | | | | | | | | * update debian/changelog * update TODO-RELEASE * add comments to Makefile.am and TODO-RELEASE to simplify the process in future * add link to libtool docs to Makefile.am to simplify LIBVERSION maintenance Related: OS#1861 Change-Id: I22c257e357f597519120232d742d6a61289db021
* Implement GSMTAP log targetHarald Welte2016-12-091-1/+1
| | | | | | | This target wraps the to-be-logged string (With metadata) into a GSMTAP packet and sends it to the configured destination address. Change-Id: I9a7e72b8c9c6f6f2d76d1ea2332dcdee12394625
* add osmo_gettimeofday as a shim around gettimeofdayNeels Hofmeyr2016-09-221-1/+1
| | | | | | | This allows feeding a custom time for unit tests by overriding osmo_gettimeofday. Change-Id: Ic7a81a6eb51f27fe452962b91f2eae2070d87089
* Add Finite State Machine abstraction codeHarald Welte2016-06-161-1/+1
| | | | | | | | | | This code is supposed to formalize some of the state machine handling in Osmocom code. Change-Id: I0b0965a912598c1f6b84042a99fea9d522642466 Reviewed-on: https://gerrit.osmocom.org/163 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add T4 bit map compression routinesMax2016-02-181-1/+1
| | | | | | | | | | | | | | | Add bit map encoder and decoder functions: decoder is fully functional while encoder is good enough for testing - no backtracking to find the best possible compression is implemented. If somebody is willing to implement MS side of EDGE than this has to be expanded. Add corresponding tests. N. B: the encoding is implemented according to ETSI TS 44.060 which is slightly different from T4 used for fax according to CCITT G31D (RFC 804). Ticket: OW#2407 Sponsored-by: On-Waves ehf Signed-off-by: Max <msuraev@sysmocom.de>
* Add osmo_prim_op_names[] symbol and _SAP_SS7_BASE defineHarald Welte2015-12-231-1/+1
|
* remove our internal copy of talloc, use system libtallocHarald Welte2015-12-051-11/+5
| | | | | | | Shipping our own private copy of talloc was a good idea in 2008, when it was not readily available on most target platforms. Today, the situation is quite different, as it is a standard library on major Linux distributions.
* stats: Move statsd related code into a separate fileJacob Erlbeck2015-11-261-1/+1
| | | | | | | | | | | This commit moves the stats specific code parts into stats_statsd.c while keeping the generic parts in stats.c. The code in stats.c no longer contains references to statsd symbols. Note that the VTY code still needs to know about every stats reporter backend. Sponsored-by: On-Waves ehf
* stats: Add the reporting frameworkJacob Erlbeck2015-10-291-1/+1
| | | | | | | | This commit provides the stats reporting framework that can manage several types of measurement reporters. Initially support for rate_ctr and the statsd protocol is included. Sponsored-by: On-Waves ehf
* stats: Add stat_item for value monitoringJacob Erlbeck2015-10-281-1/+1
| | | | | | | | | | | | | | This commit adds instrumentation function to gather measurement and statistical values similar to counter groups. Multiple values can be stored per item, which can be retrieved in FIFO order. Getting values from the item does not modify its state to allow for multiple independant backends (e.g. VTY and statd). When a new value is set, the oldest value gets silently overwritten. Lost values are skipped when getting values from the item. Sponsored-by: On-Waves ehf
* Prepare a new libosmocore releaseHolger Hans Peter Freyther2015-01-181-1/+1
|
* build: remove unused all_includes and use AM_CPPFLAGSJan Engelhardt2014-10-031-1/+2
| | | | | Preprocessor flags are best placed in AM_CPPFLAGS. Remove use of the unused all_includes variable, which is never set.
* logging: Add ability to save/print current log filtersHarald Welte2014-08-251-1/+1
| | | | | | This enables the persistent configuration of let's say 'log filter imsi 012345678' for a given log file in the config file.
* osmocore: Add function osmo_macaddr_parse() to parse ETH MAC addressHarald Welte2014-08-181-1/+2
|
* backtrace: Speculative fix for FreeBSD10.0 and execinfo.hHolger Hans Peter Freyther2014-04-171-1/+2
| | | | | | | FreeBSD 10.0 ships an execinfo.h but one needs to link to an additional library for the backtrace functions. Check if there is a backtrace symbol in libexecinfo and if so link to that library.
* cygwin: Link many libraries with -no-undefined to create a dllHolger Hans Peter Freyther2013-03-031-2/+2
| | | | | | Only the Gb library relies on having undefined references to a symbol that needs to be provided by the host application. For all other libraries we can link with -no-undefined.
* Added a ring buffer log target to store the last N log messages.Katerina Barone-Adesi2013-02-271-2/+2
| | | | | | | The log target can be used via log alarms and show alarms. Why? This feature was proposed/requested at http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget All messages use the same amount of space, prioritizing simplicity.
* Revert "Added a ring buffer log target to store the last N log messages."Holger Hans Peter Freyther2013-02-271-2/+2
| | | | | | | I noticed some more issues and it is the easiest to revert and include the fixed version. This reverts commit 73377229bb33ab79682ce4b126a63602d13304ad.
* Added a ring buffer log target to store the last N log messages.Katerina Barone-Adesi2013-02-271-2/+2
| | | | | | | The log target can be used via log alarms and show alarms. Why? This feature was proposed/requested at http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget All messages use the same amount of space, prioritizing simplicity.
* build: Don't use the deprecated INCLUDES in the various Makefile.amSylvain Munaut2012-12-111-2/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* build: use LT_INIT(pic-only) instead of forcing -fPIC.Diego Elio Pettenò2012-06-301-1/+1
| | | | | | | | This actually allows for the user to override the decision and at the same time supports compilers that might not be able to use -fPIC at all. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* build: avoid multi-level recursion for src/ directory.Diego Elio Pettenò2012-06-301-2/+0
| | | | Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* build: use BUILT_SOURCES for the generated source files.Diego Elio Pettenò2012-06-301-0/+2
| | | | | | This avoids possible race conditions on heavily multi-core systems. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* build: use the standard AM_V_GEN definition for output.Diego Elio Pettenò2012-06-301-2/+1
| | | | | | This actually allows for the command to be printed if using `make V=1` Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* libosmogb: move files to proper location and fix buildHarald Welte2012-06-171-1/+1
|
* libosmocore: Update LIBVERSION because of ABI chaangesSylvain Munaut2011-11-241-1/+1
| | | | | | The recent convolutional code changes break the ABI. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* freebsd: Fixes for the compilation of libosmocore on FreeBSDHolger Hans Peter Freyther2011-11-091-1/+1
| | | | | | | | | | | alloca.h is not available on FreeBSD, use the default autoconf function to check for it, there is a complete list[1] of what to do for using alloca but let us see how far we get with this test. Include netinet/in.h for the IPv4 and IPv6 socket address. Check for dlopen in libraries and use this instead of linking -dl. [1] http://www.gnu.org/s/hello/manual/autoconf/Particular-Functions.html
* core: Fix include path to use top_builddir as well for generated headersSylvain Munaut2011-10-211-1/+1
| | | | | | | With the new generated headers for the CRC code, we need to include the builddir as well in case we're building out of tree. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* bump major library version / breaking the ABI with the rb_tree timersHarald Welte2011-10-171-1/+1
|
* add rb-tree implementation to libosmocorePablo Neira Ayuso2011-10-171-1/+1
| | | | | | | | | 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.
* build: resolve link failure when --disable-talloc is usedJan Engelhardt2011-10-101-0/+2
|
* update LIBVERSION to reflect new API additionsHarald Welte2011-10-101-1/+1
|
* core: Add generic CRC functions (templates expended to 8 16 32 64 bits)Sylvain Munaut2011-09-161-1/+6
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* core/serial: Add utilities to deal with serial portsSylvain Munaut2011-09-021-0/+4
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* merge process.[ch] with application.[ch]Harald Welte2011-06-261-1/+1
|
* gsmtap: rework GSMTAP API to be more future-proofHarald Welte2011-05-221-2/+2
| | | | | | * 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)
* app: Introduce some routines to help with application startupHolger Hans Peter Freyther2011-05-121-2/+2
| | | | | | | | | 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.
* libosmocore: bump library interface version to '1' for new osmo_ namesHarald Welte2011-05-081-2/+4
|
* core/conv: Add some generic code for convolutional coding/decodingSylvain Munaut2011-04-261-1/+1
| | | | | | | | | | | | | | | Far from perfect but suits our need thus far. The viterbi with softbit input is quite cpu-intensive. Since most received bursts are often mostly error free, you could use a less cpu intensive algorithm (Fano ?) and with hard bit input. Then only switch to viterbi soft bit input if the channel is bad enough to justify it. Soft output is not implemented as its usefulness for the block coding is limited. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* This patch moves the GSM-specific functions to the new libraryPablo Neira Ayuso2011-03-231-7/+7
| | | | | | | | | | 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>