1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017,2023 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include <iostream> 7*89c4ff92SAndroid Build Coastguard Worker #include <sstream> 8*89c4ff92SAndroid Build Coastguard Worker #include <cstdint> 9*89c4ff92SAndroid Build Coastguard Worker #include <armnn/Exceptions.hpp> 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker namespace armnnUtils 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker 14*89c4ff92SAndroid Build Coastguard Worker void CheckValidSize(std::initializer_list<size_t> validInputCounts, 15*89c4ff92SAndroid Build Coastguard Worker size_t actualValue, 16*89c4ff92SAndroid Build Coastguard Worker const char* validExpr, 17*89c4ff92SAndroid Build Coastguard Worker const char* actualExpr, 18*89c4ff92SAndroid Build Coastguard Worker const armnn::CheckLocation& location); 19*89c4ff92SAndroid Build Coastguard Worker 20*89c4ff92SAndroid Build Coastguard Worker uint32_t NonNegative(const char* expr, 21*89c4ff92SAndroid Build Coastguard Worker int32_t value, 22*89c4ff92SAndroid Build Coastguard Worker const armnn::CheckLocation& location); 23*89c4ff92SAndroid Build Coastguard Worker 24*89c4ff92SAndroid Build Coastguard Worker int32_t VerifyInt32(const char* expr, 25*89c4ff92SAndroid Build Coastguard Worker int64_t value, 26*89c4ff92SAndroid Build Coastguard Worker const armnn::CheckLocation& location); 27*89c4ff92SAndroid Build Coastguard Worker 28*89c4ff92SAndroid Build Coastguard Worker }//armnnUtils 29*89c4ff92SAndroid Build Coastguard Worker 30*89c4ff92SAndroid Build Coastguard Worker #define CHECKED_INT32(VALUE) armnnUtils::VerifyInt32(#VALUE, VALUE, CHECK_LOCATION()) 31*89c4ff92SAndroid Build Coastguard Worker 32*89c4ff92SAndroid Build Coastguard Worker #define CHECK_VALID_SIZE(ACTUAL, ...) \ 33*89c4ff92SAndroid Build Coastguard Worker armnnUtils::CheckValidSize({__VA_ARGS__}, ACTUAL, #__VA_ARGS__, #ACTUAL, CHECK_LOCATION()) 34*89c4ff92SAndroid Build Coastguard Worker 35*89c4ff92SAndroid Build Coastguard Worker #define CHECKED_NON_NEGATIVE(VALUE) armnnUtils::NonNegative(#VALUE, VALUE, CHECK_LOCATION()) 36