/* * Copyright (c) 2019 TAOS Data, Inc. * * This program is free software: you can use, redistribute, and/or modify * it under the terms of the GNU Affero General Public License, version 3 * or later ("AGPL"), as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ #ifndef _TD_OS_H_ #define _TD_OS_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include #if !defined(WINDOWS) #include #if !defined(_ALPINE) && !defined(TD_ASTRA) #include #endif #if !defined(TD_ASTRA) #include #include #include #include #include #include #else #include #endif #include #include #include #include #include #include #include #include #include #if defined(DARWIN) #include #else #if !defined(TD_ASTRA) #include #include #include #if defined(_TD_X86_) #include #endif #endif #endif #else #ifndef __func__ #define __func__ __FUNCTION__ #endif #include #include #ifndef TD_USE_WINSOCK #include #else #include #endif #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __AVX__ #include #elif __SSE4_2__ #include #endif #include "osThread.h" #include "osAtomic.h" #include "osDef.h" #include "osDir.h" #include "osEndian.h" #include "osEnv.h" #include "osFile.h" #include "osLocale.h" #include "osLz4.h" #include "osMath.h" #include "osMemory.h" #include "osMemPool.h" #include "osRand.h" #include "osSemaphore.h" #include "osSignal.h" #include "osSleep.h" #include "osSocket.h" #include "osString.h" #include "osSysinfo.h" #include "osSystem.h" #include "osTime.h" #include "osTimer.h" #include "osTimezone.h" #include "taoserror.h" #include "tlog.h" extern int32_t tsRandErrChance; extern int64_t tsRandErrDivisor; extern int64_t tsRandErrScope; extern threadlocal bool tsEnableRandErr; #define TAOS_UNUSED(expr) (void)(expr) #define TAOS_SKIP_ERROR(expr) \ { \ int32_t _code = terrno; \ (void)(expr); \ terrno = _code; \ } #define OS_PARAM_CHECK(_o) \ do { \ if ((_o) == NULL) { \ terrno = TSDB_CODE_INVALID_PARA; \ return terrno; \ } \ } while (0) // NOTE: use TD_ALWAYS_ASSERT to enforce assertion even in release build // this is for test cases to use!!! #define TD_ALWAYS_ASSERT(pred) \ if (!(pred)) { \ fprintf(stderr, "Assertion `%s` failed.\n", #pred); \ abort(); \ } #ifdef __cplusplus } #endif #endif /*_TD_OS_H_*/