libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
Loading...
Searching...
No Matches
pool.h File Reference

Data pool implementation. More...

#include <libosal/queue.h>
#include <libosal/types.h>
#include <libosal/mutex.h>
#include <libosal/semaphore.h>
#include "libethercat/common.h"
#include "libethercat/idx.h"

Go to the source code of this file.

Data Structures

struct  pool_entry
 Pool queue entry. More...
 
struct  pool
 the datagram pool itself More...
 

Macros

#define LEC_MAX_POOL_DATA_SIZE   (1600)
 Maximum data size of ony pool entry.
 

Typedefs

typedef struct pool_entry pool_entry_t
 Pool queue entry.
 
typedef struct pool pool_t
 the datagram pool itself
 

Functions

 TAILQ_HEAD (pool_queue, pool_entry)
 queue head for pool queue
 
int pool_open (pool_t *pp, osal_size_t cnt, pool_entry_t *entries)
 Create a new data pool.
 
int pool_close (pool_t *pp)
 Destroys a datagram pool.
 
int pool_get (pool_t *pp, pool_entry_t **entry, osal_timer_t *timeout)
 Get a datagram from pool.
 
void pool_remove (pool_t *pp, pool_entry_t *entry)
 Remove entry from pool.
 
int pool_peek (pool_t *pp, pool_entry_t **entry)
 Peek next entry from pool.
 
void pool_put (pool_t *pp, pool_entry_t *entry)
 Put entry back to pool.
 
void pool_put_head (pool_t *pp, pool_entry_t *entry)
 Put entry back to pool in front.
 

Detailed Description

Data pool implementation.

EtherCAT master slave registers.

Author
Robert Burger rober.nosp@m.t.bu.nosp@m.rger@.nosp@m.dlr..nosp@m.de
Date
24 Nov 2016

These are EtherCAT pool specific configuration functions.

Author
Robert Burger rober.nosp@m.t.bu.nosp@m.rger@.nosp@m.dlr..nosp@m.de
Date
24 Sep 2022