L4Re Operating System Framework
Interface and Usage Documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
shmc.h File Reference

Shared memory library header file. More...

#include <l4/sys/linkage.h>
#include <l4/sys/types.h>
#include <l4/sys/err.h>
#include <l4/shmc/types.h>
#include <l4/shmc/internal.h>
+ Include dependency graph for shmc.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

long l4shmc_create (char const *shmc_name)
 Create a shared memory area.
 
long l4shmc_attach (char const *shmc_name, l4shmc_area_t *shmarea)
 Attach to a shared memory area.
 
long l4shmc_get_client_nr (l4shmc_area_t const *shmarea)
 Determine the client number of the shared memory region.
 
long l4shmc_mark_client_initialized (l4shmc_area_t *shmarea)
 Mark this shared memory client as 'initialized'.
 
long l4shmc_get_initialized_clients (l4shmc_area_t *shmarea, l4_umword_t *bitmask)
 Fetch the _clients_init_done bitmask of the shared memory area.
 
long l4shmc_add_chunk (l4shmc_area_t *shmarea, char const *chunk_name, l4_umword_t chunk_capacity, l4shmc_chunk_t *chunk)
 Add a chunk in the shared memory area.
 
long l4shmc_add_signal (l4shmc_area_t *shmarea, char const *signal_name, l4shmc_signal_t *signal)
 Add a signal for the shared memory area.
 
long l4shmc_trigger (l4shmc_signal_t *signal)
 Trigger a signal.
 
long l4shmc_chunk_try_to_take (l4shmc_chunk_t *chunk)
 Try to mark chunk busy.
 
long l4shmc_chunk_try_to_take_for_writing (l4shmc_chunk_t *chunk)
 Try to mark chunk busy writing.
 
long l4shmc_chunk_try_to_take_for_overwriting (l4shmc_chunk_t *chunk)
 Try to mark the chunk busy writing after it was ready for reading.
 
long l4shmc_chunk_try_to_take_for_reading (l4shmc_chunk_t *chunk)
 Try to mark chunk busy reading.
 
long l4shmc_chunk_ready (l4shmc_chunk_t *chunk, l4_umword_t size)
 Mark chunk as filled (ready).
 
long l4shmc_chunk_ready_sig (l4shmc_chunk_t *chunk, l4_umword_t size)
 Mark chunk as filled (ready) and signal consumer.
 
long l4shmc_get_chunk (l4shmc_area_t *shmarea, char const *chunk_name, l4shmc_chunk_t *chunk)
 Get chunk out of shared memory area.
 
long l4shmc_get_chunk_to (l4shmc_area_t *shmarea, char const *chunk_name, l4_umword_t timeout_ms, l4shmc_chunk_t *chunk)
 Get chunk out of shared memory area, with timeout.
 
long l4shmc_iterate_chunk (l4shmc_area_t const *shmarea, char const **chunk_name, long offs)
 Iterate over names of all existing chunks.
 
long l4shmc_attach_signal (l4shmc_area_t *shmarea, char const *signal_name, l4_cap_idx_t thread, l4shmc_signal_t *signal)
 Attach to signal.
 
long l4shmc_get_signal (l4shmc_area_t *shmarea, char const *signal_name, l4shmc_signal_t *signal)
 Get signal object from the shared memory area.
 
long l4shmc_enable_signal (l4shmc_signal_t *signal)
 Enable a signal.
 
long l4shmc_enable_chunk (l4shmc_chunk_t *chunk)
 Enable a signal connected with a chunk.
 
long l4shmc_wait_any (l4shmc_signal_t **retsignal)
 Wait on any signal.
 
long l4shmc_wait_any_try (l4shmc_signal_t **retsignal)
 Check whether any waited signal has an event pending.
 
long l4shmc_wait_any_to (l4_timeout_t timeout, l4shmc_signal_t **retsignal)
 Wait for any signal with timeout.
 
long l4shmc_wait_signal (l4shmc_signal_t *signal)
 Wait on a specific signal.
 
long l4shmc_wait_signal_to (l4shmc_signal_t *signal, l4_timeout_t timeout)
 Wait on a specific signal, with timeout.
 
long l4shmc_wait_signal_try (l4shmc_signal_t *signal)
 Check whether a specific signal has an event pending.
 
long l4shmc_wait_chunk (l4shmc_chunk_t *chunk)
 Wait on a specific chunk.
 
long l4shmc_wait_chunk_to (l4shmc_chunk_t *chunk, l4_timeout_t timeout)
 Check whether a specific chunk has an event pending, with timeout.
 
long l4shmc_wait_chunk_try (l4shmc_chunk_t *chunk)
 Check whether a specific chunk has an event pending.
 
long l4shmc_chunk_consumed (l4shmc_chunk_t *chunk)
 Mark a chunk as free.
 
long l4shmc_connect_chunk_signal (l4shmc_chunk_t *chunk, l4shmc_signal_t *signal)
 Connect a signal with a chunk.
 
long l4shmc_is_chunk_ready (l4shmc_chunk_t const *chunk)
 Check whether data is available.
 
long l4shmc_is_chunk_clear (l4shmc_chunk_t const *chunk)
 Check whether chunk is free.
 
void * l4shmc_chunk_ptr (l4shmc_chunk_t const *chunk)
 Get data pointer to chunk.
 
long l4shmc_chunk_size (l4shmc_chunk_t const *chunk)
 Get current size of a chunk.
 
long l4shmc_chunk_capacity (l4shmc_chunk_t const *chunk)
 Get capacity of a chunk.
 
l4shmc_signal_t * l4shmc_chunk_signal (l4shmc_chunk_t const *chunk)
 Get the registered signal of a chunk.
 
l4_cap_idx_t l4shmc_signal_cap (l4shmc_signal_t const *signal)
 Get the signal capability of a signal.
 
long l4shmc_check_magic (l4shmc_chunk_t const *chunk)
 Check magic value of a chunk.
 
long l4shmc_area_size (l4shmc_area_t const *shmarea)
 Get size of shared memory area.
 
long l4shmc_area_size_free (l4shmc_area_t const *shmarea)
 Get free size of shared memory area.
 
long l4shmc_area_overhead (void)
 Get memory overhead per area that is not available for chunks.
 
long l4shmc_chunk_overhead (void)
 Get memory overhead required in addition to the chunk capacity for adding one chunk.
 

Detailed Description

Shared memory library header file.

Definition in file shmc.h.