Skip to content

libtizosal

Juan A. Rubio edited this page Nov 16, 2015 · 9 revisions

Home | Tizonia OpenMAX IL | Skema

An OS abstraction and utility library : 'libtizosal'

libtizosal contains a number of facilities and wrappers that are summarized below.

tizosallog.h

A wrapper is provided around the log4c Logging for C library (LGPL).

When building libtizosal from sources, the Debian package liblog4c-dev is required.

tizosalmem.h

A thin wrapper over the most common memory functions (malloc, free, calloc, memset).

tizosalqueue.h

An implementation of a thread-safe FIFO queue that can be accessed by any number of threads.

tizosalpqueue.h

Non-synchronized priority queue. External synchronisaztion is needed in case it needs to be accessed safely from any number of threads.

This internally used in libtizonia to implement in-thread command queues.

tizosalvector.h

This is a very thin wrapper over UTArray (BSD licensed), a dynamic array implementated in C using macros.

The source code for UTArray, utarray.h is currently distributed with the libtizosal sources.

tizosalsync.h

Semaphore, mutex, and condition variable wrappers.

tizosalthread.h

Wrappers for common thread/task management APIs.

tizosaluuid.h

Universally unique identifier (uuid) utility functions. Implementation is based on libuuid, part of the util-linux (BSD License).

When building libtizosal from sources, the Debian package uuid-dev is required.

tizosalutils.h

Convenience functions to convert OpenMAX IL enumeration values to strings and other utilities.

tizosalrc.h

Configuration file parsing utilities. Utilities to obtain static configuration information from the various tizonia.conf files, the Tizonia configuration scripts.

tizosalsoa.h

Small object allocation utilities. This code is a modified version of the threadalloc utility (MIT licensed) by Konstantin Knizhnik.

tizosalev.h

Event loop, async io, async file status notification and timer utilities. This is based on libev (MIT License) by Marc Lehmann and Emanuele Giaquinta.

When building libtizosal from sources, the Debian package libev-dev is required.

tizosalmap.h

Associative array implementation based on the Avl tree library (BSD-like) by Sam Rushing. Avl tree library source code is included. The original sources for this library code can be found at: http://www.nightmare.com/squirl/python-ext/avl/

tizosalhttp.h

HTTP parser implementation based on joyent's http-parser library (MIT license) available at https://github.com/joyent/http-parser.