1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

some doc fixes / additions

This commit is contained in:
Georg Reinke 2017-04-16 23:00:30 +02:00
parent 48ad4f9a56
commit 6f6e29e622
5 changed files with 44 additions and 22 deletions

View file

@ -36,7 +36,7 @@ struct websocket {
struct list destinations; /**< List of websocket servers connect to in client mode (struct websocket_destination). */
struct pool pool;
struct queue_signalled queue; /**< For samples which are received from WebSockets a */
struct queue_signalled queue; /**< For samples which are received from WebSockets */
};
/* Internal datastructures */

View file

@ -32,19 +32,19 @@ enum sample_data_format {
};
struct sample {
int sequence; /**< The sequence number of this sample. */
int length; /**< The number of values in sample::values which are valid. */
int capacity; /**< The number of values in sample::values for which memory is reserved. */
int sequence; /**< The sequence number of this sample. */
int length; /**< The number of values in sample::values which are valid. */
int capacity; /**< The number of values in sample::values for which memory is reserved. */
atomic_int refcnt; /**< Reference counter. */
off_t pool_off; /**< This sample is belong to this memory pool (relative pointer). */
struct node *source; /**< The node from which this sample originates. */
atomic_int refcnt; /**< Reference counter. */
off_t pool_off; /**< This sample belongs to this memory pool (relative pointer). */
struct node *source; /**< The node from which this sample originates. */
/** All timestamps are seconds / nano seconds after 1.1.1970 UTC */
struct {
struct timespec origin; /**< The point in time when this data was sampled. */
struct timespec received; /**< The point in time when this data was received. */
struct timespec sent; /**< The point in time this data was send for the last time. */
struct timespec sent; /**< The point in time when this data was send for the last time. */
} ts;
uint64_t format; /**< A long bitfield indicating the number representation of the first 64 values in sample::data[] */
@ -70,8 +70,8 @@ int sample_get(struct sample *s);
/** Decrease reference count and release memory if last reference was held. */
int sample_put(struct sample *s);
/** Set number representation for a single value of a sample. */
/** Get number representation for a single value of a sample. */
int sample_get_data_format(struct sample *s, int idx);
/** Get number representation for a single value of a sample. */
/** Set number representation for a single value of a sample. */
int sample_set_data_format(struct sample *s, int idx, enum sample_data_format fmt);

View file

@ -71,6 +71,3 @@ int sample_io_villas_scan(const char *line, struct sample *s, int *fl);
int sample_io_villas_fprint(FILE *f, struct sample *s, int flags);
int sample_io_villas_fscan(FILE *f, struct sample *s, int *flags);
/* JSON format */

View file

@ -11,6 +11,7 @@
#include "queue.h"
#include "queue_signalled.h"
/** A signalled queue or a regular (polling) queue, depending on the polling setting. */
union shmem_queue {
struct queue q;
struct queue_signalled qs;
@ -18,27 +19,50 @@ union shmem_queue {
/** The structure that actually resides in the shared memory. */
struct shmem_shared {
size_t len; /**< Total size of the shared memory region.*/
size_t len; /**< Total size of the shared memory region.*/
int polling; /**< Whether to use a pthread_cond_t to signal if new samples are written to incoming queue. */
int polling; /**< Whether to use a pthread_cond_t to signal if new samples are written to incoming queue. */
union shmem_queue in; /**< Queue for samples passed from external program to node.*/
union shmem_queue out; /**< Queue for samples passed from node to external program.*/
union shmem_queue in; /**< Queue for samples passed from external program to node.*/
union shmem_queue out; /**< Queue for samples passed from node to external program.*/
struct pool pool; /**< Pool for the samples in the queues. */
struct pool pool; /**< Pool for the samples in the queues. */
pthread_barrier_t start_bar;
pthread_barrier_t start_bar; /**< Barrier for synchronizing the start of both programs. */
pthread_barrierattr_t start_attr;
atomic_size_t node_stopped;
atomic_size_t ext_stopped;
atomic_size_t node_stopped; /**< Set to 1 by VILLASNode if it is stopped/killed. */
atomic_size_t ext_stopped; /**< Set to 1 by the external program if it is stopped/killed. */
};
/** Open the shared memory object and retrieve / initialize the shared data structures.
* @param[in] name Name of the POSIX shared memory object.
* @param[inout] base_ptr The base address of the shared memory region is written to this pointer.
* @retval A valid shmem_shared* on success, or NULL with errno indicating the error on failure.
*/
struct shmem_shared * shmem_shared_open(const char* name, void **base_ptr);
/** Close and destroy the shared memory object and related structures.
* @param[shm] The shared memory structure.
* @param[base] The base address as returned by shmem_shared_open.
*/
int shmem_shared_close(struct shmem_shared *shm, void *base);
/** Read samples from VILLASNode.
* @param[shm] The shared memory structure.
* @param[smps] An array where the pointers to the samples will be written. The samples
* must be freed with sample_put after use.
* @param[cnt] Number of samples to be read.
*/
int shmem_shared_read(struct shmem_shared *shm, struct sample *smps[], unsigned cnt);
/** Write samples to VILLASNode.
* @param[shm] The shared memory structure.
* @param[smps] The samples to be written. Must be allocated from shm->pool.
* @param[cnt] Number of samples to write.
*/
int shmem_shared_write(struct shmem_shared *shm, struct sample *smps[], unsigned cnt);
/** Returns the total size of the shared memory region with the given size of
* the input/output queues (in elements) and the given number of data elements
* per struct sample. */
size_t shmem_total_size(int insize, int outsize, int sample_size);

View file

@ -25,7 +25,8 @@ struct shmem_shared *shared;
void usage()
{
printf("Usage: villas-test-shmem SHM_NAME VECTORIZE\n");
printf(" SHMNAME name of the shared memory object\n");
printf(" SHMNAME name of the shared memory object\n");
printf(" VECTORIZE maximum number of samples to read/write at a time\n");
}
void quit(int sig)