From ace2cf9d0e59fddd0ffccf4ef893c0a9732ae143 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 19 Apr 2014 14:13:55 +0400 Subject: [PATCH] Error codes are constants, not enum. That fixes another MISRA violation. --- libuavcan/include/uavcan/error.hpp | 29 ++++++++++--------- .../linux/include/uavcan_linux/socketcan.hpp | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/libuavcan/include/uavcan/error.hpp b/libuavcan/include/uavcan/error.hpp index 17634cadac..06a7942f0a 100644 --- a/libuavcan/include/uavcan/error.hpp +++ b/libuavcan/include/uavcan/error.hpp @@ -5,6 +5,7 @@ #pragma once #include +#include namespace uavcan { @@ -13,20 +14,22 @@ namespace uavcan * Functions that return signed integers may also return inverted error codes, * i.e. returned value should be inverted back to get the actual error code. */ -enum +namespace { - ErrOk, - ErrFailure, - ErrInvalidParam, - ErrMemory, - ErrDriver, - ErrUnknownDataType, - ErrInvalidMarshalData, - ErrInvalidTransferListener, - ErrNotInited, - ErrRecursiveCall, - ErrLogic -}; + +const int16_t ErrOk = 0; +const int16_t ErrFailure = 1; +const int16_t ErrInvalidParam = 2; +const int16_t ErrMemory = 3; +const int16_t ErrDriver = 4; +const int16_t ErrUnknownDataType = 5; +const int16_t ErrInvalidMarshalData = 6; +const int16_t ErrInvalidTransferListener = 7; +const int16_t ErrNotInited = 8; +const int16_t ErrRecursiveCall = 9; +const int16_t ErrLogic = 10; + +} /** * Fatal error handler. diff --git a/libuavcan_drivers/linux/include/uavcan_linux/socketcan.hpp b/libuavcan_drivers/linux/include/uavcan_linux/socketcan.hpp index 24b68f7c00..7fcd1ab310 100644 --- a/libuavcan_drivers/linux/include/uavcan_linux/socketcan.hpp +++ b/libuavcan_drivers/linux/include/uavcan_linux/socketcan.hpp @@ -226,7 +226,7 @@ class SocketCanIface : public uavcan::ICanIface /* * Flags */ - loopback = !!(msg.msg_flags & MSG_CONFIRM); + loopback = (msg.msg_flags & static_cast(MSG_CONFIRM)) != 0; return 1; }