diff --git a/dse/clib/data/marshal.c b/dse/clib/data/marshal.c index 5e2c4df..4efd05d 100644 --- a/dse/clib/data/marshal.c +++ b/dse/clib/data/marshal.c @@ -178,6 +178,7 @@ void marshal_group_in(MarshalGroup* mg_table) case MARSHAL_DIRECTION_TXRX: case MARSHAL_DIRECTION_RXONLY: case MARSHAL_DIRECTION_PARAMETER: + case MARSHAL_DIRECTION_LOCAL: if (mg->kind == MARSHAL_KIND_PRIMITIVE) _marshal_scalar_in(mg); break; default: diff --git a/dse/clib/data/marshal.h b/dse/clib/data/marshal.h index 5ed1bdc..da77a01 100644 --- a/dse/clib/data/marshal.h +++ b/dse/clib/data/marshal.h @@ -72,6 +72,8 @@ typedef enum MarshalKind { typedef enum MarshalDir { MARSHAL_DIRECTION_NONE = 0, + + /* TX and RX: from target. */ MARSHAL_DIRECTION_TXRX, /* RX: from target (i.e. source <-rx- target). */ MARSHAL_DIRECTION_RXONLY, @@ -79,6 +81,9 @@ typedef enum MarshalDir { MARSHAL_DIRECTION_TXONLY, /* Set (RX): only at specific points in lifecycle. */ MARSHAL_DIRECTION_PARAMETER, + /* RX: from target (caller will not expose to signal interface). */ + MARSHAL_DIRECTION_LOCAL, + __MARSHAL_DIRECTION_SIZE__, } MarshalDir; diff --git a/tests/data/test_marshal.c b/tests/data/test_marshal.c index e61631c..2707b37 100644 --- a/tests/data/test_marshal.c +++ b/tests/data/test_marshal.c @@ -202,6 +202,7 @@ void test_marshal_group__primitive(void** state) case MARSHAL_DIRECTION_TXRX: case MARSHAL_DIRECTION_RXONLY: case MARSHAL_DIRECTION_PARAMETER: + case MARSHAL_DIRECTION_LOCAL: switch (mg->type) { case MARSHAL_TYPE_INT32: case MARSHAL_TYPE_BOOL: