diff options
-rw-r--r-- | cooker/call.c | 2 | ||||
-rw-r--r-- | cooker/calls/net.c | 2 | ||||
-rw-r--r-- | cooker/cooker.h | 3 | ||||
-rw-r--r-- | cooker/emit.c | 3 | ||||
-rw-r--r-- | cooker/gluten.c | 1 | ||||
-rw-r--r-- | cooker/match.c | 1 |
6 files changed, 9 insertions, 3 deletions
diff --git a/cooker/call.c b/cooker/call.c index d44ff6f..1c29db8 100644 --- a/cooker/call.c +++ b/cooker/call.c @@ -139,6 +139,7 @@ static union value parse_field(struct gluten_ctx *g, struct arg *args, return v; switch (f->type) { + case USHORT: case INT: case LONG: case U32: @@ -245,6 +246,7 @@ bool arg_needs_temp(struct field *f, int pos, JSON_Value *jvalue, } switch (f->type) { + case USHORT: case INT: case LONG: case U32: diff --git a/cooker/calls/net.c b/cooker/calls/net.c index 7231a0e..7a7fd33 100644 --- a/cooker/calls/net.c +++ b/cooker/calls/net.c @@ -162,7 +162,7 @@ static struct field connect_addr_nl[] = { }; static struct field connect_family = { - "family", INT, 0, + "family", USHORT, 0, offsetof(struct sockaddr, sa_family), 0, { .d_num = af } }; diff --git a/cooker/cooker.h b/cooker/cooker.h index 40277c2..7a14221 100644 --- a/cooker/cooker.h +++ b/cooker/cooker.h @@ -64,6 +64,7 @@ enum type { UNDEF = 0, NONE, + USHORT, INT, U32, U64, @@ -107,7 +108,7 @@ enum flags { #define TYPE_IS_COMPOUND(t) \ ((t) == STRUCT || (t) == SELECT) #define TYPE_IS_NUM(t) \ - ((t) == INT || (t) == U32 || (t) == U64 || (t) == LONG) + ((t) == INT || (t) == U32 || (t) == U64 || (t) == LONG || (t) == USHORT) /** * struct num - A numeric value and its label diff --git a/cooker/emit.c b/cooker/emit.c index 4303115..4be5d35 100644 --- a/cooker/emit.c +++ b/cooker/emit.c @@ -16,7 +16,7 @@ static const char *type_str[] = { "UNDEF", "NONE", - "INT", "U32", "U64", "LONG", + "USHORT", "INT", "U32", "U64", "LONG", "STRING", "STRUCT", "SELECT", "PID", @@ -331,6 +331,7 @@ static struct gluten_offset emit_data_do(struct gluten_ctx *g, } switch (type) { + case USHORT: case INT: if (add) { *(int *)p |= value->v_int; diff --git a/cooker/gluten.c b/cooker/gluten.c index 01c2369..cb9ecfb 100644 --- a/cooker/gluten.c +++ b/cooker/gluten.c @@ -13,6 +13,7 @@ #include "util.h" size_t gluten_size[TYPE_COUNT] = { + [USHORT] = sizeof(unsigned short), [INT] = sizeof(int), [U32] = sizeof(uint32_t), [U64] = sizeof(uint64_t), diff --git a/cooker/match.c b/cooker/match.c index 593cd55..c53a456 100644 --- a/cooker/match.c +++ b/cooker/match.c @@ -103,6 +103,7 @@ static union value parse_field(struct gluten_ctx *g, offset.offset += f->offset; switch (f->type) { + case USHORT: case INT: case LONG: case U32: |