Skip to content

Commit

Permalink
core: drop _uni suffix from ubx_ports_connect/disconnect
Browse files Browse the repository at this point in the history
In addition, mark the iblock parameters const.

Signed-off-by: Markus Klotzbuecher <mk@mkio.de>
  • Loading branch information
kmarkus committed Jun 10, 2020
1 parent ba3f58f commit bb1ee14
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 33 deletions.
4 changes: 4 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ This file tracks user visible API changes

## next

- `ubx_ports_connect_uni`/`ubx_ports_disconnect_uni`/
- removed `_uni` suffix
- made iblock parameter `const`

- `ubx_block_`: store `ports` and `configs` in a `utlist.h` double
linked list instead of a dynamic array
([background](docs/dev/002-stable-port-ptrs.md)).
Expand Down
44 changes: 22 additions & 22 deletions libubx/ubx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1174,11 +1174,11 @@ int ubx_block_rm(ubx_node_info_t *ni, const char *name)
*
* @return < 0 in case of error, 0 otherwise.
*/
static int array_block_add(ubx_block_t ***arr, ubx_block_t *newblock)
static int array_block_add(const ubx_block_t ***arr, const ubx_block_t *newblock)
{
int ret;
long newlen; /* new length of array including NULL element */
ubx_block_t **tmpb;
const ubx_block_t **tmpb;

/*
* determine newlen
Expand All @@ -1204,10 +1204,10 @@ static int array_block_add(ubx_block_t ***arr, ubx_block_t *newblock)
return ret;
}

static int array_block_rm(ubx_block_t ***arr, ubx_block_t *rmblock)
static int array_block_rm(const ubx_block_t ***arr, const ubx_block_t *rmblock)
{
int ret = -1, cnt, match = -1;
ubx_block_t **tmpb;
const ubx_block_t **tmpb;

for (tmpb = *arr, cnt = 0; *tmpb != NULL; tmpb++, cnt++) {
if (*tmpb == rmblock)
Expand Down Expand Up @@ -1238,7 +1238,7 @@ static int array_block_rm(ubx_block_t ***arr, ubx_block_t *rmblock)
*
* @return < 0 in case of error, 0 otherwise.
*/
int ubx_port_connect_out(ubx_port_t *p, ubx_block_t *iblock)
int ubx_port_connect_out(ubx_port_t *p, const ubx_block_t *iblock)
{
int ret = -1;

Expand All @@ -1265,8 +1265,7 @@ int ubx_port_connect_out(ubx_port_t *p, ubx_block_t *iblock)
*
* @return < 0 in case of error, 0 otherwise.
*/

int ubx_port_connect_in(ubx_port_t *p, ubx_block_t *iblock)
int ubx_port_connect_in(ubx_port_t *p, const ubx_block_t *iblock)
{
int ret;

Expand All @@ -1286,16 +1285,15 @@ int ubx_port_connect_in(ubx_port_t *p, ubx_block_t *iblock)
}

/**
* ubx_ports_connect_uni
* - connect a port out- to a port in-channel using an interaction iblock.
* ubx_ports_connect - connect two ports with an iblock
*
* @param out_port
* @param in_port
* @param iblock
* @out_port output port
* @in_port input port
* @iblock iblock to use for connection
*
* @return < 0 in case of error, 0 otherwise.
*/
int ubx_ports_connect_uni(ubx_port_t *out_port, ubx_port_t *in_port, ubx_block_t *iblock)
int ubx_ports_connect(ubx_port_t *out_port, ubx_port_t *in_port, const ubx_block_t *iblock)
{
int ret;

Expand Down Expand Up @@ -1340,7 +1338,7 @@ int ubx_ports_connect_uni(ubx_port_t *out_port, ubx_port_t *in_port, ubx_block_t
*
* @return < 0 in case of error, 0 otherwise.
*/
int ubx_port_disconnect_out(ubx_port_t *out_port, ubx_block_t *iblock)
int ubx_port_disconnect_out(ubx_port_t *out_port, const ubx_block_t *iblock)
{
int ret = -1;

Expand Down Expand Up @@ -1369,7 +1367,7 @@ int ubx_port_disconnect_out(ubx_port_t *out_port, ubx_block_t *iblock)
*
* @return < 0 in case of error, 0 otherwise.
*/
int ubx_port_disconnect_in(ubx_port_t *in_port, ubx_block_t *iblock)
int ubx_port_disconnect_in(ubx_port_t *in_port, const ubx_block_t *iblock)
{
int ret = -1;

Expand All @@ -1390,15 +1388,17 @@ int ubx_port_disconnect_in(ubx_port_t *in_port, ubx_block_t *iblock)


/**
* ubx_ports_disconnect_uni - disconnect two ports.
* ubx_ports_disconnect - disconnect two ports
*
* @param out_port
* @param in_port
* @param iblock
* @out_port output port to disconnect
* @in_port input port to disconnect
* @iblock iblock used for connection
*
* Note that the iblock itself is not touched
*
* @return < 0 in case of error, 0 otherwise.
*/
int ubx_ports_disconnect_uni(ubx_port_t *out_port, ubx_port_t *in_port, ubx_block_t *iblock)
int ubx_ports_disconnect(ubx_port_t *out_port, ubx_port_t *in_port, const ubx_block_t *iblock)
{
int ret = -1;

Expand Down Expand Up @@ -2273,7 +2273,7 @@ long __port_read(const ubx_port_t *port, ubx_data_t *data)
if (port->in_interaction == NULL)
goto out;

for (iaptr = port->in_interaction; *iaptr != NULL; iaptr++) {
for (iaptr = (ubx_block_t**)port->in_interaction; *iaptr != NULL; iaptr++) {
if ((*iaptr)->block_state == BLOCK_STATE_ACTIVE) {
ret = (*iaptr)->read(*iaptr, data);
if (ret > 0) {
Expand Down Expand Up @@ -2323,7 +2323,7 @@ void __port_write(const ubx_port_t *port, const ubx_data_t *data)
goto out;

/* pump it out */
for (iaptr = port->out_interaction; *iaptr != NULL; iaptr++) {
for (iaptr = (ubx_block_t**)port->out_interaction; *iaptr != NULL; iaptr++) {
if ((*iaptr)->block_state == BLOCK_STATE_ACTIVE) {
(*iaptr)->write(*iaptr, data);
(*iaptr)->stat_num_writes++;
Expand Down
12 changes: 6 additions & 6 deletions libubx/ubx_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,13 @@ int ubx_config_add(ubx_block_t *b, const char *name, const char *doc, const char
int ubx_config_rm(ubx_block_t *b, const char *name);

/* connecting ports */
int ubx_port_connect_out(ubx_port_t *p, ubx_block_t *iblock);
int ubx_port_connect_in(ubx_port_t *p, ubx_block_t *iblock);
int ubx_port_disconnect_out(ubx_port_t *out_port, ubx_block_t *iblock);
int ubx_port_disconnect_in(ubx_port_t *in_port, ubx_block_t *iblock);
int ubx_port_connect_out(ubx_port_t *p, const ubx_block_t *iblock);
int ubx_port_connect_in(ubx_port_t *p, const ubx_block_t *iblock);
int ubx_port_disconnect_out(ubx_port_t *out_port, const ubx_block_t *iblock);
int ubx_port_disconnect_in(ubx_port_t *in_port, const ubx_block_t *iblock);

int ubx_ports_connect_uni(ubx_port_t *out_port, ubx_port_t *in_port, ubx_block_t *iblock);
int ubx_ports_disconnect_uni(ubx_port_t *out_port, ubx_port_t *in_port, ubx_block_t *iblock);
int ubx_ports_connect(ubx_port_t *out_port, ubx_port_t *in_port, const ubx_block_t *iblock);
int ubx_ports_disconnect(ubx_port_t *out_port, ubx_port_t *in_port, const ubx_block_t *iblock);

/* rt logging */
void __ubx_log(const int level, const ubx_node_info_t *ni, const char *src, const char *fmt, ...);
Expand Down
4 changes: 2 additions & 2 deletions libubx/ubx_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ typedef struct ubx_port {
struct ubx_port *prev;
struct ubx_port *next;

struct ubx_block **in_interaction;
struct ubx_block **out_interaction;
const struct ubx_block **in_interaction;
const struct ubx_block **out_interaction;
} ubx_port_t;


Expand Down
6 changes: 3 additions & 3 deletions lua/ubx.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1596,7 +1596,7 @@ function M.port_clone_conn(block, pname, buff_len1, buff_len2, loglevel_overruns

M.block_init(i_p_to_prot)

if M.ports_connect_uni(p, prot, i_p_to_prot) ~= 0 then
if M.ports_connect(p, prot, i_p_to_prot) ~= 0 then
error("failed to connect port "..M.safe_tostr(p.name))
end
M.block_start(i_p_to_prot)
Expand All @@ -1617,7 +1617,7 @@ function M.port_clone_conn(block, pname, buff_len1, buff_len2, loglevel_overruns

M.block_init(i_prot_to_p)

if M.ports_connect_uni(prot, p, i_prot_to_p) ~= 0 then
if M.ports_connect(prot, p, i_prot_to_p) ~= 0 then
-- TODO disconnect if connected above.
error("failed to connect port"..M.safe_tostr(p.name))
end
Expand Down Expand Up @@ -1670,7 +1670,7 @@ function M.conn_uni(b1, pname1, b2, pname2, iblock_type, iblock_config, dont_sta

M.block_init(ib)

if M.ports_connect_uni(p1, p2, ib) ~= 0 then
if M.ports_connect(p1, p2, ib) ~= 0 then
error("failed to connect "..bname1.."."..pname1.."->"..bname2.."."..pname2)
end

Expand Down

0 comments on commit bb1ee14

Please sign in to comment.