OpenMAXBellagio 0.9.3
tsemaphore.h File Reference

Go to the source code of this file.

Data Structures

struct  tsem_t

Defines

#define OSCL_IMPORT_REF
#define OSCL_EXPORT_REF

Typedefs

typedef struct tsem_t tsem_t

Functions

OSCL_IMPORT_REF int tsem_init (tsem_t *tsem, unsigned int val)
OSCL_IMPORT_REF void tsem_deinit (tsem_t *tsem)
OSCL_IMPORT_REF void tsem_down (tsem_t *tsem)
OSCL_IMPORT_REF int tsem_timed_down (tsem_t *tsem, unsigned int milliSecondsDelay)
OSCL_IMPORT_REF void tsem_up (tsem_t *tsem)
OSCL_IMPORT_REF void tsem_reset (tsem_t *tsem)
OSCL_IMPORT_REF void tsem_wait (tsem_t *tsem)
OSCL_IMPORT_REF void tsem_signal (tsem_t *tsem)

Define Documentation

#define OSCL_EXPORT_REF

Definition at line 33 of file tsemaphore.h.

#define OSCL_IMPORT_REF

src/tsemaphore.h

Implements a simple inter-thread semaphore so not to have to deal with IPC creation and the like.

Copyright (C) 2007-2009 STMicroelectronics Copyright (C) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 32 of file tsemaphore.h.


Typedef Documentation

typedef struct tsem_t tsem_t

The structure contains the semaphore value, mutex and green light flag


Function Documentation

OSCL_IMPORT_REF void tsem_deinit ( tsem_t tsem)

Destroy the semaphore

Parameters:
tsemthe semaphore to destroy

Definition at line 57 of file tsemaphore.c.

References tsem_t::condition, and tsem_t::mutex.

Referenced by base_constructor_remove_garbage_collected(), base_port_Destructor(), omx_base_component_Destructor(), and omx_clocksrc_component_Destructor().

OSCL_IMPORT_REF int tsem_init ( tsem_t tsem,
unsigned int  val 
)

Initializes the semaphore at a given value

Parameters:
tsemthe semaphore to initialize
valthe initial value of the semaphore

src/tsemaphore.c

Implements a simple inter-thread semaphore so not to have to deal with IPC creation and the like.

Copyright (C) 2007-2009 STMicroelectronics Copyright (C) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Initializes the semaphore at a given value

Parameters:
tsemthe semaphore to initialize
valthe initial value of the semaphore

Definition at line 39 of file tsemaphore.c.

References tsem_t::condition, tsem_t::mutex, and tsem_t::semval.

Referenced by base_port_Constructor(), main(), omx_base_component_Constructor(), and omx_clocksrc_component_Constructor().

OSCL_IMPORT_REF void tsem_reset ( tsem_t tsem)

Reset the value of the semaphore

Parameters:
tsemthe semaphore to reset

Definition at line 121 of file tsemaphore.c.

References tsem_t::mutex, and tsem_t::semval.

Referenced by base_port_DisablePort(), base_port_FlushProcessingBuffers(), clocksrc_port_FlushProcessingBuffers(), and omx_video_scheduler_component_port_FlushProcessingBuffers().

OSCL_IMPORT_REF void tsem_signal ( tsem_t tsem)

Signal the condition,if waiting

Parameters:
tsemthe semaphore to signal

Definition at line 141 of file tsemaphore.c.

References tsem_t::condition, and tsem_t::mutex.

Referenced by base_port_FlushProcessingBuffers(), clocksrc_port_FlushProcessingBuffers(), omx_base_component_DoStateSet(), and omx_video_scheduler_component_port_FlushProcessingBuffers().

OSCL_IMPORT_REF int tsem_timed_down ( tsem_t tsem,
unsigned int  milliSecondsDelay 
)

Decreases the value of the semaphore. Blocks if the semaphore value is zero. If the timeout is reached the function exits with error ETIMEDOUT

Parameters:
tsemthe semaphore to decrease
timevaluethe value of delay for the timeout

convert timeval to timespec and add delay in milliseconds for the timeout

Definition at line 69 of file tsemaphore.c.

References tsem_t::condition, err, tsem_t::mutex, and tsem_t::semval.

Referenced by main().