diff --git a/include/zenoh-pico/protocol/definitions/network.h b/include/zenoh-pico/protocol/definitions/network.h index 3c3afd8e9..d0e763ca9 100644 --- a/include/zenoh-pico/protocol/definitions/network.h +++ b/include/zenoh-pico/protocol/definitions/network.h @@ -60,10 +60,19 @@ typedef _z_qos_t _z_n_qos_t; -_z_qos_t _z_n_qos_create(_Bool express, z_congestion_control_t congestion_control, z_priority_t priority); -z_priority_t _z_n_qos_get_priority(_z_n_qos_t n_qos); -z_congestion_control_t _z_n_qos_get_congestion_control(_z_n_qos_t n_qos); -_Bool _z_n_qos_get_express(_z_n_qos_t n_qos); +static inline _z_qos_t _z_n_qos_create(_Bool express, z_congestion_control_t congestion_control, z_priority_t priority) { + _z_n_qos_t ret; + _Bool nodrop = congestion_control == Z_CONGESTION_CONTROL_DROP ? 0 : 1; + ret._val = (uint8_t)((express << 4) | (nodrop << 3) | priority); + return ret; +} +static inline z_priority_t _z_n_qos_get_priority(_z_n_qos_t n_qos) { + return (z_priority_t)(n_qos._val & 0x07 /* 0b111 */); +} +static inline z_congestion_control_t _z_n_qos_get_congestion_control(_z_n_qos_t n_qos) { + return (n_qos._val & 0x08 /* 0b1000 */) ? Z_CONGESTION_CONTROL_BLOCK : Z_CONGESTION_CONTROL_DROP; +} +static inline _Bool _z_n_qos_get_express(_z_n_qos_t n_qos) { return (_Bool)(n_qos._val & 0x10 /* 0b10000 */); } #define _z_n_qos_make(express, nodrop, priority) \ _z_n_qos_create((_Bool)express, nodrop ? Z_CONGESTION_CONTROL_BLOCK : Z_CONGESTION_CONTROL_DROP, \ (z_priority_t)priority) diff --git a/src/protocol/definitions/network.c b/src/protocol/definitions/network.c index 8c2fcf212..af5192b14 100644 --- a/src/protocol/definitions/network.c +++ b/src/protocol/definitions/network.c @@ -276,12 +276,3 @@ void _z_msg_fix_mapping(_z_zenoh_message_t *msg, uint16_t mapping) { break; } } -_z_qos_t _z_n_qos_create(_Bool express, z_congestion_control_t congestion_control, z_priority_t priority) { - _Bool nodrop = congestion_control == Z_CONGESTION_CONTROL_DROP ? 0 : 1; - _z_n_qos_t ret = {._val = (uint8_t)((express << 4) | (nodrop << 3) | priority)}; - return ret; -} -z_priority_t _z_n_qos_get_priority(_z_n_qos_t n_qos) { return (z_priority_t)(n_qos._val & 0x07 /* 0b111 */); } -z_congestion_control_t _z_n_qos_get_congestion_control(_z_n_qos_t n_qos) { - return (n_qos._val & 0x08 /* 0b1000 */) ? Z_CONGESTION_CONTROL_BLOCK : Z_CONGESTION_CONTROL_DROP; -}