diff --git a/common b/common
index 47ee3e423..e08b8ac8c 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 47ee3e423f6a03be79d34c6bbfbf2fff7bd7d72b
+Subproject commit e08b8ac8cf4f36bb98cc5410dc94b4433494f080
diff --git a/include/villas/formats/msg.h b/include/villas/formats/msg.h
index d726ab2ed..04bd8e21a 100644
--- a/include/villas/formats/msg.h
+++ b/include/villas/formats/msg.h
@@ -29,7 +29,7 @@ extern "C" {
/* Forward declaration */
struct msg;
struct sample;
-struct list;
+struct vlist;
/** Convert msg from network to host byteorder */
void msg_ntoh(struct msg *m);
@@ -54,10 +54,10 @@ void msg_hdr_ntoh(struct msg *m);
int msg_verify(struct msg *m);
/** Copy fields from \p msg into \p smp. */
-int msg_to_sample(struct msg *msg, struct sample *smp, struct list *signals);
+int msg_to_sample(struct msg *msg, struct sample *smp, struct vlist *signals);
/** Copy fields form \p smp into \p msg. */
-int msg_from_sample(struct msg *msg, struct sample *smp, struct list *signals);
+int msg_from_sample(struct msg *msg, struct sample *smp, struct vlist *signals);
#ifdef __cplusplus
}
diff --git a/include/villas/hook.h b/include/villas/hook.h
index 9c129ec01..5565cfd3a 100644
--- a/include/villas/hook.h
+++ b/include/villas/hook.h
@@ -44,7 +44,7 @@ extern "C" {
/* Forward declarations */
struct path;
struct sample;
-struct list;
+struct vlist;
/** Descriptor for user defined hooks. See hooks[]. */
struct hook {
@@ -63,7 +63,7 @@ struct hook {
};
int hook_init(struct hook *h, struct hook_type *vt, struct path *p, struct node *n);
-int hook_init_builtin_list(struct list *l, bool builtin, int mask, struct path *p, struct node *n);
+int hook_init_builtin_list(struct vlist *l, bool builtin, int mask, struct path *p, struct node *n);
int hook_parse(struct hook *h, json_t *cfg);
@@ -76,9 +76,9 @@ int hook_periodic(struct hook *h);
int hook_restart(struct hook *h);
int hook_process(struct hook *h, struct sample *smps[], unsigned *cnt);
-int hook_process_list(struct list *hs, struct sample *smps[], unsigned cnt);
+int hook_process_list(struct vlist *hs, struct sample *smps[], unsigned cnt);
-/** Compare two hook functions with their priority. Used by list_sort() */
+/** Compare two hook functions with their priority. Used by vlist_sort() */
int hook_cmp_priority(const void *a, const void *b);
/** Parses an object of hooks
@@ -95,7 +95,7 @@ int hook_cmp_priority(const void *a, const void *b);
* hooks = [ "print" ]
* }
*/
-int hook_parse_list(struct list *list, json_t *cfg, int mask, struct path *p, struct node *n);
+int hook_parse_list(struct vlist *list, json_t *cfg, int mask, struct path *p, struct node *n);
#ifdef __cplusplus
}
diff --git a/include/villas/io.h b/include/villas/io.h
index 0705c95d8..390d8f702 100644
--- a/include/villas/io.h
+++ b/include/villas/io.h
@@ -71,7 +71,7 @@ struct io {
size_t buflen;
} in, out;
- struct list *signals; /**< Signal meta data for parsed samples by io_scan() */
+ struct vlist *signals; /**< Signal meta data for parsed samples by io_scan() */
bool header_printed;
enum io_mode mode;
@@ -80,7 +80,7 @@ struct io {
const struct format_type *_vt;
};
-int io_init(struct io *io, const struct format_type *fmt, struct list *signals, int flags);
+int io_init(struct io *io, const struct format_type *fmt, struct vlist *signals, int flags);
int io_init_auto(struct io *io, const struct format_type *fmt, int len, int flags);
diff --git a/include/villas/kernel/if.h b/include/villas/kernel/if.h
index 63b6fe9f5..44417a0ef 100644
--- a/include/villas/kernel/if.h
+++ b/include/villas/kernel/if.h
@@ -57,7 +57,7 @@ struct interface {
char irqs[IF_IRQ_MAX]; /**< List of IRQs of the NIC. */
int affinity; /**< IRQ / Core Affinity of this interface. */
- struct list sockets; /**< Linked list of associated sockets. */
+ struct vlist sockets; /**< Linked list of associated sockets. */
};
/** Add a new interface to the global list and lookup name, irqs...
diff --git a/include/villas/mapping.h b/include/villas/mapping.h
index 7337fb440..fd7346fe2 100644
--- a/include/villas/mapping.h
+++ b/include/villas/mapping.h
@@ -36,7 +36,7 @@ extern "C" {
struct node;
struct sample;
struct signal;
-struct list;
+struct vlist;
enum mapping_type {
MAPPING_TYPE_DATA,
@@ -98,15 +98,15 @@ struct mapping_entry {
};
};
-int mapping_remap(const struct list *m, struct sample *remapped, const struct sample *original, const struct stats *s);
+int mapping_remap(const struct vlist *m, struct sample *remapped, const struct sample *original, const struct stats *s);
int mapping_update(const struct mapping_entry *e, struct sample *remapped, const struct sample *original, const struct stats *s);
-int mapping_parse(struct mapping_entry *e, json_t *cfg, struct list *nodes);
+int mapping_parse(struct mapping_entry *e, json_t *cfg, struct vlist *nodes);
-int mapping_parse_str(struct mapping_entry *e, const char *str, struct list *nodes);
+int mapping_parse_str(struct mapping_entry *e, const char *str, struct vlist *nodes);
-int mapping_parse_list(struct list *l, json_t *cfg, struct list *nodes);
+int mapping_parse_list(struct vlist *l, json_t *cfg, struct vlist *nodes);
int mapping_to_str(const struct mapping_entry *me, unsigned index, char **str);
diff --git a/include/villas/node.h b/include/villas/node.h
index a0673f6af..3c24adabd 100644
--- a/include/villas/node.h
+++ b/include/villas/node.h
@@ -47,7 +47,7 @@ struct node_direction {
int builtin; /**< This node should use built-in hooks by default. */
int vectorize; /**< Number of messages to send / recv at once (scatter / gather) */
- struct list hooks; /**< List of write hooks (struct hook). */
+ struct vlist hooks; /**< List of write hooks (struct hook). */
json_t *cfg; /**< A JSON object containing the configuration of the node. */
};
@@ -71,7 +71,7 @@ struct node
struct node_direction in, out;
- struct list signals; /**< Signal meta data for data which is __received__ by node_read(). */
+ struct vlist signals; /**< Signal meta data for data which is __received__ by node_read(). */
enum state state;
@@ -105,10 +105,10 @@ int node_parse(struct node *n, json_t *cfg, const char *name);
* @param nodes The nodes will be added to this list.
* @param all This list contains all valid nodes.
*/
-int node_parse_list(struct list *list, json_t *cfg, struct list *all);
+int node_parse_list(struct vlist *list, json_t *cfg, struct vlist *all);
/** Parse the list of signal definitions. */
-int node_parse_signals(struct list *list, json_t *cfg);
+int node_parse_signals(struct vlist *list, json_t *cfg);
/** Validate node configuration. */
int node_check(struct node *n);
diff --git a/include/villas/node_type.h b/include/villas/node_type.h
index b1ee0e51e..bff0bdf1d 100644
--- a/include/villas/node_type.h
+++ b/include/villas/node_type.h
@@ -52,7 +52,7 @@ struct node_type {
enum state state; /**< State of this node-type. */
- struct list instances; /**< A list of all existing nodes of this type. */
+ struct vlist instances; /**< A list of all existing nodes of this type. */
size_t size; /**< Size of private data bock. @see node::_vd */
size_t pool_size;
diff --git a/include/villas/nodes/comedi.h b/include/villas/nodes/comedi.h
index f7d938682..7578d2f7b 100644
--- a/include/villas/nodes/comedi.h
+++ b/include/villas/nodes/comedi.h
@@ -61,7 +61,7 @@ struct comedi_direction {
size_t counter; ///< Number of villas samples transfered
struct comedi_chanspec *chanspecs; ///< Range and maxdata config of channels
unsigned *chanlist; ///< Channel list in comedi's packed format
- size_t chanlist_len; ///< Number of channels for this direction
+ size_t chanvlist_len; ///< Number of channels for this direction
char* buffer;
char* bufptr;
diff --git a/include/villas/nodes/iec61850.h b/include/villas/nodes/iec61850.h
index a5010defb..fd5ec729f 100644
--- a/include/villas/nodes/iec61850.h
+++ b/include/villas/nodes/iec61850.h
@@ -108,7 +108,7 @@ int iec61850_type_stop();
const struct iec61850_type_descriptor * iec61850_lookup_type(const char *name);
-int iec61850_parse_signals(json_t *json_signals, struct list *signals, struct list *node_signals);
+int iec61850_parse_signals(json_t *json_signals, struct vlist *signals, struct vlist *node_signals);
struct iec61850_receiver * iec61850_receiver_lookup(enum iec61850_receiver_type t, const char *intf);
diff --git a/include/villas/nodes/iec61850_sv.h b/include/villas/nodes/iec61850_sv.h
index fa3fd578d..b153b6e05 100644
--- a/include/villas/nodes/iec61850_sv.h
+++ b/include/villas/nodes/iec61850_sv.h
@@ -58,7 +58,7 @@ struct iec61850_sv {
struct queue_signalled queue;
struct pool pool;
- struct list signals; /**< Mappings of type struct iec61850_type_descriptor */
+ struct vlist signals; /**< Mappings of type struct iec61850_type_descriptor */
int total_size;
} in;
@@ -76,7 +76,7 @@ struct iec61850_sv {
int smprate;
int confrev;
- struct list signals; /**< Mappings of type struct iec61850_type_descriptor */
+ struct vlist signals; /**< Mappings of type struct iec61850_type_descriptor */
int total_size;
} out;
};
diff --git a/include/villas/nodes/influxdb.h b/include/villas/nodes/influxdb.h
index c27b30640..f1aea13d6 100644
--- a/include/villas/nodes/influxdb.h
+++ b/include/villas/nodes/influxdb.h
@@ -47,7 +47,7 @@ struct influxdb {
char *port;
char *key;
- struct list fields;
+ struct vlist fields;
int sd;
};
diff --git a/include/villas/nodes/nanomsg.h b/include/villas/nodes/nanomsg.h
index 69e66211d..bf9e6ab0c 100644
--- a/include/villas/nodes/nanomsg.h
+++ b/include/villas/nodes/nanomsg.h
@@ -46,7 +46,7 @@ struct format_type;
struct nanomsg {
struct {
int socket;
- struct list endpoints;
+ struct vlist endpoints;
} in, out;
struct format_type *format;
diff --git a/include/villas/nodes/ngsi.h b/include/villas/nodes/ngsi.h
index aae4304fe..b4b3e65f3 100644
--- a/include/villas/nodes/ngsi.h
+++ b/include/villas/nodes/ngsi.h
@@ -65,7 +65,7 @@ struct ngsi {
CURL *curl; /**< libcurl: handle */
- struct list mapping; /**< A mapping between indices of the VILLASnode samples and the attributes in ngsi::context */
+ struct vlist mapping; /**< A mapping between indices of the VILLASnode samples and the attributes in ngsi::context */
};
/** Initialize global NGSI settings and maps shared memory regions.
diff --git a/include/villas/nodes/test_rtt.h b/include/villas/nodes/test_rtt.h
index 9f1c623d4..21a310be8 100644
--- a/include/villas/nodes/test_rtt.h
+++ b/include/villas/nodes/test_rtt.h
@@ -60,7 +60,7 @@ struct test_rtt {
int current; /**< Index of current test in test_rtt::cases */
int counter;
- struct list cases; /**< List of test cases */
+ struct vlist cases; /**< List of test cases */
char *output; /**< The directory where we place the results. */
char *prefix; /**< An optional prefix in the filename. */
diff --git a/include/villas/nodes/websocket.h b/include/villas/nodes/websocket.h
index 77a12bde3..b30e45469 100644
--- a/include/villas/nodes/websocket.h
+++ b/include/villas/nodes/websocket.h
@@ -49,7 +49,7 @@ struct lws;
/** Internal data per websocket node */
struct websocket {
- struct list destinations; /**< List of websocket servers connect to in client mode (struct websocket_destination). */
+ struct vlist 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 */
diff --git a/include/villas/nodes/zeromq.h b/include/villas/nodes/zeromq.h
index dbe15ecc7..f1a254f6f 100644
--- a/include/villas/nodes/zeromq.h
+++ b/include/villas/nodes/zeromq.h
@@ -79,7 +79,7 @@ struct zeromq {
struct {
void *socket; /**< ZeroMQ socket. */
- struct list endpoints;
+ struct vlist endpoints;
char *filter;
} out;
};
diff --git a/include/villas/path.h b/include/villas/path.h
index 76351d9d2..ef36a5ed0 100644
--- a/include/villas/path.h
+++ b/include/villas/path.h
@@ -55,7 +55,7 @@ struct path_source {
bool masked;
struct pool pool;
- struct list mappings; /**< List of mappings (struct mapping_entry). */
+ struct vlist mappings; /**< List of mappings (struct mapping_entry). */
};
struct path_destination {
@@ -85,10 +85,10 @@ struct path {
struct sample *last_sample;
int last_sequence;
- struct list sources; /**< List of all incoming nodes (struct path_source). */
- struct list destinations; /**< List of all outgoing nodes (struct path_destination). */
- struct list hooks; /**< List of processing hooks (struct hook). */
- struct list signals; /**< List of signals which this path creates (struct signal). */
+ struct vlist sources; /**< List of all incoming nodes (struct path_source). */
+ struct vlist destinations; /**< List of all outgoing nodes (struct path_destination). */
+ struct vlist hooks; /**< List of processing hooks (struct hook). */
+ struct vlist signals; /**< List of signals which this path creates (struct signal). */
struct task timeout;
@@ -170,7 +170,7 @@ int path_uses_node(struct path *p, struct node *n);
* @retval 0 Success. Everything went well.
* @retval <0 Error. Something went wrong.
*/
-int path_parse(struct path *p, json_t *cfg, struct list *nodes);
+int path_parse(struct path *p, json_t *cfg, struct vlist *nodes);
/** @} */
diff --git a/include/villas/plugin.h b/include/villas/plugin.h
index cdf6ef17b..11e4ae268 100644
--- a/include/villas/plugin.h
+++ b/include/villas/plugin.h
@@ -48,15 +48,15 @@ extern "C" {
#define REGISTER_PLUGIN(p) \
__attribute__((constructor(110))) static void UNIQUE(__ctor)() {\
if (plugins.state == STATE_DESTROYED) \
- list_init(&plugins); \
- list_push(&plugins, p); \
+ vlist_init(&plugins); \
+ vlist_push(&plugins, p); \
} \
__attribute__((destructor(110))) static void UNIQUE(__dtor)() { \
if (plugins.state != STATE_DESTROYED) \
- list_remove(&plugins, p); \
+ vlist_remove(&plugins, p); \
}
-extern struct list plugins;
+extern struct vlist plugins;
enum plugin_type {
PLUGIN_TYPE_HOOK,
diff --git a/include/villas/sample.h b/include/villas/sample.h
index 0bba02137..1edd39c0a 100644
--- a/include/villas/sample.h
+++ b/include/villas/sample.h
@@ -70,7 +70,7 @@ struct sample {
int capacity; /**< The number of values in sample::values for which memory is reserved. */
int flags; /**< Flags are used to store binary properties of a sample. */
- struct list *signals; /**< The list of signal descriptors. */
+ struct vlist *signals; /**< The list of signal descriptors. */
atomic_int refcnt; /**< Reference counter. */
ptrdiff_t pool_off; /**< This sample belongs to this memory pool (relative pointer). See sample_pool(). */
diff --git a/include/villas/signal.h b/include/villas/signal.h
index 46b36ae96..4917d887b 100644
--- a/include/villas/signal.h
+++ b/include/villas/signal.h
@@ -38,7 +38,7 @@ extern "C" {
#endif
/* Forward declarations */
-struct list;
+struct vlist;
struct node;
struct mapping_entry;
@@ -106,11 +106,11 @@ int signal_parse(struct signal *s, json_t *cfg);
/** Initialize signal from a mapping_entry. */
int signal_init_from_mapping(struct signal *s, const struct mapping_entry *me, unsigned index);
-int signal_list_parse(struct list *list, json_t *cfg);
+int signal_vlist_parse(struct vlist *list, json_t *cfg);
-int signal_list_generate(struct list *list, unsigned len, enum signal_type fmt);
+int signal_vlist_generate(struct vlist *list, unsigned len, enum signal_type fmt);
-void signal_list_dump(const struct list *list);
+void signal_vlist_dump(const struct vlist *list);
enum signal_type signal_type_from_str(const char *str);
diff --git a/include/villas/super_node.h b/include/villas/super_node.h
index f8d6f531c..f6c89536e 100644
--- a/include/villas/super_node.h
+++ b/include/villas/super_node.h
@@ -21,12 +21,12 @@
* along with this program. If not, see .
*********************************************************************************/
-struct list;
+struct vlist;
struct super_node;
-struct list * super_node_get_nodes(struct super_node *sn);
+struct vlist * super_node_get_nodes(struct super_node *sn);
-struct list * super_node_get_nodes(struct super_node *sn);
+struct vlist * super_node_get_nodes(struct super_node *sn);
struct lws_context * super_node_get_web_context(struct super_node *sn);
diff --git a/include/villas/super_node.hpp b/include/villas/super_node.hpp
index 74141898b..8fd7e3a51 100644
--- a/include/villas/super_node.hpp
+++ b/include/villas/super_node.hpp
@@ -47,9 +47,9 @@ protected:
static Logger logger;
- struct list nodes;
- struct list paths;
- struct list plugins;
+ struct vlist nodes;
+ struct vlist paths;
+ struct vlist plugins;
#ifdef WITH_API
Api api;
@@ -96,15 +96,15 @@ public:
struct node * getNode(const std::string &name)
{
- return (struct node *) list_lookup(&nodes, name.c_str());
+ return (struct node *) vlist_lookup(&nodes, name.c_str());
}
- struct list * getNodes()
+ struct vlist * getNodes()
{
return &nodes;
}
- struct list * getPaths() {
+ struct vlist * getPaths() {
return &paths;
}
diff --git a/lib/api/actions/node.cpp b/lib/api/actions/node.cpp
index 56a15ffef..c36947deb 100644
--- a/lib/api/actions/node.cpp
+++ b/lib/api/actions/node.cpp
@@ -53,8 +53,8 @@ public:
if (ret)
return ret;
- struct list *nodes = session->getSuperNode()->getNodes();
- struct node *n = (struct node *) list_lookup(nodes, node_str);
+ struct vlist *nodes = session->getSuperNode()->getNodes();
+ struct node *n = (struct node *) vlist_lookup(nodes, node_str);
if (!n)
return -1;
diff --git a/lib/api/actions/nodes.cpp b/lib/api/actions/nodes.cpp
index b1fb1cc92..867055049 100644
--- a/lib/api/actions/nodes.cpp
+++ b/lib/api/actions/nodes.cpp
@@ -41,10 +41,10 @@ public:
{
json_t *json_nodes = json_array();
- struct list *nodes = session->getSuperNode()->getNodes();
+ struct vlist *nodes = session->getSuperNode()->getNodes();
- for (size_t i = 0; i < list_length(nodes); i++) {
- struct node *n = (struct node *) list_at(nodes, i);
+ for (size_t i = 0; i < vlist_length(nodes); i++) {
+ struct node *n = (struct node *) vlist_at(nodes, i);
json_t *json_node = json_pack("{ s: s, s: s, s: i, s: { s: i }, s: { s: i } }",
"name", node_name_short(n),
diff --git a/lib/api/actions/paths.cpp b/lib/api/actions/paths.cpp
index af5a2ee8c..e78ee2765 100644
--- a/lib/api/actions/paths.cpp
+++ b/lib/api/actions/paths.cpp
@@ -40,10 +40,10 @@ public:
{
json_t *json_paths = json_array();
- struct list *paths = session->getSuperNode()->getPaths();
+ struct vlist *paths = session->getSuperNode()->getPaths();
- for (size_t i = 0; i < list_length(paths); i++) {
- struct path *p = (struct path *) list_at(paths, i);
+ for (size_t i = 0; i < vlist_length(paths); i++) {
+ struct path *p = (struct path *) vlist_at(paths, i);
json_t *json_path = json_pack("{ s: i }",
"state", p->state
diff --git a/lib/formats/csv.c b/lib/formats/csv.c
index e0b0ea0ae..707e409b4 100644
--- a/lib/formats/csv.c
+++ b/lib/formats/csv.c
@@ -59,7 +59,7 @@ static size_t csv_sprint_single(struct io *io, char *buf, size_t len, const stru
if (io->flags & SAMPLE_HAS_DATA) {
for (int i = 0; i < smp->length; i++) {
- sig = list_at_safe(smp->signals, i);
+ sig = vlist_at_safe(smp->signals, i);
if (!sig)
break;
@@ -113,7 +113,7 @@ static size_t csv_sscan_single(struct io *io, const char *buf, size_t len, struc
if (*end == io->delimiter)
goto out;
- struct signal *sig = (struct signal *) list_at_safe(smp->signals, i);
+ struct signal *sig = (struct signal *) vlist_at_safe(smp->signals, i);
if (!sig)
goto out;
@@ -195,7 +195,7 @@ void csv_header(struct io *io, const struct sample *smp)
if (io->flags & SAMPLE_HAS_DATA) {
for (int i = 0; i < smp->length; i++) {
- struct signal *sig = (struct signal *) list_at(smp->signals, i);
+ struct signal *sig = (struct signal *) vlist_at(smp->signals, i);
if (sig->name)
fprintf(f, "%s", sig->name);
diff --git a/lib/formats/json.c b/lib/formats/json.c
index d9c890f8d..0ff5a7d30 100644
--- a/lib/formats/json.c
+++ b/lib/formats/json.c
@@ -208,7 +208,7 @@ static int json_unpack_sample(struct io *io, json_t *json_smp, struct sample *sm
if (i >= smp->capacity)
break;
- struct signal *sig = list_at_safe(smp->signals, i);
+ struct signal *sig = vlist_at_safe(smp->signals, i);
if (!sig)
return -1;
diff --git a/lib/formats/json_reserve.c b/lib/formats/json_reserve.c
index 0ed76efa1..fb6c2c3ab 100644
--- a/lib/formats/json_reserve.c
+++ b/lib/formats/json_reserve.c
@@ -50,7 +50,7 @@ static int json_reserve_pack_sample(struct io *io, json_t **j, struct sample *sm
for (int i = 0; i < smp->length; i++) {
struct signal *sig;
- sig = list_at_safe(smp->signals, i);
+ sig = vlist_at_safe(smp->signals, i);
if (!sig)
return -1;
@@ -186,12 +186,12 @@ static int json_reserve_unpack_sample(struct io *io, json_t *json_smp, struct sa
struct signal *sig;
- sig = (struct signal *) list_lookup(io->signals, name);
+ sig = (struct signal *) vlist_lookup(io->signals, name);
if (sig) {
if (!sig->enabled)
continue;
- idx = list_index(io->signals, sig);
+ idx = vlist_index(io->signals, sig);
}
else {
ret = sscanf(name, "signal_%d", &idx);
diff --git a/lib/formats/msg.c b/lib/formats/msg.c
index 732b11844..83598e826 100644
--- a/lib/formats/msg.c
+++ b/lib/formats/msg.c
@@ -73,7 +73,7 @@ int msg_verify(struct msg *m)
return 0;
}
-int msg_to_sample(struct msg *msg, struct sample *smp, struct list *signals)
+int msg_to_sample(struct msg *msg, struct sample *smp, struct vlist *signals)
{
int ret;
@@ -87,7 +87,7 @@ int msg_to_sample(struct msg *msg, struct sample *smp, struct list *signals)
smp->ts.origin = MSG_TS(msg);
for (int i = 0; i < smp->length; i++) {
- struct signal *sig = list_at(signals, i);
+ struct signal *sig = vlist_at(signals, i);
switch (sig->type) {
case SIGNAL_TYPE_FLOAT:
@@ -106,7 +106,7 @@ int msg_to_sample(struct msg *msg, struct sample *smp, struct list *signals)
return 0;
}
-int msg_from_sample(struct msg *msg, struct sample *smp, struct list *signals)
+int msg_from_sample(struct msg *msg, struct sample *smp, struct vlist *signals)
{
*msg = MSG_INIT(smp->length, smp->sequence);
@@ -114,7 +114,7 @@ int msg_from_sample(struct msg *msg, struct sample *smp, struct list *signals)
msg->ts.nsec = smp->ts.origin.tv_nsec;
for (int i = 0; i < smp->length; i++) {
- struct signal *sig = list_at(signals, i);
+ struct signal *sig = vlist_at(signals, i);
switch (sig->type) {
case SIGNAL_TYPE_FLOAT:
diff --git a/lib/formats/protobuf.c b/lib/formats/protobuf.c
index e61fdb398..b5fc798e8 100644
--- a/lib/formats/protobuf.c
+++ b/lib/formats/protobuf.c
@@ -177,7 +177,7 @@ int protobuf_sscan(struct io *io, const char *buf, size_t len, size_t *rbytes, s
enum signal_type fmt = protobuf_detect_format(pb_val);
- struct signal *sig = (struct signal *) list_at_safe(smp->signals, j);
+ struct signal *sig = (struct signal *) vlist_at_safe(smp->signals, j);
if (!sig)
return -1;
diff --git a/lib/formats/villas_human.c b/lib/formats/villas_human.c
index 76a863f1f..650d9823c 100644
--- a/lib/formats/villas_human.c
+++ b/lib/formats/villas_human.c
@@ -58,7 +58,7 @@ static size_t villas_human_sprint_single(struct io *io, char *buf, size_t len, c
if (io->flags & SAMPLE_HAS_DATA) {
for (int i = 0; i < smp->length; i++) {
- sig = list_at_safe(smp->signals, i);
+ sig = vlist_at_safe(smp->signals, i);
if (!sig)
break;
@@ -138,7 +138,7 @@ static size_t villas_human_sscan_single(struct io *io, const char *buf, size_t l
if (*end == io->delimiter)
goto out;
- struct signal *sig = (struct signal *) list_at_safe(io->signals, i);
+ struct signal *sig = (struct signal *) vlist_at_safe(io->signals, i);
if (!sig)
goto out;
@@ -228,7 +228,7 @@ void villas_human_header(struct io *io, const struct sample *smp)
if (io->flags & SAMPLE_HAS_DATA) {
for (int i = 0; i < smp->length; i++) {
- struct signal *sig = (struct signal *) list_at(smp->signals, i);
+ struct signal *sig = (struct signal *) vlist_at(smp->signals, i);
if (sig->name)
fprintf(f, "%c%s", io->separator, sig->name);
diff --git a/lib/hook.c b/lib/hook.c
index 9d3d80de4..644c140e4 100644
--- a/lib/hook.c
+++ b/lib/hook.c
@@ -166,12 +166,12 @@ int hook_process(struct hook *h, struct sample *smps[], unsigned *cnt)
return 0;
}
-int hook_process_list(struct list *hs, struct sample *smps[], unsigned cnt)
+int hook_process_list(struct vlist *hs, struct sample *smps[], unsigned cnt)
{
unsigned ret;
- for (size_t i = 0; i < list_length(hs); i++) {
- struct hook *h = (struct hook *) list_at(hs, i);
+ for (size_t i = 0; i < vlist_length(hs); i++) {
+ struct hook *h = (struct hook *) vlist_at(hs, i);
ret = hook_process(h, smps, &cnt);
if (ret || !cnt)
@@ -191,7 +191,7 @@ int hook_cmp_priority(const void *a, const void *b)
return ha->priority - hb->priority;
}
-int hook_parse_list(struct list *list, json_t *cfg, int mask, struct path *o, struct node *n)
+int hook_parse_list(struct vlist *list, json_t *cfg, int mask, struct path *o, struct node *n)
{
if (!json_is_array(cfg))
error("Hooks must be configured as a list of objects");
@@ -225,20 +225,20 @@ int hook_parse_list(struct list *list, json_t *cfg, int mask, struct path *o, st
if (ret)
jerror(&err, "Failed to parse hook configuration");
- list_push(list, h);
+ vlist_push(list, h);
}
return 0;
}
-int hook_init_builtin_list(struct list *l, bool builtin, int mask, struct path *p, struct node *n)
+int hook_init_builtin_list(struct vlist *l, bool builtin, int mask, struct path *p, struct node *n)
{
int ret;
assert(l->state == STATE_INITIALIZED);
- for (size_t i = 0; i < list_length(&plugins); i++) {
- struct plugin *q = (struct plugin *) list_at(&plugins, i);
+ for (size_t i = 0; i < vlist_length(&plugins); i++) {
+ struct plugin *q = (struct plugin *) vlist_at(&plugins, i);
struct hook *h;
struct hook_type *vt = &q->hook;
@@ -259,7 +259,7 @@ int hook_init_builtin_list(struct list *l, bool builtin, int mask, struct path *
if (ret)
return ret;
- list_push(l, h);
+ vlist_push(l, h);
}
}
diff --git a/lib/hooks/cast.c b/lib/hooks/cast.c
index 026c3faa3..66e8cfca6 100644
--- a/lib/hooks/cast.c
+++ b/lib/hooks/cast.c
@@ -34,16 +34,16 @@
#include
struct cast {
- struct list operations;
+ struct vlist operations;
- struct list signals;
+ struct vlist signals;
};
static int cast_init(struct hook *h)
{
int ret;
struct cast *c = (struct cast *) h->_vd;
- struct list *orig_signals;
+ struct vlist *orig_signals;
if (h->node)
orig_signals = &h->node->signals;
@@ -52,16 +52,16 @@ static int cast_init(struct hook *h)
else
return -1;
- ret = list_init(&c->signals);
+ ret = vlist_init(&c->signals);
if (ret)
return ret;
/* Copy original signal list */
- for (int i = 0; i < list_length(orig_signals); i++) {
- struct signal *orig_sig = list_at(orig_signals, i);
+ for (int i = 0; i < vlist_length(orig_signals); i++) {
+ struct signal *orig_sig = vlist_at(orig_signals, i);
struct signal *new_sig = signal_copy(orig_sig);
- list_push(&c->signals, new_sig);
+ vlist_push(&c->signals, new_sig);
}
return 0;
@@ -72,7 +72,7 @@ static int cast_destroy(struct hook *h)
int ret;
struct cast *c = (struct cast *) h->_vd;
- ret = list_destroy(&c->signals, (dtor_cb_t) signal_decref, false);
+ ret = vlist_destroy(&c->signals, (dtor_cb_t) signal_decref, false);
if (ret)
return ret;
@@ -124,8 +124,8 @@ static int cast_parse(struct hook *h, json_t *cfg)
return -1;
sig = name
- ? list_lookup(&c->signals, name)
- : list_at_safe(&c->signals, index);
+ ? vlist_lookup(&c->signals, name)
+ : vlist_at_safe(&c->signals, index);
if (!sig)
return -1;
@@ -168,8 +168,8 @@ static int cast_process(struct hook *h, struct sample *smps[], unsigned *cnt)
struct sample *smp = smps[i];
for (int j = 0; j < smp->length; j++) {
- struct signal *orig_sig = list_at(smp->signals, j);
- struct signal *new_sig = list_at(&c->signals, j);
+ struct signal *orig_sig = vlist_at(smp->signals, j);
+ struct signal *new_sig = vlist_at(&c->signals, j);
signal_data_cast(&smp->data[j], orig_sig, new_sig);
}
diff --git a/lib/hooks/print.c b/lib/hooks/print.c
index 7625b798e..b4197c030 100644
--- a/lib/hooks/print.c
+++ b/lib/hooks/print.c
@@ -56,7 +56,7 @@ static int print_start(struct hook *h)
struct print *p = (struct print *) h->_vd;
int ret;
- struct list *signals;
+ struct vlist *signals;
if (h->node)
signals = &h->node->signals;
diff --git a/lib/hooks/restart.c b/lib/hooks/restart.c
index 24386e530..7ee8802d7 100644
--- a/lib/hooks/restart.c
+++ b/lib/hooks/restart.c
@@ -74,14 +74,14 @@ static int restart_process(struct hook *h, struct sample *smps[], unsigned *cnt)
cur->flags |= SAMPLE_IS_FIRST;
/* Run restart hooks */
- for (size_t i = 0; i < list_length(&h->node->in.hooks); i++) {
- struct hook *k = (struct hook *) list_at(&h->node->in.hooks, i);
+ for (size_t i = 0; i < vlist_length(&h->node->in.hooks); i++) {
+ struct hook *k = (struct hook *) vlist_at(&h->node->in.hooks, i);
hook_restart(k);
}
- for (size_t i = 0; i < list_length(&h->node->out.hooks); i++) {
- struct hook *k = (struct hook *) list_at(&h->node->out.hooks, i);
+ for (size_t i = 0; i < vlist_length(&h->node->out.hooks); i++) {
+ struct hook *k = (struct hook *) vlist_at(&h->node->out.hooks, i);
hook_restart(k);
}
diff --git a/lib/io.c b/lib/io.c
index 172ff9e04..65d6c5eb9 100644
--- a/lib/io.c
+++ b/lib/io.c
@@ -79,7 +79,7 @@ skip: bytes = getdelim(&io->in.buffer, &io->in.buflen, io->delimiter, f);
return i;
}
-int io_init(struct io *io, const struct format_type *fmt, struct list *signals, int flags)
+int io_init(struct io *io, const struct format_type *fmt, struct vlist *signals, int flags)
{
int ret;
@@ -112,17 +112,17 @@ int io_init(struct io *io, const struct format_type *fmt, struct list *signals,
int io_init_auto(struct io *io, const struct format_type *fmt, int len, int flags)
{
int ret;
- struct list *signals;
+ struct vlist *signals;
- signals = alloc(sizeof(struct list));
+ signals = alloc(sizeof(struct vlist));
signals->state = STATE_DESTROYED;
- ret = list_init(signals);
+ ret = vlist_init(signals);
if (ret)
return ret;
- ret = signal_list_generate(signals, len, SIGNAL_TYPE_AUTO);
+ ret = signal_vlist_generate(signals, len, SIGNAL_TYPE_AUTO);
if (ret)
return ret;
@@ -146,7 +146,7 @@ int io_destroy(struct io *io)
free(io->out.buffer);
if (io->flags & IO_DESTROY_SIGNALS) {
- ret = list_destroy(io->signals, (dtor_cb_t) signal_decref, false);
+ ret = vlist_destroy(io->signals, (dtor_cb_t) signal_decref, false);
if (ret)
return ret;
}
@@ -160,8 +160,8 @@ int io_check(struct io *io)
{
assert(io->state != STATE_DESTROYED);
- for (size_t i = 0; i < list_length(io->signals); i++) {
- struct signal *sig = (struct signal *) list_at(io->signals, i);
+ for (size_t i = 0; i < vlist_length(io->signals); i++) {
+ struct signal *sig = (struct signal *) vlist_at(io->signals, i);
if (sig->type == SIGNAL_TYPE_AUTO) {
if (io_type(io)->flags & IO_AUTO_DETECT_FORMAT)
diff --git a/lib/kernel/if.c b/lib/kernel/if.c
index cd5f9a433..8e667240c 100644
--- a/lib/kernel/if.c
+++ b/lib/kernel/if.c
@@ -50,7 +50,7 @@ int if_init(struct interface *i, struct rtnl_link *link)
else
warning("Did not found any interrupts for interface '%s'", rtnl_link_get_name(i->nl_link));
- list_init(&i->sockets);
+ vlist_init(&i->sockets);
return 0;
}
@@ -58,7 +58,7 @@ int if_init(struct interface *i, struct rtnl_link *link)
int if_destroy(struct interface *i)
{
/* List members are freed by the nodes they belong to. */
- list_destroy(&i->sockets, NULL, false);
+ vlist_destroy(&i->sockets, NULL, false);
rtnl_qdisc_put(i->tc_qdisc);
@@ -69,7 +69,7 @@ int if_destroy(struct interface *i)
int if_start(struct interface *i)
{
- info("Starting interface '%s' which is used by %zu sockets", rtnl_link_get_name(i->nl_link), list_length(&i->sockets));
+ info("Starting interface '%s' which is used by %zu sockets", rtnl_link_get_name(i->nl_link), vlist_length(&i->sockets));
{
/* Set affinity for network interfaces (skip _loopback_ dev) */
@@ -77,8 +77,8 @@ int if_start(struct interface *i)
/* Assign fwmark's to socket nodes which have netem options */
int ret, mark = 0;
- for (size_t j = 0; j < list_length(&i->sockets); j++) {
- struct socket *s = (struct socket *) list_at(&i->sockets, j);
+ for (size_t j = 0; j < vlist_length(&i->sockets); j++) {
+ struct socket *s = (struct socket *) vlist_at(&i->sockets, j);
if (s->tc_qdisc)
s->mark = 1 + mark++;
@@ -97,8 +97,8 @@ int if_start(struct interface *i)
error("Failed to setup priority queuing discipline: %s", nl_geterror(ret));
/* Create netem qdisks and appropriate filter per netem node */
- for (size_t j = 0; j < list_length(&i->sockets); j++) {
- struct socket *s = (struct socket *) list_at(&i->sockets, j);
+ for (size_t j = 0; j < vlist_length(&i->sockets); j++) {
+ struct socket *s = (struct socket *) vlist_at(&i->sockets, j);
if (s->tc_qdisc) {
ret = tc_mark(i, &s->tc_classifier, TC_HANDLE(1, s->mark), s->mark);
diff --git a/lib/mapping.c b/lib/mapping.c
index dd6e72abc..3bff55a2e 100644
--- a/lib/mapping.c
+++ b/lib/mapping.c
@@ -30,7 +30,7 @@
#include
#include
-int mapping_parse_str(struct mapping_entry *me, const char *str, struct list *nodes)
+int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *nodes)
{
int id;
char *cpy, *node, *type, *field, *subfield, *end;
@@ -46,7 +46,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct list *no
goto invalid_format;
}
- me->node = list_lookup(nodes, node);
+ me->node = vlist_lookup(nodes, node);
if (!me->node) {
warning("Unknown node %s", node);
goto invalid_format;
@@ -154,7 +154,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct list *no
first_str = strtok(NULL, "-]");
if (first_str) {
if (me->node)
- first = list_lookup_index(&me->node->signals, first_str);
+ first = vlist_lookup_index(&me->node->signals, first_str);
if (first < 0) {
char *endptr;
@@ -168,14 +168,14 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct list *no
else {
/* Map all signals */
me->data.offset = 0;
- me->length = me->node ? list_length(&me->node->signals) : 0;
+ me->length = me->node ? vlist_length(&me->node->signals) : 0;
goto end;
}
last_str = strtok(NULL, "]");
if (last_str) {
if (me->node)
- last = list_lookup_index(&me->node->signals, last_str);
+ last = vlist_lookup_index(&me->node->signals, last_str);
if (last < 0) {
char *endptr;
@@ -214,7 +214,7 @@ invalid_format:
return -1;
}
-int mapping_parse(struct mapping_entry *me, json_t *cfg, struct list *nodes)
+int mapping_parse(struct mapping_entry *me, json_t *cfg, struct vlist *nodes)
{
const char *str;
@@ -225,7 +225,7 @@ int mapping_parse(struct mapping_entry *me, json_t *cfg, struct list *nodes)
return mapping_parse_str(me, str, nodes);
}
-int mapping_parse_list(struct list *l, json_t *cfg, struct list *nodes)
+int mapping_parse_list(struct vlist *l, json_t *cfg, struct vlist *nodes)
{
int ret, off;
@@ -253,7 +253,7 @@ int mapping_parse_list(struct list *l, json_t *cfg, struct list *nodes)
me->offset = off;
off += me->length;
- list_push(l, me);
+ vlist_push(l, me);
}
ret = 0;
@@ -354,12 +354,12 @@ int mapping_update(const struct mapping_entry *me, struct sample *remapped, cons
return 0;
}
-int mapping_remap(const struct list *m, struct sample *remapped, const struct sample *original, const struct stats *s)
+int mapping_remap(const struct vlist *m, struct sample *remapped, const struct sample *original, const struct stats *s)
{
int ret;
- for (size_t i = 0; i < list_length(m); i++) {
- struct mapping_entry *me = (struct mapping_entry *) list_at(m, i);
+ for (size_t i = 0; i < vlist_length(m); i++) {
+ struct mapping_entry *me = (struct mapping_entry *) vlist_at(m, i);
ret = mapping_update(me, remapped, original, s);
if (ret)
@@ -451,8 +451,8 @@ int mapping_to_str(const struct mapping_entry *me, unsigned index, char **str)
break;
case MAPPING_TYPE_DATA:
- if (me->node && index < list_length(&me->node->signals)) {
- struct signal *s = list_at(&me->node->signals, index);
+ if (me->node && index < vlist_length(&me->node->signals)) {
+ struct signal *s = vlist_at(&me->node->signals, index);
strcatf(str, "data[%s]", s->name);
}
diff --git a/lib/node.c b/lib/node.c
index 0c61b990f..0e51c70c7 100644
--- a/lib/node.c
+++ b/lib/node.c
@@ -47,7 +47,7 @@ static int node_direction_init2(struct node_direction *nd, struct node *n)
return ret;
/* We sort the hooks according to their priority before starting the path */
- list_sort(&nd->hooks, hook_cmp_priority);
+ vlist_sort(&nd->hooks, hook_cmp_priority);
#endif /* WITH_HOOKS */
return 0;
@@ -62,7 +62,7 @@ static int node_direction_init(struct node_direction *nd, struct node *n)
nd->builtin = 1;
nd->hooks.state = STATE_DESTROYED;
- ret = list_init(&nd->hooks);
+ ret = vlist_init(&nd->hooks);
if (ret)
return ret;
@@ -74,7 +74,7 @@ static int node_direction_destroy(struct node_direction *nd, struct node *n)
int ret = 0;
#ifdef WITH_HOOKS
- ret = list_destroy(&nd->hooks, (dtor_cb_t) hook_destroy, true);
+ ret = vlist_destroy(&nd->hooks, (dtor_cb_t) hook_destroy, true);
if (ret)
return ret;
#endif
@@ -133,8 +133,8 @@ static int node_direction_start(struct node_direction *nd, struct node *n)
#ifdef WITH_HOOKS
int ret;
- for (size_t i = 0; i < list_length(&nd->hooks); i++) {
- struct hook *h = (struct hook *) list_at(&nd->hooks, i);
+ for (size_t i = 0; i < vlist_length(&nd->hooks); i++) {
+ struct hook *h = (struct hook *) vlist_at(&nd->hooks, i);
ret = hook_start(h);
if (ret)
@@ -150,8 +150,8 @@ static int node_direction_stop(struct node_direction *nd, struct node *n)
#ifdef WITH_HOOKS
int ret;
- for (size_t i = 0; i < list_length(&nd->hooks); i++) {
- struct hook *h = (struct hook *) list_at(&nd->hooks, i);
+ for (size_t i = 0; i < vlist_length(&nd->hooks); i++) {
+ struct hook *h = (struct hook *) vlist_at(&nd->hooks, i);
ret = hook_stop(h);
if (ret)
@@ -176,7 +176,7 @@ int node_init(struct node *n, struct node_type *vt)
n->_name_long = NULL;
n->signals.state = STATE_DESTROYED;
- list_init(&n->signals);
+ vlist_init(&n->signals);
/* Default values */
ret = node_direction_init(&n->in, n);
@@ -189,7 +189,7 @@ int node_init(struct node *n, struct node_type *vt)
n->state = STATE_INITIALIZED;
- list_push(&vt->instances, n);
+ vlist_push(&vt->instances, n);
return 0;
}
@@ -240,7 +240,7 @@ int node_parse(struct node *n, json_t *json, const char *name)
}
else if (json_signals) {
if (json_is_array(json_signals)) {
- ret = signal_list_parse(&n->signals, json_signals);
+ ret = signal_vlist_parse(&n->signals, json_signals);
if (ret)
error("Failed to parse signal definition of node %s", node_name(n));
}
@@ -257,13 +257,13 @@ int node_parse(struct node *n, json_t *json, const char *name)
if (type < 0)
error("Invalid signal type %s", type_str);
- signal_list_generate(&n->signals, count, type);
+ signal_vlist_generate(&n->signals, count, type);
}
}
else {
warning("No signal definition found for node %s. Using the default config of %d floating point signals.", node_name(n), DEFAULT_SAMPLE_LENGTH);
- signal_list_generate(&n->signals, DEFAULT_SAMPLE_LENGTH, SIGNAL_TYPE_FLOAT);
+ signal_vlist_generate(&n->signals, DEFAULT_SAMPLE_LENGTH, SIGNAL_TYPE_FLOAT);
}
struct {
@@ -446,7 +446,7 @@ int node_destroy(struct node *n)
int ret;
assert(n->state != STATE_DESTROYED && n->state != STATE_STARTED);
- ret = list_destroy(&n->signals, (dtor_cb_t) signal_decref, false);
+ ret = vlist_destroy(&n->signals, (dtor_cb_t) signal_decref, false);
if (ret)
return ret;
@@ -464,7 +464,7 @@ int node_destroy(struct node *n)
return ret;
}
- list_remove(&node_type(n)->instances, n);
+ vlist_remove(&node_type(n)->instances, n);
if (n->_vd)
free(n->_vd);
@@ -580,9 +580,9 @@ char * node_name_long(struct node *n)
char *name_long = vt->print(n);
strcatf(&n->_name_long, "%s: #in.signals=%zu, #in.hooks=%zu, in.vectorize=%d, #out.hooks=%zu, out.vectorize=%d, %s",
node_name(n),
- list_length(&n->signals),
- list_length(&n->in.hooks), n->in.vectorize,
- list_length(&n->out.hooks), n->out.vectorize,
+ vlist_length(&n->signals),
+ vlist_length(&n->in.hooks), n->in.vectorize,
+ vlist_length(&n->out.hooks), n->out.vectorize,
name_long
);
@@ -622,7 +622,7 @@ struct memory_type * node_memory_type(struct node *n, struct memory_type *parent
return node_type(n)->memory_type ? node_type(n)->memory_type(n, parent) : &memory_hugepage;
}
-int node_parse_list(struct list *list, json_t *cfg, struct list *all)
+int node_parse_list(struct vlist *list, json_t *cfg, struct vlist *all)
{
struct node *node;
const char *str;
@@ -634,11 +634,11 @@ int node_parse_list(struct list *list, json_t *cfg, struct list *all)
switch (json_typeof(cfg)) {
case JSON_STRING:
str = json_string_value(cfg);
- node = list_lookup(all, str);
+ node = vlist_lookup(all, str);
if (!node)
goto invalid2;
- list_push(list, node);
+ vlist_push(list, node);
break;
case JSON_ARRAY:
@@ -646,11 +646,11 @@ int node_parse_list(struct list *list, json_t *cfg, struct list *all)
if (!json_is_string(elm))
goto invalid;
- node = list_lookup(all, json_string_value(elm));
+ node = vlist_lookup(all, json_string_value(elm));
if (!node)
goto invalid;
- list_push(list, node);
+ vlist_push(list, node);
}
break;
@@ -666,8 +666,8 @@ invalid:
return -1;
invalid2:
- for (size_t i = 0; i < list_length(all); i++) {
- struct node *n = (struct node *) list_at(all, i);
+ for (size_t i = 0; i < vlist_length(all); i++) {
+ struct node *n = (struct node *) vlist_at(all, i);
strcatf(&allstr, " %s", node_name_short(n));
}
diff --git a/lib/node_type.c b/lib/node_type.c
index c09a15a73..4e5642e90 100644
--- a/lib/node_type.c
+++ b/lib/node_type.c
@@ -35,7 +35,7 @@ int node_type_start(struct node_type *vt, struct super_node *sn)
if (vt->state != STATE_DESTROYED)
return 0;
- info("Initializing " CLR_YEL("%s") " node type which is used by %zu nodes", node_type_name(vt), list_length(&vt->instances));
+ info("Initializing " CLR_YEL("%s") " node type which is used by %zu nodes", node_type_name(vt), vlist_length(&vt->instances));
ret = vt->type.start ? vt->type.start(sn) : 0;
if (ret == 0)
diff --git a/lib/nodes/comedi.c b/lib/nodes/comedi.c
index b15de33e8..375e5d4c3 100644
--- a/lib/nodes/comedi.c
+++ b/lib/nodes/comedi.c
@@ -64,16 +64,16 @@ static int comedi_parse_direction(struct comedi *c, struct comedi_direction *d,
size_t i;
json_t *json_chan;
- d->chanlist_len = json_array_size(json_chans);
- if (d->chanlist_len == 0) {
+ d->chanvlist_len = json_array_size(json_chans);
+ if (d->chanvlist_len == 0) {
error("No channels configured");
return 0;
}
- d->chanlist = alloc(d->chanlist_len * sizeof(*d->chanlist));
+ d->chanlist = alloc(d->chanvlist_len * sizeof(*d->chanlist));
assert(d->chanlist != NULL);
- d->chanspecs = alloc(d->chanlist_len * sizeof(*d->chanspecs));
+ d->chanspecs = alloc(d->chanvlist_len * sizeof(*d->chanspecs));
assert(d->chanspecs != NULL);
json_array_foreach(json_chans, i, json_chan) {
@@ -109,7 +109,7 @@ static int comedi_start_common(struct node *n)
continue;
/* Sanity-check channel config and populate chanspec for later */
- for (int i = 0; i < d->chanlist_len; i++) {
+ for (int i = 0; i < d->chanvlist_len; i++) {
const unsigned int channel = CR_CHAN(d->chanlist[i]);
const int range = CR_RANGE(d->chanlist[i]);
@@ -207,13 +207,13 @@ static int comedi_start_in(struct node *n)
/* Terminate scan after each channel has been converted */
cmd.scan_end_src = TRIG_COUNT;
- cmd.scan_end_arg = d->chanlist_len;
+ cmd.scan_end_arg = d->chanvlist_len;
/* Contionous sampling */
cmd.stop_src = TRIG_NONE;
cmd.chanlist = d->chanlist;
- cmd.chanlist_len = d->chanlist_len;
+ cmd.chanvlist_len = d->chanvlist_len;
/* First run might change command, second should return successfully */
ret = comedi_command_test(c->dev, &cmd);
@@ -292,14 +292,14 @@ static int comedi_start_out(struct node *n)
cmd.convert_arg = 0;
cmd.scan_end_src = TRIG_COUNT;
- cmd.scan_end_arg = d->chanlist_len;
+ cmd.scan_end_arg = d->chanvlist_len;
/* Continous sampling */
cmd.stop_src = TRIG_NONE;
cmd.stop_arg = 0;
cmd.chanlist = d->chanlist;
- cmd.chanlist_len = d->chanlist_len;
+ cmd.chanvlist_len = d->chanvlist_len;
/* First run might change command, second should return successfully */
ret = comedi_command_test(c->dev, &cmd);
@@ -323,13 +323,13 @@ static int comedi_start_out(struct node *n)
/* Allocate buffer for one complete villas sample */
/** @todo: maybe increase buffer size according to c->vectorize */
- const size_t local_buffer_size = d->sample_size * d->chanlist_len;
+ const size_t local_buffer_size = d->sample_size * d->chanvlist_len;
d->buffer = alloc(local_buffer_size);
d->bufptr = d->buffer;
assert(d->buffer != NULL);
/* Initialize local buffer used for write() syscalls */
- for (int channel = 0; channel < d->chanlist_len; channel++) {
+ for (int channel = 0; channel < d->chanvlist_len; channel++) {
const unsigned raw = comedi_from_phys(0.0f, d->chanspecs[channel].range, d->chanspecs[channel].maxdata);
if (d->sample_size == sizeof(sampl_t))
@@ -348,7 +348,7 @@ static int comedi_start_out(struct node *n)
}
}
- const size_t villas_samples_in_kernel_buf = d->buffer_size / (d->sample_size * d->chanlist_len);
+ const size_t villas_samples_in_kernel_buf = d->buffer_size / (d->sample_size * d->chanvlist_len);
const double latencyMs = (double)villas_samples_in_kernel_buf / d->sample_rate_hz * 1e3;
info("Added latency due to buffering: %4.1f ms\n", latencyMs);
@@ -515,7 +515,7 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
int ret;
struct comedi *c = (struct comedi *) n->_vd;
struct comedi_direction *d = &c->in;
- const size_t villas_sample_size = d->chanlist_len * d->sample_size;
+ const size_t villas_sample_size = d->chanvlist_len * d->sample_size;
ret = comedi_get_buffer_contents(c->dev, d->subdevice);
if (ret < 0) {
@@ -557,7 +557,7 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
/* Sample handling here */
const size_t bytes_available = ret;
const size_t raw_samples_available = bytes_available / d->sample_size;
- const size_t villas_samples_available = raw_samples_available / d->chanlist_len;
+ const size_t villas_samples_available = raw_samples_available / d->chanvlist_len;
info("there are %ld bytes available (%ld requested) => %ld villas samples",
bytes_available, bytes_requested, villas_samples_available);
@@ -572,19 +572,19 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
d->counter++;
smps[i]->flags = SAMPLE_HAS_TS_ORIGIN | SAMPLE_HAS_DATA | SAMPLE_HAS_SEQUENCE;
- smps[i]->sequence = d->counter / d->chanlist_len;
+ smps[i]->sequence = d->counter / d->chanvlist_len;
struct timespec offset = time_from_double(d->counter * 1.0 / d->sample_rate_hz);
smps[i]->ts.origin = time_add(&d->started, &offset);
- smps[i]->length = d->chanlist_len;
+ smps[i]->length = d->chanvlist_len;
- if (smps[i]->capacity < d->chanlist_len) {
+ if (smps[i]->capacity < d->chanvlist_len) {
error("Sample has insufficient capacity: %d < %ld",
- smps[i]->capacity, d->chanlist_len);
+ smps[i]->capacity, d->chanvlist_len);
}
- for (int si = 0; si < d->chanlist_len; si++) {
+ for (int si = 0; si < d->chanvlist_len; si++) {
unsigned int raw;
if (d->sample_size == sizeof(sampl_t))
@@ -633,7 +633,7 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
struct comedi *c = (struct comedi *) n->_vd;
struct comedi_direction *d = &c->in;
- const size_t villas_sample_size = d->chanlist_len * d->sample_size;
+ const size_t villas_sample_size = d->chanvlist_len * d->sample_size;
comedi_set_read_subdevice(c->dev, d->subdevice);
@@ -662,11 +662,11 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
const size_t bytes_available = ret;
const size_t raw_sample_count = bytes_available / d->sample_size;
- size_t villas_sample_count = raw_sample_count / d->chanlist_len;
+ size_t villas_sample_count = raw_sample_count / d->chanvlist_len;
if (villas_sample_count == 0)
return 0;
- info("there are %ld villas samples (%ld raw bytes, %ld channels)", villas_sample_count, bytes_available, d->chanlist_len);
+ info("there are %ld villas samples (%ld raw bytes, %ld channels)", villas_sample_count, bytes_available, d->chanvlist_len);
#if 0
if (villas_sample_count == 1)
@@ -717,18 +717,18 @@ int comedi_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *r
d->counter++;
smps[i]->flags = SAMPLE_HAS_TS_ORIGIN | SAMPLE_HAS_DATA | SAMPLE_HAS_SEQUENCE;
- smps[i]->sequence = d->counter / d->chanlist_len;
+ smps[i]->sequence = d->counter / d->chanvlist_len;
struct timespec offset = time_from_double(d->counter * 1.0 / d->sample_rate_hz);
smps[i]->ts.origin = time_add(&d->started, &offset);
- smps[i]->length = d->chanlist_len;
+ smps[i]->length = d->chanvlist_len;
- if (smps[i]->capacity < d->chanlist_len)
+ if (smps[i]->capacity < d->chanvlist_len)
error("Sample has insufficient capacity: %d < %ld",
- smps[i]->capacity, d->chanlist_len);
+ smps[i]->capacity, d->chanvlist_len);
- for (int si = 0; si < d->chanlist_len; si++) {
+ for (int si = 0; si < d->chanvlist_len; si++) {
unsigned int raw;
if (d->sample_size == sizeof(sampl_t))
@@ -833,8 +833,8 @@ int comedi_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned *
}
const size_t buffer_capacity_raw = d->buffer_size / d->sample_size;
- const size_t buffer_capacity_villas = buffer_capacity_raw / d->chanlist_len;
- const size_t villas_sample_size = d->sample_size * d->chanlist_len;
+ const size_t buffer_capacity_villas = buffer_capacity_raw / d->chanvlist_len;
+ const size_t villas_sample_size = d->sample_size * d->chanvlist_len;
ret = comedi_get_buffer_contents(c->dev, d->subdevice);
if (ret < 0) {
@@ -846,7 +846,7 @@ int comedi_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned *
const size_t bytes_in_buffer = ret;
const size_t raw_samples_in_buffer = bytes_in_buffer / d->sample_size;
- const size_t villas_samples_in_buffer = raw_samples_in_buffer / d->chanlist_len;
+ const size_t villas_samples_in_buffer = raw_samples_in_buffer / d->chanvlist_len;
if (villas_samples_in_buffer == buffer_capacity_villas) {
warning("Comedi buffer is full");
@@ -867,9 +867,9 @@ int comedi_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned *
while (villas_samples_written < cnt) {
struct sample *sample = smps[villas_samples_written];
- if (sample->length != d->chanlist_len)
+ if (sample->length != d->chanvlist_len)
error("Value count in sample (%d) != configured output channels (%ld)",
- sample->length, d->chanlist_len);
+ sample->length, d->chanvlist_len);
d->bufptr = d->buffer;
diff --git a/lib/nodes/iec61850.c b/lib/nodes/iec61850.c
index 8dcf789f2..e438ce2c5 100644
--- a/lib/nodes/iec61850.c
+++ b/lib/nodes/iec61850.c
@@ -60,7 +60,7 @@ const struct iec61850_type_descriptor type_descriptors[] = {
};
/** Each network interface needs a separate receiver */
-static struct list receivers;
+static struct vlist receivers;
static pthread_t thread;
static EthernetHandleSet hset;
static int users = 0;
@@ -76,8 +76,8 @@ static void * iec61850_thread(void *ctx)
if (ret < 0)
continue;
- for (unsigned i = 0; i < list_length(&receivers); i++) {
- struct iec61850_receiver *r = (struct iec61850_receiver *) list_at(&receivers, i);
+ for (unsigned i = 0; i < vlist_length(&receivers); i++) {
+ struct iec61850_receiver *r = (struct iec61850_receiver *) vlist_at(&receivers, i);
switch (r->type) {
case IEC61850_RECEIVER_GOOSE: GooseReceiver_tick(r->goose); break;
@@ -99,12 +99,12 @@ const struct iec61850_type_descriptor * iec61850_lookup_type(const char *name)
return NULL;
}
-int iec61850_parse_signals(json_t *json_signals, struct list *signals, struct list *node_signals)
+int iec61850_parse_signals(json_t *json_signals, struct vlist *signals, struct vlist *node_signals)
{
int ret, total_size = 0;
const char *iec_type;
- ret = list_init(signals);
+ ret = vlist_init(signals);
if (ret)
return ret;
@@ -123,7 +123,7 @@ int iec61850_parse_signals(json_t *json_signals, struct list *signals, struct li
if (!node_signals)
return -1;
- sig = list_at(node_signals, i);
+ sig = vlist_at(node_signals, i);
if (!sig)
return -1;
@@ -149,7 +149,7 @@ int iec61850_parse_signals(json_t *json_signals, struct list *signals, struct li
if (!td)
return -1;
- list_push(signals, (void *) td);
+ vlist_push(signals, (void *) td);
total_size += td->size;
}
@@ -181,8 +181,8 @@ int iec61850_type_stop()
if (--users > 0)
return 0;
- for (unsigned i = 0; i < list_length(&receivers); i++) {
- struct iec61850_receiver *r = (struct iec61850_receiver *) list_at(&receivers, i);
+ for (unsigned i = 0; i < vlist_length(&receivers); i++) {
+ struct iec61850_receiver *r = (struct iec61850_receiver *) vlist_at(&receivers, i);
iec61850_receiver_stop(r);
}
@@ -197,7 +197,7 @@ int iec61850_type_stop()
EthernetHandleSet_destroy(hset);
- list_destroy(&receivers, (dtor_cb_t) iec61850_receiver_destroy, true);
+ vlist_destroy(&receivers, (dtor_cb_t) iec61850_receiver_destroy, true);
return 0;
}
@@ -255,8 +255,8 @@ int iec61850_receiver_destroy(struct iec61850_receiver *r)
struct iec61850_receiver * iec61850_receiver_lookup(enum iec61850_receiver_type t, const char *intf)
{
- for (unsigned i = 0; i < list_length(&receivers); i++) {
- struct iec61850_receiver *r = (struct iec61850_receiver *) list_at(&receivers, i);
+ for (unsigned i = 0; i < vlist_length(&receivers); i++) {
+ struct iec61850_receiver *r = (struct iec61850_receiver *) vlist_at(&receivers, i);
if (r->type == t && strcmp(r->interface, intf) == 0)
return r;
@@ -293,7 +293,7 @@ struct iec61850_receiver * iec61850_receiver_create(enum iec61850_receiver_type
iec61850_receiver_start(r);
- list_push(&receivers, r);
+ vlist_push(&receivers, r);
}
return r;
diff --git a/lib/nodes/iec61850_sv.c b/lib/nodes/iec61850_sv.c
index 9d495730e..570138d88 100644
--- a/lib/nodes/iec61850_sv.c
+++ b/lib/nodes/iec61850_sv.c
@@ -85,9 +85,9 @@ static void iec61850_sv_listener(SVSubscriber subscriber, void *ctx, SVSubscribe
}
unsigned offset = 0;
- for (size_t j = 0; j < list_length(&i->in.signals); j++) {
- struct iec61850_type_descriptor *td = (struct iec61850_type_descriptor *) list_at(&i->in.signals, j);
- struct signal *sig = (struct signal *) list_at_safe(smp->signals, j);
+ for (size_t j = 0; j < vlist_length(&i->in.signals); j++) {
+ struct iec61850_type_descriptor *td = (struct iec61850_type_descriptor *) vlist_at(&i->in.signals, j);
+ struct signal *sig = (struct signal *) vlist_at_safe(smp->signals, j);
if (!sig)
continue;
@@ -231,13 +231,13 @@ char * iec61850_sv_print(struct node *n)
i->out.vlan_priority,
i->out.vlan_id,
i->out.confrev,
- list_length(&i->out.signals)
+ vlist_length(&i->out.signals)
);
}
/* Subscriber part */
if (i->in.enabled)
- strcatf(&buf, ", sub.#fields=%zu", list_length(&i->in.signals));
+ strcatf(&buf, ", sub.#fields=%zu", vlist_length(&i->in.signals));
return buf;
}
@@ -252,8 +252,8 @@ int iec61850_sv_start(struct node *n)
i->out.publisher = SVPublisher_create(NULL, i->interface);
i->out.asdu = SVPublisher_addASDU(i->out.publisher, i->out.svid, node_name_short(n), i->out.confrev);
- for (unsigned k = 0; k < list_length(&i->out.signals); k++) {
- struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) list_at(&i->out.signals, k);
+ for (unsigned k = 0; k < vlist_length(&i->out.signals); k++) {
+ struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) vlist_at(&i->out.signals, k);
switch (m->type) {
case IEC61850_TYPE_INT8: SVPublisher_ASDU_addINT8(i->out.asdu); break;
@@ -288,7 +288,7 @@ int iec61850_sv_start(struct node *n)
SVReceiver_addSubscriber(i->in.receiver, i->in.subscriber);
/* Initialize pool and queue to pass samples between threads */
- ret = pool_init(&i->in.pool, 1024, SAMPLE_LENGTH(list_length(&n->signals)), &memory_hugepage);
+ ret = pool_init(&i->in.pool, 1024, SAMPLE_LENGTH(vlist_length(&n->signals)), &memory_hugepage);
if (ret)
return ret;
@@ -296,9 +296,9 @@ int iec61850_sv_start(struct node *n)
if (ret)
return ret;
- for (unsigned k = 0; k < list_length(&i->in.signals); k++) {
- struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) list_at(&i->in.signals, k);
- struct signal *sig = (struct signal *) list_at(&n->signals, k);
+ for (unsigned k = 0; k < vlist_length(&i->in.signals); k++) {
+ struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) vlist_at(&i->in.signals, k);
+ struct signal *sig = (struct signal *) vlist_at(&n->signals, k);
if (sig->type == SIGNAL_TYPE_AUTO)
sig->type = m->format;
@@ -369,8 +369,8 @@ int iec61850_sv_write(struct node *n, struct sample *smps[], unsigned cnt, unsig
for (unsigned j = 0; j < cnt; j++) {
unsigned offset = 0;
- for (unsigned k = 0; k < MIN(smps[j]->length, list_length(&i->out.signals)); k++) {
- struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) list_at(&i->out.signals, k);
+ for (unsigned k = 0; k < MIN(smps[j]->length, vlist_length(&i->out.signals)); k++) {
+ struct iec61850_type_descriptor *m = (struct iec61850_type_descriptor *) vlist_at(&i->out.signals, k);
int ival = 0;
double fval = 0;
diff --git a/lib/nodes/influxdb.c b/lib/nodes/influxdb.c
index 7f80077aa..76bc6f4e1 100644
--- a/lib/nodes/influxdb.c
+++ b/lib/nodes/influxdb.c
@@ -132,7 +132,7 @@ int influxdb_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned
/* Fields */
for (int j = 0; j < smp->length; j++) {
- struct signal *sig = (struct signal *) list_at(smp->signals, j);
+ struct signal *sig = (struct signal *) vlist_at(smp->signals, j);
union signal_data *data = &smp->data[k];
if (sig->type == SIGNAL_TYPE_AUTO || sig->type == SIGNAL_TYPE_COMPLEX) {
@@ -142,7 +142,7 @@ int influxdb_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned
strcatf(&buf, "%c", j == 0 ? ' ' : ',');
- sig = (struct signal *) list_at(smp->signals, j);
+ sig = (struct signal *) vlist_at(smp->signals, j);
if (!sig)
return -1;
diff --git a/lib/nodes/loopback.c b/lib/nodes/loopback.c
index 6cb01d41d..75e10fd89 100644
--- a/lib/nodes/loopback.c
+++ b/lib/nodes/loopback.c
@@ -74,7 +74,7 @@ int loopback_start(struct node *n)
int ret;
struct loopback *l = (struct loopback *) n->_vd;
- ret = pool_init(&l->pool, l->queuelen, SAMPLE_LENGTH(list_length(&n->signals)), &memory_hugepage);
+ ret = pool_init(&l->pool, l->queuelen, SAMPLE_LENGTH(vlist_length(&n->signals)), &memory_hugepage);
if (ret)
return ret;
diff --git a/lib/nodes/mqtt.c b/lib/nodes/mqtt.c
index 795cbe7e1..2c226264a 100644
--- a/lib/nodes/mqtt.c
+++ b/lib/nodes/mqtt.c
@@ -307,7 +307,7 @@ int mqtt_start(struct node *n)
if (ret)
return ret;
- ret = pool_init(&m->pool, 1024, SAMPLE_LENGTH(list_length(&n->signals)), &memory_hugepage);
+ ret = pool_init(&m->pool, 1024, SAMPLE_LENGTH(vlist_length(&n->signals)), &memory_hugepage);
if (ret)
return ret;
diff --git a/lib/nodes/nanomsg.c b/lib/nodes/nanomsg.c
index b47c07762..b7f037970 100644
--- a/lib/nodes/nanomsg.c
+++ b/lib/nodes/nanomsg.c
@@ -33,20 +33,20 @@ int nanomsg_reverse(struct node *n)
{
struct nanomsg *m = (struct nanomsg *) n->_vd;
- if (list_length(&m->out.endpoints) != 1 ||
- list_length(&m->in.endpoints) != 1)
+ if (vlist_length(&m->out.endpoints) != 1 ||
+ vlist_length(&m->in.endpoints) != 1)
return -1;
- char *subscriber = list_first(&m->in.endpoints);
- char *publisher = list_first(&m->out.endpoints);
+ char *subscriber = vlist_first(&m->in.endpoints);
+ char *publisher = vlist_first(&m->out.endpoints);
- list_set(&m->in.endpoints, 0, publisher);
- list_set(&m->out.endpoints, 0, subscriber);
+ vlist_set(&m->in.endpoints, 0, publisher);
+ vlist_set(&m->out.endpoints, 0, subscriber);
return 0;
}
-static int nanomsg_parse_endpoints(struct list *l, json_t *cfg)
+static int nanomsg_parse_endpoints(struct vlist *l, json_t *cfg)
{
const char *ep;
@@ -60,14 +60,14 @@ static int nanomsg_parse_endpoints(struct list *l, json_t *cfg)
if (!ep)
return -1;
- list_push(l, strdup(ep));
+ vlist_push(l, strdup(ep));
}
break;
case JSON_STRING:
ep = json_string_value(cfg);
- list_push(l, strdup(ep));
+ vlist_push(l, strdup(ep));
break;
default:
@@ -89,8 +89,8 @@ int nanomsg_parse(struct node *n, json_t *cfg)
json_t *json_out_endpoints = NULL;
json_t *json_in_endpoints = NULL;
- list_init(&m->out.endpoints);
- list_init(&m->in.endpoints);
+ vlist_init(&m->out.endpoints);
+ vlist_init(&m->in.endpoints);
ret = json_unpack_ex(cfg, &err, 0, "{ s?: s, s?: { s?: o }, s?: { s?: o } }",
"format", &format,
@@ -129,16 +129,16 @@ char * nanomsg_print(struct node *n)
strcatf(&buf, "format=%s, in.endpoints=[ ", format_type_name(m->format));
- for (size_t i = 0; i < list_length(&m->in.endpoints); i++) {
- char *ep = (char *) list_at(&m->in.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&m->in.endpoints); i++) {
+ char *ep = (char *) vlist_at(&m->in.endpoints, i);
strcatf(&buf, "%s ", ep);
}
strcatf(&buf, "], out.endpoints=[ ");
- for (size_t i = 0; i < list_length(&m->out.endpoints); i++) {
- char *ep = (char *) list_at(&m->out.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&m->out.endpoints); i++) {
+ char *ep = (char *) vlist_at(&m->out.endpoints, i);
strcatf(&buf, "%s ", ep);
}
@@ -179,8 +179,8 @@ int nanomsg_start(struct node *n)
return ret;
/* Bind publisher to socket */
- for (size_t i = 0; i < list_length(&m->out.endpoints); i++) {
- char *ep = (char *) list_at(&m->out.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&m->out.endpoints); i++) {
+ char *ep = (char *) vlist_at(&m->out.endpoints, i);
ret = nn_bind(m->out.socket, ep);
if (ret < 0) {
@@ -190,8 +190,8 @@ int nanomsg_start(struct node *n)
}
/* Connect subscribers socket */
- for (size_t i = 0; i < list_length(&m->in.endpoints); i++) {
- char *ep = (char *) list_at(&m->in.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&m->in.endpoints); i++) {
+ char *ep = (char *) vlist_at(&m->in.endpoints, i);
ret = nn_connect(m->in.socket, ep);
if (ret < 0) {
diff --git a/lib/nodes/ngsi.c b/lib/nodes/ngsi.c
index 79031a027..43b68abc7 100644
--- a/lib/nodes/ngsi.c
+++ b/lib/nodes/ngsi.c
@@ -54,7 +54,7 @@ struct ngsi_attribute {
char *type;
int index;
- struct list metadata;
+ struct vlist metadata;
};
struct ngsi_response {
@@ -73,8 +73,8 @@ static json_t* ngsi_build_entity(struct ngsi *i, struct sample *smps[], unsigned
if (flags & NGSI_ENTITY_ATTRIBUTES) {
json_t *attributes = json_array();
- for (size_t j = 0; j < list_length(&i->mapping); j++) {
- struct ngsi_attribute *map = (struct ngsi_attribute *) list_at(&i->mapping, j);
+ for (size_t j = 0; j < vlist_length(&i->mapping); j++) {
+ struct ngsi_attribute *map = (struct ngsi_attribute *) vlist_at(&i->mapping, j);
json_t *attribute = json_pack("{ s: s, s: s }",
"name", map->name,
@@ -97,8 +97,8 @@ static json_t* ngsi_build_entity(struct ngsi *i, struct sample *smps[], unsigned
if (flags & NGSI_ENTITY_METADATA) { /* Create Metadata for attribute */
json_t *metadatas = json_array();
- for (size_t i = 0; i < list_length(&map->metadata); i++) {
- struct ngsi_metadata *meta = (struct ngsi_metadata *) list_at(&map->metadata, i);
+ for (size_t i = 0; i < vlist_length(&map->metadata); i++) {
+ struct ngsi_metadata *meta = (struct ngsi_metadata *) vlist_at(&map->metadata, i);
json_array_append_new(metadatas, json_pack("{ s: s, s: s, s: s }",
"name", meta->name,
@@ -156,7 +156,7 @@ static int ngsi_parse_entity(json_t *entity, struct ngsi *i, struct sample *smps
return -3;
/* Check attribute name and type */
- map = list_lookup(&i->mapping, name);
+ map = vlist_lookup(&i->mapping, name);
if (!map || strcmp(map->type, type))
return -4;
@@ -196,12 +196,12 @@ static int ngsi_parse_entity(json_t *entity, struct ngsi *i, struct sample *smps
return cnt;
}
-static int ngsi_parse_mapping(struct list *mapping, json_t *cfg)
+static int ngsi_parse_mapping(struct vlist *mapping, json_t *cfg)
{
if (!json_is_array(cfg))
return -1;
- list_init(mapping);
+ vlist_init(mapping);
size_t j;
json_t *json_token;
@@ -225,11 +225,11 @@ static int ngsi_parse_mapping(struct list *mapping, json_t *cfg)
token += bytes;
/* MetadataName(MetadataType)=MetadataValue */
- list_init(&a->metadata);
+ vlist_init(&a->metadata);
struct ngsi_metadata m;
while (sscanf(token, " %m[^(](%m[^)])=%ms%n", &m.name, &m.type, &m.value, &bytes) == 3) {
- list_push(&a->metadata, memdup(&m, sizeof(m)));
+ vlist_push(&a->metadata, memdup(&m, sizeof(m)));
token += bytes;
}
@@ -247,10 +247,10 @@ static int ngsi_parse_mapping(struct list *mapping, json_t *cfg)
};
assert(asprintf(&i.value, "%zu", j));
- list_push(&a->metadata, memdup(&s, sizeof(s)));
- list_push(&a->metadata, memdup(&i, sizeof(i)));
+ vlist_push(&a->metadata, memdup(&s, sizeof(s)));
+ vlist_push(&a->metadata, memdup(&i, sizeof(i)));
- list_push(mapping, a);
+ vlist_push(mapping, a);
}
return 0;
@@ -442,7 +442,7 @@ char * ngsi_print(struct node *n)
struct ngsi *i = (struct ngsi *) n->_vd;
return strf("endpoint=%s, timeout=%.3f secs, #mappings=%zu",
- i->endpoint, i->timeout, list_length(&i->mapping));
+ i->endpoint, i->timeout, vlist_length(&i->mapping));
}
static int ngsi_metadata_destroy(struct ngsi_metadata *meta)
@@ -459,7 +459,7 @@ static int ngsi_attribute_destroy(struct ngsi_attribute *attr)
free(attr->name);
free(attr->type);
- list_destroy(&attr->metadata, (dtor_cb_t) ngsi_metadata_destroy, true);
+ vlist_destroy(&attr->metadata, (dtor_cb_t) ngsi_metadata_destroy, true);
return 0;
}
@@ -468,7 +468,7 @@ int ngsi_destroy(struct node *n)
{
struct ngsi *i = (struct ngsi *) n->_vd;
- list_destroy(&i->mapping, (dtor_cb_t) ngsi_attribute_destroy, true);
+ vlist_destroy(&i->mapping, (dtor_cb_t) ngsi_attribute_destroy, true);
return 0;
}
@@ -484,7 +484,7 @@ int ngsi_start(struct node *n)
if (i->access_token) {
char buf[128];
snprintf(buf, sizeof(buf), "Auth-Token: %s", i->access_token);
- i->headers = curl_slist_append(i->headers, buf);
+ i->headers = curl_svlist_append(i->headers, buf);
}
/* Create task */
@@ -495,8 +495,8 @@ int ngsi_start(struct node *n)
if (ret)
serror("Failed to create task");
- i->headers = curl_slist_append(i->headers, "Accept: application/json");
- i->headers = curl_slist_append(i->headers, "Content-Type: application/json");
+ i->headers = curl_svlist_append(i->headers, "Accept: application/json");
+ i->headers = curl_svlist_append(i->headers, "Content-Type: application/json");
curl_easy_setopt(i->curl, CURLOPT_SSL_VERIFYPEER, i->ssl_verify);
curl_easy_setopt(i->curl, CURLOPT_TIMEOUT_MS, i->timeout * 1e3);
@@ -528,7 +528,7 @@ int ngsi_stop(struct node *n)
json_decref(entity);
curl_easy_cleanup(i->curl);
- curl_slist_free_all(i->headers);
+ curl_svlist_free_all(i->headers);
return ret;
}
diff --git a/lib/nodes/shmem.c b/lib/nodes/shmem.c
index 4fe762fa6..c4e0bd145 100644
--- a/lib/nodes/shmem.c
+++ b/lib/nodes/shmem.c
@@ -47,7 +47,7 @@ int shmem_parse(struct node *n, json_t *cfg)
/* Default values */
shm->conf.queuelen = MAX(DEFAULT_SHMEM_QUEUELEN, n->in.vectorize);
- shm->conf.samplelen = list_length(&n->signals);
+ shm->conf.samplelen = vlist_length(&n->signals);
shm->conf.polling = false;
shm->exec = NULL;
diff --git a/lib/nodes/signal_generator.c b/lib/nodes/signal_generator.c
index 28ae75438..7573a65f3 100644
--- a/lib/nodes/signal_generator.c
+++ b/lib/nodes/signal_generator.c
@@ -86,7 +86,7 @@ static void signal_generator_init_signals(struct node *n)
{
struct signal_generator *s = (struct signal_generator *) n->_vd;
- assert(list_length(&n->signals) == 0);
+ assert(vlist_length(&n->signals) == 0);
for (int i = 0; i < s->values; i++) {
struct signal *sig = alloc(sizeof(struct signal));
@@ -96,7 +96,7 @@ static void signal_generator_init_signals(struct node *n)
sig->name = strdup(signal_generator_type_str(rtype));
sig->type = SIGNAL_TYPE_FLOAT; /* All generated signals are of type float */
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
}
}
diff --git a/lib/nodes/socket.c b/lib/nodes/socket.c
index fc3958ddb..d5ac8eb9d 100644
--- a/lib/nodes/socket.c
+++ b/lib/nodes/socket.c
@@ -51,7 +51,7 @@
static struct plugin p;
/* Private static storage */
-struct list interfaces = { .state = STATE_DESTROYED };
+struct vlist interfaces = { .state = STATE_DESTROYED };
int socket_type_start(struct super_node *sn)
{
@@ -59,11 +59,11 @@ int socket_type_start(struct super_node *sn)
int ret;
nl_init(); /* Fill link cache */
- list_init(&interfaces);
+ vlist_init(&interfaces);
/* Gather list of used network interfaces */
- for (size_t i = 0; i < list_length(&p.node.instances); i++) {
- struct node *n = (struct node *) list_at(&p.node.instances, i);
+ for (size_t i = 0; i < vlist_length(&p.node.instances); i++) {
+ struct node *n = (struct node *) vlist_at(&p.node.instances, i);
struct socket *s = (struct socket *) n->_vd;
struct rtnl_link *link;
@@ -83,8 +83,8 @@ int socket_type_start(struct super_node *sn)
/* Search of existing interface with correct ifindex */
struct interface *i;
- for (size_t k = 0; k < list_length(&interfaces); k++) {
- i = (struct interface *) list_at(&interfaces, k);
+ for (size_t k = 0; k < vlist_length(&interfaces); k++) {
+ i = (struct interface *) vlist_at(&interfaces, k);
if (rtnl_link_get_ifindex(i->nl_link) == rtnl_link_get_ifindex(link))
goto found;
@@ -97,13 +97,13 @@ int socket_type_start(struct super_node *sn)
if (ret)
continue;
- list_push(&interfaces, i);
+ vlist_push(&interfaces, i);
-found: list_push(&i->sockets, s);
+found: vlist_push(&i->sockets, s);
}
- for (size_t j = 0; j < list_length(&interfaces); j++) {
- struct interface *i = (struct interface *) list_at(&interfaces, j);
+ for (size_t j = 0; j < vlist_length(&interfaces); j++) {
+ struct interface *i = (struct interface *) vlist_at(&interfaces, j);
if_start(i);
}
@@ -115,13 +115,13 @@ found: list_push(&i->sockets, s);
int socket_type_stop()
{
#ifdef WITH_NETEM
- for (size_t j = 0; j < list_length(&interfaces); j++) {
- struct interface *i = (struct interface *) list_at(&interfaces, j);
+ for (size_t j = 0; j < vlist_length(&interfaces); j++) {
+ struct interface *i = (struct interface *) vlist_at(&interfaces, j);
if_stop(i);
}
- list_destroy(&interfaces, (dtor_cb_t) if_destroy, false);
+ vlist_destroy(&interfaces, (dtor_cb_t) if_destroy, false);
#endif /* WITH_NETEM */
return 0;
diff --git a/lib/nodes/stats.c b/lib/nodes/stats.c
index a3aab750e..5e27ffd4e 100644
--- a/lib/nodes/stats.c
+++ b/lib/nodes/stats.c
@@ -36,7 +36,7 @@
#define STATS_METRICS 6
-static struct list *nodes; /** The global list of nodes */
+static struct vlist *nodes; /** The global list of nodes */
static void stats_init_signals(struct node *n)
{
@@ -50,42 +50,42 @@ static void stats_init_signals(struct node *n)
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "total");
sig->type = SIGNAL_TYPE_INTEGER;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
/* Last */
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "last");
sig->unit = strdup(desc->unit);
sig->type = SIGNAL_TYPE_FLOAT;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
/* Highest */
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "highest");
sig->unit = strdup(desc->unit);
sig->type = SIGNAL_TYPE_FLOAT;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
/* Lowest */
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "lowest");
sig->unit = strdup(desc->unit);
sig->type = SIGNAL_TYPE_FLOAT;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
/* Mean */
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "mean");
sig->unit = strdup(desc->unit);
sig->type = SIGNAL_TYPE_FLOAT;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
/* Variance */
sig = alloc(sizeof(struct signal));
sig->name = strf("%s.%s", desc->name, "var");
sig->unit = strf("%s^2", desc->unit); // variance has squared unit of variable
sig->type = SIGNAL_TYPE_FLOAT;
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
}
}
@@ -105,7 +105,7 @@ int stats_node_start(struct node *n)
if (ret)
serror("Failed to create task");
- s->node = list_lookup(nodes, s->node_str);
+ s->node = vlist_lookup(nodes, s->node_str);
if (!s->node)
error("Invalid reference node %s for setting 'node' of node %s", s->node_str, node_name(n));
diff --git a/lib/nodes/test_rtt.c b/lib/nodes/test_rtt.c
index dc5455591..f11ec15ea 100644
--- a/lib/nodes/test_rtt.c
+++ b/lib/nodes/test_rtt.c
@@ -33,7 +33,7 @@
static int test_rtt_case_start(struct test_rtt *t, int id)
{
int ret;
- struct test_rtt_case *c = (struct test_rtt_case *) list_at(&t->cases, id);
+ struct test_rtt_case *c = (struct test_rtt_case *) vlist_at(&t->cases, id);
/* Open file */
ret = io_open(&t->io, c->filename);
@@ -91,7 +91,7 @@ int test_rtt_parse(struct node *n, json_t *cfg)
t->cooldown = 1.0;
/* Generate list of test cases */
- list_init(&t->cases);
+ vlist_init(&t->cases);
ret = json_unpack_ex(cfg, &err, 0, "{ s?: s, s?: s, s?: s, s?: F, s: o }",
"prefix", &prefix,
@@ -112,7 +112,7 @@ int test_rtt_parse(struct node *n, json_t *cfg)
error("Invalid value for setting 'format' of node %s", node_name(n));
- /* Construct list of test cases */
+ /* Construct vlist of test cases */
if (!json_is_array(json_cases))
error("The 'cases' setting of node %s must be an array.", node_name(n));
@@ -192,7 +192,7 @@ int test_rtt_parse(struct node *n, json_t *cfg)
c->filename = strf("%s/%s_%d_%.0f.log", t->output, t->prefix, c->values, c->rate);
- list_push(&t->cases, c);
+ vlist_push(&t->cases, c);
}
}
}
@@ -208,7 +208,7 @@ int test_rtt_destroy(struct node *n)
int ret;
struct test_rtt *t = (struct test_rtt *) n->_vd;
- ret = list_destroy(&t->cases, NULL, true);
+ ret = vlist_destroy(&t->cases, NULL, true);
if (ret)
return ret;
@@ -229,7 +229,7 @@ char * test_rtt_print(struct node *n)
{
struct test_rtt *t = (struct test_rtt *) n->_vd;
- return strf("output=%s, prefix=%s, cooldown=%f, #cases=%zu", t->output, t->prefix, t->cooldown, list_length(&t->cases));
+ return strf("output=%s, prefix=%s, cooldown=%f, #cases=%zu", t->output, t->prefix, t->cooldown, vlist_length(&t->cases));
}
int test_rtt_start(struct node *n)
@@ -237,7 +237,7 @@ int test_rtt_start(struct node *n)
int ret;
struct stat st;
struct test_rtt *t = (struct test_rtt *) n->_vd;
- struct test_rtt_case *c = list_first(&t->cases);
+ struct test_rtt_case *c = vlist_first(&t->cases);
/* Create folder for results if not present */
ret = stat(t->output, &st);
@@ -306,13 +306,13 @@ int test_rtt_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned
t->current++;
}
- if (t->current >= list_length(&t->cases)) {
+ if (t->current >= vlist_length(&t->cases)) {
info("This was the last case. Terminating.");
killme(SIGTERM);
pause();
}
else {
- struct test_rtt_case *c = (struct test_rtt_case *) list_at(&t->cases, t->current);
+ struct test_rtt_case *c = (struct test_rtt_case *) vlist_at(&t->cases, t->current);
info("Starting case #%d: filename=%s, rate=%f, values=%d, limit=%d", t->current, c->filename, c->rate, c->values, c->limit);
ret = test_rtt_case_start(t, t->current);
if (ret)
@@ -320,7 +320,7 @@ int test_rtt_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned
}
}
- struct test_rtt_case *c = (struct test_rtt_case *) list_at(&t->cases, t->current);
+ struct test_rtt_case *c = (struct test_rtt_case *) vlist_at(&t->cases, t->current);
/* Wait */
steps = task_wait(&t->task);
@@ -365,7 +365,7 @@ int test_rtt_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned
if (t->current < 0)
return 0;
- struct test_rtt_case *c = (struct test_rtt_case *) list_at(&t->cases, t->current);
+ struct test_rtt_case *c = (struct test_rtt_case *) vlist_at(&t->cases, t->current);
int i;
for (i = 0; i < cnt; i++) {
diff --git a/lib/nodes/websocket.c b/lib/nodes/websocket.c
index d5f16fd06..6e1853c7c 100644
--- a/lib/nodes/websocket.c
+++ b/lib/nodes/websocket.c
@@ -40,7 +40,7 @@
#define DEFAULT_WEBSOCKET_BUFFER_SIZE (1 << 12)
/* Private static storage */
-static struct list connections = { .state = STATE_DESTROYED }; /**< List of active libwebsocket connections which receive samples from all nodes (catch all) */
+static struct vlist connections = { .state = STATE_DESTROYED }; /**< List of active libwebsocket connections which receive samples from all nodes (catch all) */
// @todo: port to C++
//static struct web *web;
@@ -228,7 +228,7 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
format = "villas.web";
/* Search for node whose name matches the URI. */
- c->node = list_lookup(&p.node.instances, node);
+ c->node = vlist_lookup(&p.node.instances, node);
if (!c->node) {
websocket_connection_close(c, wsi, LWS_CLOSE_STATUS_POLICY_VIOLATION, "Unknown node");
warning("Failed to find node: node=%s", node);
@@ -250,7 +250,7 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
return -1;
}
- list_push(&connections, c);
+ vlist_push(&connections, c);
debug(LOG_WEBSOCKET | 10, "Initialized WebSocket connection: %s", websocket_connection_name(c));
break;
@@ -270,7 +270,7 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
}
if (connections.state == STATE_INITIALIZED)
- list_remove(&connections, c);
+ vlist_remove(&connections, c);
if (c->state == WEBSOCKET_CONNECTION_STATE_INITIALIZED)
websocket_connection_destroy(c);
@@ -375,7 +375,7 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
int websocket_type_start(struct super_node *ssn)
{
- list_init(&connections);
+ vlist_init(&connections);
//web = NULL; /// @todo: Port to C++ &sn->web;
sn = ssn;
@@ -401,9 +401,9 @@ int websocket_start(struct node *n)
if (ret)
return ret;
- for (int i = 0; i < list_length(&w->destinations); i++) {
+ for (int i = 0; i < vlist_length(&w->destinations); i++) {
const char *format;
- struct websocket_destination *d = (struct websocket_destination *) list_at(&w->destinations, i);
+ struct websocket_destination *d = (struct websocket_destination *) vlist_at(&w->destinations, i);
struct websocket_connection *c = (struct websocket_connection *) alloc(sizeof(struct websocket_connection));
c->state = WEBSOCKET_CONNECTION_STATE_CONNECTING;
@@ -434,8 +434,8 @@ int websocket_stop(struct node *n)
int ret;
struct websocket *w = (struct websocket *) n->_vd;
- for (size_t i = 0; i < list_length(&connections); i++) {
- struct websocket_connection *c = (struct websocket_connection *) list_at(&connections, i);
+ for (size_t i = 0; i < vlist_length(&connections); i++) {
+ struct websocket_connection *c = (struct websocket_connection *) vlist_at(&connections, i);
if (c->node != n)
continue;
@@ -450,8 +450,8 @@ int websocket_stop(struct node *n)
int open_connections = 0;
/* Count open connections belonging to this node */
- for (int i = 0; i < list_length(&connections); i++) {
- struct websocket_connection *c = (struct websocket_connection *) list_at(&connections, i);
+ for (int i = 0; i < vlist_length(&connections); i++) {
+ struct websocket_connection *c = (struct websocket_connection *) vlist_at(&connections, i);
if (c->node == n)
open_connections++;
@@ -460,7 +460,7 @@ int websocket_stop(struct node *n)
if (open_connections == 0)
break;
- info("Waiting for shutdown of %zu connections... %d/10", list_length(&connections), j);
+ info("Waiting for shutdown of %zu connections... %d/10", vlist_length(&connections), j);
sleep(1);
}
@@ -480,7 +480,7 @@ int websocket_destroy(struct node *n)
struct websocket *w = (struct websocket *) n->_vd;
int ret;
- ret = list_destroy(&w->destinations, (dtor_cb_t) websocket_destination_destroy, true);
+ ret = vlist_destroy(&w->destinations, (dtor_cb_t) websocket_destination_destroy, true);
if (ret)
return ret;
@@ -518,8 +518,8 @@ int websocket_write(struct node *n, struct sample *smps[], unsigned cnt, unsigne
sample_copy_many(cpys, smps, avail);
- for (size_t i = 0; i < list_length(&connections); i++) {
- struct websocket_connection *c = (struct websocket_connection *) list_at(&connections, i);
+ for (size_t i = 0; i < vlist_length(&connections); i++) {
+ struct websocket_connection *c = (struct websocket_connection *) vlist_at(&connections, i);
if (c->node == n)
websocket_connection_write(c, cpys, cnt);
@@ -540,7 +540,7 @@ int websocket_parse(struct node *n, json_t *cfg)
json_t *json_dest;
json_error_t err;
- list_init(&w->destinations);
+ vlist_init(&w->destinations);
ret = json_unpack_ex(cfg, &err, 0, "{ s?: o }", "destinations", &json_dests);
if (ret)
@@ -573,7 +573,7 @@ int websocket_parse(struct node *n, json_t *cfg)
d->info.ietf_version_or_minus_one = -1;
d->info.protocol = "live";
- list_push(&w->destinations, d);
+ vlist_push(&w->destinations, d);
}
}
@@ -588,8 +588,8 @@ char * websocket_print(struct node *n)
buf = strcatf(&buf, "destinations=[ ");
- for (size_t i = 0; i < list_length(&w->destinations); i++) {
- struct websocket_destination *d = (struct websocket_destination *) list_at(&w->destinations, i);
+ for (size_t i = 0; i < vlist_length(&w->destinations); i++) {
+ struct websocket_destination *d = (struct websocket_destination *) vlist_at(&w->destinations, i);
buf = strcatf(&buf, "%s://%s:%d/%s ",
d->info.ssl_connection ? "wss" : "ws",
diff --git a/lib/nodes/zeromq.c b/lib/nodes/zeromq.c
index 13e2356f1..8270565a8 100644
--- a/lib/nodes/zeromq.c
+++ b/lib/nodes/zeromq.c
@@ -79,14 +79,14 @@ int zeromq_reverse(struct node *n)
{
struct zeromq *z = (struct zeromq *) n->_vd;
- if (list_length(&z->out.endpoints) != 1)
+ if (vlist_length(&z->out.endpoints) != 1)
return -1;
char *subscriber = z->in.endpoint;
- char *publisher = list_first(&z->out.endpoints);
+ char *publisher = vlist_first(&z->out.endpoints);
z->in.endpoint = publisher;
- list_set(&z->out.endpoints, 0, subscriber);
+ vlist_set(&z->out.endpoints, 0, subscriber);
return 0;
}
@@ -108,7 +108,7 @@ int zeromq_parse(struct node *n, json_t *cfg)
json_t *json_val;
json_error_t err;
- list_init(&z->out.endpoints);
+ vlist_init(&z->out.endpoints);
z->curve.enabled = false;
z->ipv6 = 0;
@@ -144,14 +144,14 @@ int zeromq_parse(struct node *n, json_t *cfg)
if (!ep)
error("All 'publish' settings must be strings");
- list_push(&z->out.endpoints, strdup(ep));
+ vlist_push(&z->out.endpoints, strdup(ep));
}
break;
case JSON_STRING:
ep = json_string_value(json_pub);
- list_push(&z->out.endpoints, strdup(ep));
+ vlist_push(&z->out.endpoints, strdup(ep));
break;
@@ -223,8 +223,8 @@ char * zeromq_print(struct node *n)
z->in.endpoint ? z->in.endpoint : ""
);
- for (size_t i = 0; i < list_length(&z->out.endpoints); i++) {
- char *ep = (char *) list_at(&z->out.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&z->out.endpoints); i++) {
+ char *ep = (char *) vlist_at(&z->out.endpoints, i);
strcatf(&buf, "%s ", ep);
}
@@ -365,8 +365,8 @@ int zeromq_start(struct node *n)
#endif
/* Spawn server for publisher */
- for (size_t i = 0; i < list_length(&z->out.endpoints); i++) {
- char *ep = (char *) list_at(&z->out.endpoints, i);
+ for (size_t i = 0; i < vlist_length(&z->out.endpoints); i++) {
+ char *ep = (char *) vlist_at(&z->out.endpoints, i);
ret = zmq_bind(z->out.socket, ep);
if (ret < 0)
@@ -432,7 +432,7 @@ int zeromq_destroy(struct node *n)
if (z->out.filter)
free(z->out.filter);
- ret = list_destroy(&z->out.endpoints, NULL, true);
+ ret = vlist_destroy(&z->out.endpoints, NULL, true);
if (ret)
return ret;
diff --git a/lib/path.c b/lib/path.c
index 4d9063f3c..b705d75d6 100644
--- a/lib/path.c
+++ b/lib/path.c
@@ -51,7 +51,7 @@ static int path_source_init(struct path_source *ps)
if (ps->node->_vt->pool_size)
pool_size = ps->node->_vt->pool_size;
- ret = pool_init(&ps->pool, pool_size, SAMPLE_LENGTH(list_length(&ps->node->signals)), node_memory_type(ps->node, &memory_hugepage));
+ ret = pool_init(&ps->pool, pool_size, SAMPLE_LENGTH(vlist_length(&ps->node->signals)), node_memory_type(ps->node, &memory_hugepage));
if (ret)
return ret;
@@ -66,7 +66,7 @@ static int path_source_destroy(struct path_source *ps)
if (ret)
return ret;
- ret = list_destroy(&ps->mappings, NULL, true);
+ ret = vlist_destroy(&ps->mappings, NULL, true);
if (ret)
return ret;
@@ -195,8 +195,8 @@ static void path_destination_enqueue(struct path *p, struct sample *smps[], unsi
if (cloned < cnt)
warning("Pool underrun in path %s", path_name(p));
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
enqueued = queue_push_many(&pd->queue, (void **) clones, cloned);
if (enqueued != cnt)
@@ -248,15 +248,15 @@ static void path_destination_write(struct path_destination *pd, struct path *p)
static void * path_run_single(void *arg)
{
struct path *p = arg;
- struct path_source *ps = (struct path_source *) list_at(&p->sources, 0);
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, 0);
debug(1, "Started path %s in single mode", path_name(p));
for (;;) {
path_source_read(ps, p, 0);
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
path_destination_write(pd, p);
}
@@ -283,7 +283,7 @@ static void * path_run_poll(void *arg)
debug(10, "Path %s returned from poll(2)", path_name(p));
for (int i = 0; i < p->reader.nfds; i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
if (p->reader.pfds[i].revents & POLLIN) {
/* Timeout: re-enqueue the last sample */
@@ -301,8 +301,8 @@ static void * path_run_poll(void *arg)
}
}
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
path_destination_write(pd, p);
}
@@ -317,19 +317,19 @@ int path_init(struct path *p)
assert(p->state == STATE_DESTROYED);
- ret = list_init(&p->destinations);
+ ret = vlist_init(&p->destinations);
if (ret)
return ret;
- ret = list_init(&p->sources);
+ ret = vlist_init(&p->sources);
if (ret)
return ret;
- ret = list_init(&p->signals);
+ ret = vlist_init(&p->signals);
if (ret)
return ret;
- ret = list_init(&p->hooks);
+ ret = vlist_init(&p->hooks);
if (ret)
return ret;
@@ -355,15 +355,15 @@ int path_init_poll(struct path *p)
{
int ret, nfds;
- nfds = list_length(&p->sources);
+ nfds = vlist_length(&p->sources);
if (p->rate > 0)
nfds++;
p->reader.nfds = nfds;
p->reader.pfds = alloc(sizeof(struct pollfd) * p->reader.nfds);
- for (int i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (int i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
/* This slot is only used if it is not masked */
p->reader.pfds[i].events = POLLIN;
@@ -401,15 +401,15 @@ int path_init2(struct path *p)
return ret;
/* We sort the hooks according to their priority before starting the path */
- list_sort(&p->hooks, hook_cmp_priority);
+ vlist_sort(&p->hooks, hook_cmp_priority);
#endif /* WITH_HOOKS */
/* Initialize destinations */
struct memory_type *pool_mt = &memory_hugepage;
- int pool_size = MAX(1, list_length(&p->destinations)) * p->queuelen;
+ int pool_size = MAX(1, vlist_length(&p->destinations)) * p->queuelen;
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
if (pd->node->_vt->pool_size > pool_size)
pool_size = pd->node->_vt->pool_size;
@@ -422,12 +422,12 @@ int path_init2(struct path *p)
return ret;
}
- bitset_init(&p->received, list_length(&p->sources));
- bitset_init(&p->mask, list_length(&p->sources));
+ bitset_init(&p->received, vlist_length(&p->sources));
+ bitset_init(&p->mask, vlist_length(&p->sources));
/* Initialize sources */
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
ret = path_source_init(ps);
if (ret)
@@ -436,8 +436,8 @@ int path_init2(struct path *p)
if (ps->masked)
bitset_set(&p->mask, i);
- for (size_t i = 0; i < list_length(&ps->mappings); i++) {
- struct mapping_entry *me = (struct mapping_entry *) list_at(&ps->mappings, i);
+ for (size_t i = 0; i < vlist_length(&ps->mappings); i++) {
+ struct mapping_entry *me = (struct mapping_entry *) vlist_at(&ps->mappings, i);
int off = me->offset;
int len = me->length;
@@ -448,7 +448,7 @@ int path_init2(struct path *p)
/* For data mappings we simple refer to the existing
* signal descriptors of the source node. */
if (me->type == MAPPING_TYPE_DATA) {
- sig = (struct signal *) list_at_safe(&me->node->signals, me->data.offset + j);
+ sig = (struct signal *) vlist_at_safe(&me->node->signals, me->data.offset + j);
if (!sig) {
warning("Failed to create signal description for path %s", path_name(p));
continue;
@@ -465,13 +465,13 @@ int path_init2(struct path *p)
return -1;
}
- list_extend(&p->signals, off + j + 1, NULL);
- list_set(&p->signals, off + j, sig);
+ vlist_extend(&p->signals, off + j + 1, NULL);
+ vlist_set(&p->signals, off + j, sig);
}
}
}
- ret = pool_init(&p->pool, pool_size, SAMPLE_LENGTH(list_length(&p->signals)), pool_mt);
+ ret = pool_init(&p->pool, pool_size, SAMPLE_LENGTH(vlist_length(&p->signals)), pool_mt);
if (ret)
return ret;
@@ -485,7 +485,7 @@ int path_init2(struct path *p)
return 0;
}
-int path_parse(struct path *p, json_t *cfg, struct list *nodes)
+int path_parse(struct path *p, json_t *cfg, struct vlist *nodes)
{
int ret;
@@ -497,11 +497,11 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
const char *mode = NULL;
- struct list sources = { .state = STATE_DESTROYED };
- struct list destinations = { .state = STATE_DESTROYED };
+ struct vlist sources = { .state = STATE_DESTROYED };
+ struct vlist destinations = { .state = STATE_DESTROYED };
- list_init(&sources);
- list_init(&destinations);
+ vlist_init(&sources);
+ vlist_init(&destinations);
ret = json_unpack_ex(cfg, &err, 0, "{ s: o, s?: o, s?: o, s?: b, s?: b, s?: b, s?: i, s?: s, s?: b, s?: F, s?: o, s?: b}",
"in", &json_in,
@@ -543,13 +543,13 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
jerror(&err, "Failed to parse output nodes");
}
- for (size_t i = 0; i < list_length(&sources); i++) {
- struct mapping_entry *me = (struct mapping_entry *) list_at(&sources, i);
+ for (size_t i = 0; i < vlist_length(&sources); i++) {
+ struct mapping_entry *me = (struct mapping_entry *) vlist_at(&sources, i);
struct path_source *ps = NULL;
/* Check if there is already a path_source for this source */
- for (size_t j = 0; j < list_length(&p->sources); j++) {
- struct path_source *pt = (struct path_source *) list_at(&p->sources, j);
+ for (size_t j = 0; j < vlist_length(&p->sources); j++) {
+ struct path_source *pt = (struct path_source *) vlist_at(&p->sources, j);
if (pt->node == me->node) {
ps = pt;
@@ -566,22 +566,22 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
ps->mappings.state = STATE_DESTROYED;
- list_init(&ps->mappings);
+ vlist_init(&ps->mappings);
- list_push(&p->sources, ps);
+ vlist_push(&p->sources, ps);
}
- list_push(&ps->mappings, me);
+ vlist_push(&ps->mappings, me);
}
- for (size_t i = 0; i < list_length(&destinations); i++) {
- struct node *n = (struct node *) list_at(&destinations, i);
+ for (size_t i = 0; i < vlist_length(&destinations); i++) {
+ struct node *n = (struct node *) vlist_at(&destinations, i);
struct path_destination *pd = (struct path_destination *) alloc(sizeof(struct path_destination));
pd->node = n;
- list_push(&p->destinations, pd);
+ vlist_push(&p->destinations, pd);
}
if (json_mask) {
@@ -600,13 +600,13 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
if (!name)
error("The 'mask' setting must be a list of node names");
- node = list_lookup(nodes, name);
+ node = vlist_lookup(nodes, name);
if (!node)
error("The 'mask' entry '%s' is not a valid node name", name);
/* Search correspondending path_source to node */
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *pt = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *pt = (struct path_source *) vlist_at(&p->sources, i);
if (pt->node == node) {
ps = pt;
@@ -622,8 +622,8 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
}
/* Enable all by default */
else {
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
ps->masked = true;
}
@@ -639,20 +639,20 @@ int path_parse(struct path *p, json_t *cfg, struct list *nodes)
/* Autodetect whether to use poll() for this path or not */
if (p->poll == -1) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, 0);
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, 0);
p->poll = (
p->rate > 0 ||
- list_length(&p->sources) > 1
+ vlist_length(&p->sources) > 1
)
&& node_fd(ps->node) != 1;
}
- ret = list_destroy(&sources, NULL, false);
+ ret = vlist_destroy(&sources, NULL, false);
if (ret)
return ret;
- ret = list_destroy(&destinations, NULL, false);
+ ret = vlist_destroy(&destinations, NULL, false);
if (ret)
return ret;
@@ -669,15 +669,15 @@ int path_check(struct path *p)
if (p->rate < 0)
error("Setting 'rate' of path %s must be a positive number.", path_name(p));
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
if (!ps->node->_vt->read)
error("Source node %s is not supported as a source for path %s", node_name(ps->node), path_name(p));
}
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
if (!pd->node->_vt->write)
error("Destiation node %s is not supported as a sink for path %s", node_name(pd->node), path_name(p));
@@ -710,7 +710,7 @@ int path_start(struct path *p)
info("Starting path %s: #signals=%zu, mode=%s, poll=%s, mask=%s, rate=%.2f, enabled=%s, reversed=%s, queuelen=%d, #hooks=%zu, #sources=%zu, #destinations=%zu, #original_sequence_no=%s",
path_name(p),
- list_length(&p->signals),
+ vlist_length(&p->signals),
mode,
p->poll ? "yes" : "no",
mask,
@@ -718,17 +718,17 @@ int path_start(struct path *p)
p->enabled ? "yes" : "no",
p->reverse ? "yes" : "no",
p->queuelen,
- list_length(&p->hooks),
- list_length(&p->sources),
- list_length(&p->destinations),
+ vlist_length(&p->hooks),
+ vlist_length(&p->sources),
+ vlist_length(&p->destinations),
p->original_sequence_no ? "yes" : "no"
);
free(mask);
#ifdef WITH_HOOKS
- for (size_t i = 0; i < list_length(&p->hooks); i++) {
- struct hook *h = (struct hook *) list_at(&p->hooks, i);
+ for (size_t i = 0; i < vlist_length(&p->hooks); i++) {
+ struct hook *h = (struct hook *) vlist_at(&p->hooks, i);
ret = hook_start(h);
if (ret)
@@ -745,13 +745,13 @@ int path_start(struct path *p)
if (!p->last_sample)
return -1;
- p->last_sample->length = list_length(&p->signals);
+ p->last_sample->length = vlist_length(&p->signals);
p->last_sample->signals = &p->signals;
p->last_sample->sequence = 0;
p->last_sample->flags = 0;
for (size_t i = 0; i < p->last_sample->length; i++) {
- struct signal *sig = (struct signal *) list_at(p->last_sample->signals, i);
+ struct signal *sig = (struct signal *) vlist_at(p->last_sample->signals, i);
p->last_sample->data[i] = sig->init;
}
@@ -789,8 +789,8 @@ int path_stop(struct path *p)
return ret;
#ifdef WITH_HOOKS
- for (size_t i = 0; i < list_length(&p->hooks); i++) {
- struct hook *h = (struct hook *) list_at(&p->hooks, i);
+ for (size_t i = 0; i < vlist_length(&p->hooks); i++) {
+ struct hook *h = (struct hook *) vlist_at(&p->hooks, i);
ret = hook_stop(h);
if (ret)
@@ -811,11 +811,11 @@ int path_destroy(struct path *p)
return 0;
#ifdef WITH_HOOKS
- list_destroy(&p->hooks, (dtor_cb_t) hook_destroy, true);
+ vlist_destroy(&p->hooks, (dtor_cb_t) hook_destroy, true);
#endif
- list_destroy(&p->sources, (dtor_cb_t) path_source_destroy, true);
- list_destroy(&p->destinations, (dtor_cb_t) path_destination_destroy, true);
- list_destroy(&p->signals, (dtor_cb_t) signal_decref, false);
+ vlist_destroy(&p->sources, (dtor_cb_t) path_source_destroy, true);
+ vlist_destroy(&p->destinations, (dtor_cb_t) path_destination_destroy, true);
+ vlist_destroy(&p->signals, (dtor_cb_t) signal_decref, false);
if (p->reader.pfds)
free(p->reader.pfds);
@@ -838,16 +838,16 @@ const char * path_name(struct path *p)
if (!p->_name) {
strcatf(&p->_name, "[");
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
strcatf(&p->_name, " %s", node_name_short(ps->node));
}
strcatf(&p->_name, " ] " CLR_MAG("=>") " [");
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
strcatf(&p->_name, " %s", node_name_short(pd->node));
}
@@ -860,15 +860,15 @@ const char * path_name(struct path *p)
int path_uses_node(struct path *p, struct node *n)
{
- for (size_t i = 0; i < list_length(&p->destinations); i++) {
- struct path_destination *pd = (struct path_destination *) list_at(&p->destinations, i);
+ for (size_t i = 0; i < vlist_length(&p->destinations); i++) {
+ struct path_destination *pd = (struct path_destination *) vlist_at(&p->destinations, i);
if (pd->node == n)
return 0;
}
- for (size_t i = 0; i < list_length(&p->sources); i++) {
- struct path_source *ps = (struct path_source *) list_at(&p->sources, i);
+ for (size_t i = 0; i < vlist_length(&p->sources); i++) {
+ struct path_source *ps = (struct path_source *) vlist_at(&p->sources, i);
if (ps->node == n)
return 0;
@@ -879,15 +879,15 @@ int path_uses_node(struct path *p, struct node *n)
int path_reverse(struct path *p, struct path *r)
{
- if (list_length(&p->destinations) != 1 || list_length(&p->sources) != 1)
+ if (vlist_length(&p->destinations) != 1 || vlist_length(&p->sources) != 1)
return -1;
/* General */
r->enabled = p->enabled;
/* Source / Destinations */
- struct path_destination *orig_pd = list_first(&p->destinations);
- struct path_source *orig_ps = list_first(&p->sources);
+ struct path_destination *orig_pd = vlist_first(&p->destinations);
+ struct path_source *orig_ps = vlist_first(&p->sources);
struct path_destination *new_pd = (struct path_destination *) alloc(sizeof(struct path_destination));
struct path_source *new_ps = (struct path_source *) alloc(sizeof(struct path_source));
@@ -901,24 +901,24 @@ int path_reverse(struct path *p, struct path *r)
new_me->data.offset = 0;
new_me->length = 0;
- list_init(&new_ps->mappings);
- list_push(&new_ps->mappings, new_me);
+ vlist_init(&new_ps->mappings);
+ vlist_push(&new_ps->mappings, new_me);
- list_push(&r->destinations, new_pd);
- list_push(&r->sources, new_ps);
+ vlist_push(&r->destinations, new_pd);
+ vlist_push(&r->sources, new_ps);
#ifdef WITH_HOOKS
- for (size_t i = 0; i < list_length(&p->hooks); i++) {
+ for (size_t i = 0; i < vlist_length(&p->hooks); i++) {
int ret;
- struct hook *h = (struct hook *) list_at(&p->hooks, i);
+ struct hook *h = (struct hook *) vlist_at(&p->hooks, i);
struct hook *g = (struct hook *) alloc(sizeof(struct hook));
ret = hook_init(g, h->_vt, r, NULL);
if (ret)
return ret;
- list_push(&r->hooks, g);
+ vlist_push(&r->hooks, g);
}
#endif /* WITH_HOOKS */
return 0;
diff --git a/lib/plugin.c b/lib/plugin.c
index 42c0233fc..4f2b22c1f 100644
--- a/lib/plugin.c
+++ b/lib/plugin.c
@@ -26,7 +26,7 @@
#include
/** Global list of all known plugins */
-struct list plugins = { .state = STATE_DESTROYED };
+struct vlist plugins = { .state = STATE_DESTROYED };
LIST_INIT_STATIC(&plugins)
@@ -90,8 +90,8 @@ int plugin_destroy(struct plugin *p)
struct plugin * plugin_lookup(enum plugin_type type, const char *name)
{
- for (size_t i = 0; i < list_length(&plugins); i++) {
- struct plugin *p = (struct plugin *) list_at(&plugins, i);
+ for (size_t i = 0; i < vlist_length(&plugins); i++) {
+ struct plugin *p = (struct plugin *) vlist_at(&plugins, i);
if (p->type == type && strcmp(p->name, name) == 0)
return p;
@@ -102,8 +102,8 @@ struct plugin * plugin_lookup(enum plugin_type type, const char *name)
void plugin_dump(enum plugin_type type)
{
- for (size_t i = 0; i < list_length(&plugins); i++) {
- struct plugin *p = (struct plugin *) list_at(&plugins, i);
+ for (size_t i = 0; i < vlist_length(&plugins); i++) {
+ struct plugin *p = (struct plugin *) vlist_at(&plugins, i);
if (p->type == type)
printf(" - %-13s: %s\n", p->name, p->description);
diff --git a/lib/sample.c b/lib/sample.c
index 8e37fa045..58dc899bf 100644
--- a/lib/sample.c
+++ b/lib/sample.c
@@ -280,7 +280,7 @@ enum signal_type sample_format(const struct sample *s, unsigned idx)
{
struct signal *sig;
- sig = (struct signal *) list_at_safe(s->signals, idx);
+ sig = (struct signal *) vlist_at_safe(s->signals, idx);
return sig ? sig->type : SIGNAL_TYPE_AUTO;
}
diff --git a/lib/signal.c b/lib/signal.c
index 6ba2926d5..1d8ef09ee 100644
--- a/lib/signal.c
+++ b/lib/signal.c
@@ -223,7 +223,7 @@ int signal_parse(struct signal *s, json_t *cfg)
/* Signal list */
-int signal_list_parse(struct list *list, json_t *cfg)
+int signal_vlist_parse(struct vlist *list, json_t *cfg)
{
int ret;
struct signal *s;
@@ -246,13 +246,13 @@ int signal_list_parse(struct list *list, json_t *cfg)
if (ret)
return ret;
- list_push(list, s);
+ vlist_push(list, s);
}
return 0;
}
-int signal_list_generate(struct list *list, unsigned len, enum signal_type fmt)
+int signal_vlist_generate(struct vlist *list, unsigned len, enum signal_type fmt)
{
for (int i = 0; i < len; i++) {
char name[32];
@@ -262,18 +262,18 @@ int signal_list_generate(struct list *list, unsigned len, enum signal_type fmt)
if (!sig)
return -1;
- list_push(list, sig);
+ vlist_push(list, sig);
}
return 0;
}
-void signal_list_dump(const struct list *list)
+void signal_vlist_dump(const struct vlist *list)
{
info ("Signals:");
- for (int i = 0; i < list_length(list); i++) {
- struct signal *sig = list_at(list, i);
+ for (int i = 0; i < vlist_length(list); i++) {
+ struct signal *sig = vlist_at(list, i);
if (sig->unit)
info(" %d: %s [%s] = %s", i, sig->name, sig->unit, signal_type_to_str(sig->type));
diff --git a/lib/super_node.cpp b/lib/super_node.cpp
index 33ff2fbdb..9be8b9cdb 100644
--- a/lib/super_node.cpp
+++ b/lib/super_node.cpp
@@ -58,9 +58,9 @@ SuperNode::SuperNode() :
paths.state = STATE_DESTROYED;
plugins.state = STATE_DESTROYED;
- list_init(&nodes);
- list_init(&paths);
- list_init(&plugins);
+ vlist_init(&nodes);
+ vlist_init(&paths);
+ vlist_init(&plugins);
char hname[128];
gethostname(hname, 128);
@@ -214,7 +214,7 @@ int SuperNode::parseJson(json_t *j)
if (ret)
throw RuntimeError("Failed to parse plugin");
- list_push(&plugins, p);
+ vlist_push(&plugins, p);
}
}
@@ -247,7 +247,7 @@ int SuperNode::parseJson(json_t *j)
if (ret)
throw RuntimeError("Failed to parse node");
- list_push(&nodes, n);
+ vlist_push(&nodes, n);
}
}
@@ -269,7 +269,7 @@ int SuperNode::parseJson(json_t *j)
if (ret)
throw RuntimeError("Failed to parse path");
- list_push(&paths, p);
+ vlist_push(&paths, p);
if (p->reverse) {
path *r = (path *) alloc(sizeof(path));
@@ -282,7 +282,7 @@ int SuperNode::parseJson(json_t *j)
if (ret)
throw RuntimeError("Failed to reverse path {}", path_name(p));
- list_push(&paths, r);
+ vlist_push(&paths, r);
}
}
}
@@ -300,16 +300,16 @@ int SuperNode::check()
assert(state == STATE_INITIALIZED || state == STATE_PARSED || state == STATE_CHECKED);
- for (size_t i = 0; i < list_length(&nodes); i++) {
- auto *n = (struct node *) list_at(&nodes, i);
+ for (size_t i = 0; i < vlist_length(&nodes); i++) {
+ auto *n = (struct node *) vlist_at(&nodes, i);
ret = node_check(n);
if (ret)
throw RuntimeError("Invalid configuration for node {}", node_name(n));
}
- for (size_t i = 0; i < list_length(&paths); i++) {
- auto *p = (struct path *) list_at(&paths, i);
+ for (size_t i = 0; i < vlist_length(&paths); i++) {
+ auto *p = (struct path *) vlist_at(&paths, i);
ret = path_check(p);
if (ret)
@@ -339,8 +339,8 @@ int SuperNode::start()
#endif
logger->info("Starting node-types");
- for (size_t i = 0; i < list_length(&nodes); i++) {
- auto *n = (struct node *) list_at(&nodes, i);
+ for (size_t i = 0; i < vlist_length(&nodes); i++) {
+ auto *n = (struct node *) vlist_at(&nodes, i);
ret = node_type_start(n->_vt, reinterpret_cast(this));
if (ret)
@@ -348,14 +348,14 @@ int SuperNode::start()
}
logger->info("Starting nodes");
- for (size_t i = 0; i < list_length(&nodes); i++) {
- auto *n = (struct node *) list_at(&nodes, i);
+ for (size_t i = 0; i < vlist_length(&nodes); i++) {
+ auto *n = (struct node *) vlist_at(&nodes, i);
ret = node_init2(n);
if (ret)
throw RuntimeError("Failed to prepare node: {}", node_name(n));
- int refs = list_count(&paths, (cmp_cb_t) path_uses_node, n);
+ int refs = vlist_count(&paths, (cmp_cb_t) path_uses_node, n);
if (refs > 0) {
ret = node_start(n);
if (ret)
@@ -366,8 +366,8 @@ int SuperNode::start()
}
logger->info("Starting paths");
- for (size_t i = 0; i < list_length(&paths); i++) {
- auto *p = (struct path *) list_at(&paths, i);
+ for (size_t i = 0; i < vlist_length(&paths); i++) {
+ auto *p = (struct path *) vlist_at(&paths, i);
if (p->enabled) {
ret = path_init2(p);
@@ -412,8 +412,8 @@ int SuperNode::stop()
#endif /* WITH_HOOKS */
logger->info("Stopping paths");
- for (size_t i = 0; i < list_length(&paths); i++) {
- auto *p = (struct path *) list_at(&paths, i);
+ for (size_t i = 0; i < vlist_length(&paths); i++) {
+ auto *p = (struct path *) vlist_at(&paths, i);
ret = path_stop(p);
if (ret)
@@ -421,8 +421,8 @@ int SuperNode::stop()
}
logger->info("Stopping nodes");
- for (size_t i = 0; i < list_length(&nodes); i++) {
- auto *n = (struct node *) list_at(&nodes, i);
+ for (size_t i = 0; i < vlist_length(&nodes); i++) {
+ auto *n = (struct node *) vlist_at(&nodes, i);
ret = node_stop(n);
if (ret)
@@ -430,8 +430,8 @@ int SuperNode::stop()
}
logger->info("Stopping node-types");
- for (size_t i = 0; i < list_length(&plugins); i++) {
- auto *p = (struct plugin *) list_at(&plugins, i);
+ for (size_t i = 0; i < vlist_length(&plugins); i++) {
+ auto *p = (struct plugin *) vlist_at(&plugins, i);
if (p->type == PLUGIN_TYPE_NODE) {
ret = node_type_stop(&p->node);
@@ -466,9 +466,9 @@ SuperNode::~SuperNode()
{
assert(state != STATE_STARTED);
- list_destroy(&plugins, (dtor_cb_t) plugin_destroy, false);
- list_destroy(&paths, (dtor_cb_t) path_destroy, true);
- list_destroy(&nodes, (dtor_cb_t) node_destroy, true);
+ vlist_destroy(&plugins, (dtor_cb_t) plugin_destroy, false);
+ vlist_destroy(&paths, (dtor_cb_t) path_destroy, true);
+ vlist_destroy(&nodes, (dtor_cb_t) node_destroy, true);
if (json)
json_decref(json);
@@ -479,14 +479,14 @@ int SuperNode::periodic()
#ifdef WITH_HOOKS
int ret;
- for (size_t i = 0; i < list_length(&paths); i++) {
- auto *p = (struct path *) list_at(&paths, i);
+ for (size_t i = 0; i < vlist_length(&paths); i++) {
+ auto *p = (struct path *) vlist_at(&paths, i);
if (p->state != STATE_STARTED)
continue;
- for (size_t j = 0; j < list_length(&p->hooks); j++) {
- hook *h = (struct hook *) list_at(&p->hooks, j);
+ for (size_t j = 0; j < vlist_length(&p->hooks); j++) {
+ hook *h = (struct hook *) vlist_at(&p->hooks, j);
ret = hook_periodic(h);
if (ret)
@@ -494,22 +494,22 @@ int SuperNode::periodic()
}
}
- for (size_t i = 0; i < list_length(&nodes); i++) {
- auto *n = (struct node *) list_at(&nodes, i);
+ for (size_t i = 0; i < vlist_length(&nodes); i++) {
+ auto *n = (struct node *) vlist_at(&nodes, i);
if (n->state != STATE_STARTED)
continue;
- for (size_t j = 0; j < list_length(&n->in.hooks); j++) {
- auto *h = (struct hook *) list_at(&n->in.hooks, j);
+ for (size_t j = 0; j < vlist_length(&n->in.hooks); j++) {
+ auto *h = (struct hook *) vlist_at(&n->in.hooks, j);
ret = hook_periodic(h);
if (ret)
return ret;
}
- for (size_t j = 0; j < list_length(&n->out.hooks); j++) {
- auto *h = (struct hook *) list_at(&n->out.hooks, j);
+ for (size_t j = 0; j < vlist_length(&n->out.hooks); j++) {
+ auto *h = (struct hook *) vlist_at(&n->out.hooks, j);
ret = hook_periodic(h);
if (ret)
@@ -523,7 +523,7 @@ int SuperNode::periodic()
/* C-compatability */
extern "C" {
- struct list * super_node_get_nodes(struct super_node *sn)
+ struct vlist * super_node_get_nodes(struct super_node *sn)
{
SuperNode *ssn = reinterpret_cast(sn);
diff --git a/src/villas-signal.cpp b/src/villas-signal.cpp
index 4837f166d..4c88d470c 100644
--- a/src/villas-signal.cpp
+++ b/src/villas-signal.cpp
@@ -221,7 +221,7 @@ int main(int argc, char *argv[])
if (ret)
throw RuntimeError("Failed to verify node configuration");
- ret = pool_init(&q, 16, SAMPLE_LENGTH(list_length(&n.signals)), &memory_heap);
+ ret = pool_init(&q, 16, SAMPLE_LENGTH(vlist_length(&n.signals)), &memory_heap);
if (ret)
throw RuntimeError("Failed to initialize pool");
diff --git a/tests/unit/io.cpp b/tests/unit/io.cpp
index 16651b992..00c9082cd 100644
--- a/tests/unit/io.cpp
+++ b/tests/unit/io.cpp
@@ -67,7 +67,7 @@ static struct param params[] = {
#endif
};
-void fill_sample_data(struct list *signals, struct sample *smps[], unsigned cnt)
+void fill_sample_data(struct vlist *signals, struct sample *smps[], unsigned cnt)
{
struct timespec delta, now;
@@ -78,13 +78,13 @@ void fill_sample_data(struct list *signals, struct sample *smps[], unsigned cnt)
struct sample *smp = smps[i];
smps[i]->flags = SAMPLE_HAS_SEQUENCE | SAMPLE_HAS_DATA | SAMPLE_HAS_TS_ORIGIN;
- smps[i]->length = list_length(signals);
+ smps[i]->length = vlist_length(signals);
smps[i]->sequence = 235 + i;
smps[i]->ts.origin = now;
smps[i]->signals = signals;
- for (size_t j = 0; j < list_length(signals); j++) {
- struct signal *sig = (struct signal *) list_at(signals, j);
+ for (size_t j = 0; j < vlist_length(signals); j++) {
+ struct signal *sig = (struct signal *) vlist_at(signals, j);
union signal_data *data = &smp->data[j];
switch (sig->type) {
@@ -223,15 +223,15 @@ ParameterizedTest(struct param *p, io, lowlevel, .init = init_memory)
struct pool pool = { .state = STATE_DESTROYED };
struct io io = { .state = STATE_DESTROYED };
- struct list signals = { .state = STATE_DESTROYED };
+ struct vlist signals = { .state = STATE_DESTROYED };
struct sample *smps[p->cnt];
struct sample *smpt[p->cnt];
ret = pool_init(&pool, 2 * p->cnt, SAMPLE_LENGTH(NUM_VALUES), &memory_hugepage);
cr_assert_eq(ret, 0);
- list_init(&signals);
- signal_list_generate(&signals, NUM_VALUES, SIGNAL_TYPE_FLOAT);
+ vlist_init(&signals);
+ signal_vlist_generate(&signals, NUM_VALUES, SIGNAL_TYPE_FLOAT);
ret = sample_alloc_many(&pool, smps, p->cnt);
cr_assert_eq(ret, p->cnt);
@@ -292,7 +292,7 @@ ParameterizedTest(struct param *p, io, highlevel, .init = init_memory)
struct io io = { .state = STATE_DESTROYED };
struct pool pool = { .state = STATE_DESTROYED };
- struct list signals = { .state = STATE_DESTROYED };
+ struct vlist signals = { .state = STATE_DESTROYED };
struct sample *smps[p->cnt];
struct sample *smpt[p->cnt];
@@ -306,8 +306,8 @@ ParameterizedTest(struct param *p, io, highlevel, .init = init_memory)
ret = sample_alloc_many(&pool, smpt, p->cnt);
cr_assert_eq(ret, p->cnt);
- list_init(&signals);
- signal_list_generate(&signals, NUM_VALUES, SIGNAL_TYPE_FLOAT);
+ vlist_init(&signals);
+ signal_vlist_generate(&signals, NUM_VALUES, SIGNAL_TYPE_FLOAT);
fill_sample_data(&signals, smps, p->cnt);
diff --git a/tests/unit/mapping.cpp b/tests/unit/mapping.cpp
index 9b999857d..af6e5e697 100644
--- a/tests/unit/mapping.cpp
+++ b/tests/unit/mapping.cpp
@@ -32,7 +32,7 @@ Test(mapping, parse_nodes)
{
int ret;
struct mapping_entry m;
- struct list nodes = { .state = STATE_DESTROYED };
+ struct vlist nodes = { .state = STATE_DESTROYED };
const char *node_names[3] = { "apple", "cherry", "carrot" };
const char *signal_names[3][4] = {
@@ -41,7 +41,7 @@ Test(mapping, parse_nodes)
{ "o", "sole", "mio", "italia" }
};
- list_init(&nodes);
+ vlist_init(&nodes);
for (unsigned i = 0; i < ARRAY_LEN(node_names); i++) {
struct node *n = new struct node;
@@ -49,7 +49,7 @@ Test(mapping, parse_nodes)
n->name = strdup(node_names[i]);
n->signals.state = STATE_DESTROYED;
- list_init(&n->signals);
+ vlist_init(&n->signals);
for (unsigned j = 0; j < ARRAY_LEN(signal_names[i]); j++) {
struct signal *sig;
@@ -57,54 +57,54 @@ Test(mapping, parse_nodes)
sig = signal_create(signal_names[i][j], nullptr, SIGNAL_TYPE_AUTO);
cr_assert_not_null(sig);
- list_push(&n->signals, sig);
+ vlist_push(&n->signals, sig);
}
- list_push(&nodes, n);
+ vlist_push(&nodes, n);
}
ret = mapping_parse_str(&m, "apple.ts.origin", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "apple"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "apple"));
cr_assert_eq(m.type, MAPPING_TYPE_TIMESTAMP);
cr_assert_eq(m.timestamp.type, MAPPING_TIMESTAMP_TYPE_ORIGIN);
ret = mapping_parse_str(&m, "cherry.stats.owd.mean", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "cherry"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "cherry"));
cr_assert_eq(m.type, MAPPING_TYPE_STATS);
cr_assert_eq(m.stats.id, STATS_OWD);
cr_assert_eq(m.stats.type, MAPPING_STATS_TYPE_MEAN);
ret = mapping_parse_str(&m, "carrot.data[1-2]", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "carrot"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "carrot"));
cr_assert_eq(m.type, MAPPING_TYPE_DATA);
cr_assert_eq(m.data.offset, 1);
cr_assert_eq(m.length, 2);
ret = mapping_parse_str(&m, "carrot", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "carrot"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "carrot"));
cr_assert_eq(m.type, MAPPING_TYPE_DATA);
cr_assert_eq(m.data.offset, 0);
- cr_assert_eq(m.length, list_length(&m.node->signals));
+ cr_assert_eq(m.length, vlist_length(&m.node->signals));
ret = mapping_parse_str(&m, "carrot.data[sole]", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "carrot"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "carrot"));
cr_assert_eq(m.type, MAPPING_TYPE_DATA);
cr_assert_eq(m.data.offset, 1);
cr_assert_eq(m.length, 1);
ret = mapping_parse_str(&m, "carrot.data[sole-mio]", &nodes);
cr_assert_eq(ret, 0);
- cr_assert_eq(m.node, list_lookup(&nodes, "carrot"));
+ cr_assert_eq(m.node, vlist_lookup(&nodes, "carrot"));
cr_assert_eq(m.type, MAPPING_TYPE_DATA);
cr_assert_eq(m.data.offset, 1);
cr_assert_eq(m.length, 2);
- ret = list_destroy(&nodes, nullptr, true);
+ ret = vlist_destroy(&nodes, nullptr, true);
cr_assert_eq(ret, 0);
}