diff options
Diffstat (limited to 'service/other/posix_based_os001_legacy_library/library')
14 files changed, 847 insertions, 0 deletions
diff --git a/service/other/posix_based_os001_legacy_library/library/Makefile b/service/other/posix_based_os001_legacy_library/library/Makefile new file mode 100755 index 0000000..874a431 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/Makefile @@ -0,0 +1,48 @@ +# +# @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +INST_SHLIBS = libPosixBasedOS001legacy + +VPATH = ./src ./include/$(COMPONENT_NAME)/ +INST_HEADERS = strlcat.h strlcpy.h \ +itoa.h \ +PosixBasedOS001TimeApi.h \ +PosixBasedOS001ClockCycleApi.h \ +ultoa.h \ +posix_based_os001_legacy_library.h + +libPosixBasedOS001legacy_SRCS += strlcat.c strlcpy.c \ +itoa.c \ +PosixBasedOS001TimeApi.c \ +PosixBasedOS001ClockCycleApi.c \ +ultoa.c + +CPPFLAGS = -I./include + +LDFLAGS += -Wl,--no-undefined +LDFLAGS += -Wl,--no-as-needed +CPPFLAGS += -Werror=implicit-function-declaration +CPPFLAGS += -Werror=format-security + +CPPFLAGS += -Wconversion +CPPFLAGS += -Wpointer-to-int-cast +CPPFLAGS += -Wint-to-pointer-cast +CPPFLAGS += -Wpointer-arith +CPPFLAGS += -Wformat + + + +include ../../other_service.mk diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001ClockCycleApi.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001ClockCycleApi.h new file mode 100755 index 0000000..2c3fb44 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001ClockCycleApi.h @@ -0,0 +1,83 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_CLOCK_CYCLE_API_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_CLOCK_CYCLE_API_H_ // NOLINT(build/header_guard) + +#include <stdint.h> + +/******************************************************************************/ +/* define */ + +/******************************************************************************/ +/* typedef */ + +/******************************************************************************/ +/* struct */ + + +/******************************************************************************/ +/* function */ +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file PosixBasedOS001ClockCycleApi.h + * @brief \~english This file provides ClockCycle API to get number of clock cycles. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup ClockCycle +/// \~english @par Brief +/// Get the number of clock cycles. +/// \~english @retval Microsecond +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// None +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +uint64_t ClockCycle(void); + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_CLOCK_CYCLE_API_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001TimeApi.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001TimeApi.h new file mode 100755 index 0000000..616bda4 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001TimeApi.h @@ -0,0 +1,86 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// libraries for replacing PosixBasedOS001 to Linux +// PosixBasedOS001TimeApi.h + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_TIMEAPI_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_TIMEAPI_H_ // NOLINT(build/header_guard) + +#include <sys/types.h> + +/*******************************************************************************/ +/* define */ + +/*******************************************************************************/ +/* typedef */ + +/*******************************************************************************/ +/* struct */ + +/*******************************************************************************/ +/* function */ +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file PosixBasedOS001TimeApi.h + * @brief \~english This file provides delay API to delay for the specified time. + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup delay +/// \~english @par Brief +/// Delay for the specified time. +/// \~english @param [in] duration +/// unsigned int - The number of milliseconds for which to suspend the calling thread from execution +/// \~english @retval EOK +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Detail +/// If duration is more than 1000 milliseconds, return immediately. +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +unsigned int delay(unsigned int duration); // NOLINT(readability/nolint) + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_TIMEAPI_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/itoa.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/itoa.h new file mode 100755 index 0000000..4f26634 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/itoa.h @@ -0,0 +1,74 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ITOA_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ITOA_H_ // NOLINT(build/header_guard) + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file itoa.h + * @brief \~english This file provides itoa API to convert integer value to null terminated string + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup itoa +/// \~english @par Brief +/// Integer value to null terminated string. +/// \~english @param [in] value +/// int - value Number to convert +/// \~english @param [out] buff +/// char - buff Result string +/// \~english @param [in] radix +/// int - radix Radix of value +/// \~english @retval String pointer +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// None +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +char* itoa(int value, char buff[], int radix); // NOLINT(readability/nolint) + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ITOA_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/posix_based_os001_legacy_library.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/posix_based_os001_legacy_library.h new file mode 100755 index 0000000..188cb01 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/posix_based_os001_legacy_library.h @@ -0,0 +1,46 @@ +/* + * @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @file + * @brief \~english include all posix_based_os001_legacy_library head files + */ +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_H_ // NOLINT(build/header_guard) +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + + +#include <other_service/PosixBasedOS001ClockCycleApi.h> +#include <other_service/PosixBasedOS001TimeApi.h> +#include <other_service/itoa.h> +#include <other_service/strlcat.h> +#include <other_service/strlcpy.h> +#include <other_service/ultoa.h> + + +/** @}*/ // posix_based_os001_legacy_library +/** @}*/ // other_service +/** @}*/ // BaseSystem +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcat.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcat.h new file mode 100755 index 0000000..d42c136 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcat.h @@ -0,0 +1,78 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCAT_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCAT_H_ // NOLINT(build/header_guard) + +#include <strings.h> + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file strlcat.h + * @brief \~english This file provides strlcat API to concatenate strings + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup strlcat +/// \~english @par Brief +/// Concatenate strings +/// \~english @param [in/out] dst +/// char * - Destination string +/// \~english @param [in] src +/// const char * - Concatenated string +/// \~english @param [in] siz +/// size_t - Size of dst +/// \~english @retval String length after concatenation +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// Appends src to string dst of size siz (unlike strncat, siz is the full size of dst, not space left). +/// At most siz-1 characters will be copied. Always NUL terminates (unless siz <= strlen(dst)). +/// Returns strlen(src) + MIN(siz, strlen(initial dst)). If retval >= siz, truncation occurred. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +size_t strlcat(char *dst, const char *src, size_t siz); // NOLINT(readability/nolint) + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCAT_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcpy.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcpy.h new file mode 100755 index 0000000..14c51fe --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/strlcpy.h @@ -0,0 +1,78 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCPY_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCPY_H_ // NOLINT(build/header_guard) + +#include <strings.h> + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file strlcpy.h + * @brief \~english This file provides API to copy string + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup strlcpy +/// \~english @par Brief +/// Copy string +/// \~english @param [in/out] dst +/// char * - Destination string +/// \~english @param [in] src +/// const char * - Copy string +/// \~english @param [in] siz +/// size_t - Size of dst +/// \~english @retval Length of copied character string +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// Copy src to string dst of size siz. At most siz-1 characters will be copied. +/// Always NUL terminates (unless siz == 0). +/// Returns strlen(src); if retval >= siz, truncation occurred. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +size_t strlcpy(char *dst, const char *src, size_t siz); // NOLINT(readability/nolint) + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_STRLCPY_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/include/other_service/ultoa.h b/service/other/posix_based_os001_legacy_library/library/include/other_service/ultoa.h new file mode 100755 index 0000000..2291f1a --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/include/other_service/ultoa.h @@ -0,0 +1,74 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ULTOA_H_ // NOLINT(build/header_guard) +#define OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ULTOA_H_ // NOLINT(build/header_guard) + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file ultoa.h + * @brief \~english This file provides ultoa API to convert unsigned long type to NULL terminated character string + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup other_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup posix_based_os001_legacy_library + * @ingroup other_service + * @{ + */ + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup ultoa +/// \~english @par Brief +/// Convert unsigned long type to NULL terminated character string. +/// \~english @param [in] value +/// int - value Number to convert +/// \~english @param [out] buff +/// char - buff Result string +/// \~english @param [in] radix +/// int - radix Radix of value +/// \~english @retval String pointer +/// \~english @par Prerequisite +/// None +/// \~english @par Change of internal state +/// None +/// \~english @par Conditions of processing failure +/// None +/// \~english @par Detail +/// None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +char *ultoa(unsigned long value, char *buf, int radix); // NOLINT (readability/nolint) + +/** @}*/ // end of posix_based_os001_legacy_library +/** @}*/ // end of other_service +/** @}*/ // end of BaseSystem +#ifdef __cplusplus +} +#endif + +#endif // OTHERSERVICE_POSIXBASEDOS001LEGACYLIBRARY_POSIXBASEDOS001_ULTOA_H_ diff --git a/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001ClockCycleApi.c b/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001ClockCycleApi.c new file mode 100755 index 0000000..b4e73c5 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001ClockCycleApi.c @@ -0,0 +1,56 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <other_service/PosixBasedOS001ClockCycleApi.h> +#include <time.h> + +/******************************************************************************/ +/* +Overview :GetTickCount() like Win32 API +Arguments :void +Return :OK:usec NG:0 +Note : +*/ +static uint64_t GetTickCount(void ) +{ + struct timespec tp; + /*--------------------------------------------------------------------*/ + + if(clock_gettime(CLOCK_MONOTONIC, &tp) != 0) // LCOV_EXCL_BR_LINE 5: fail safe for libc clock_gettime + { + return 0; + } + + return (uint64_t)(tp.tv_sec * 1000000 + tp.tv_nsec / 1000); +} + + +/******************************************************************************/ +/* +Overview :Get the number of clock cycles +Arguments :void +Return :OK:usec NG:0 +Note : +*/ +uint64_t ClockCycle( void ) +{ + return GetTickCount(); +} + +/******************************************************************************/ +/* End of souce code.*/ +/******************************************************************************/ + diff --git a/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001TimeApi.c b/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001TimeApi.c new file mode 100755 index 0000000..2a1dd72 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/PosixBasedOS001TimeApi.c @@ -0,0 +1,57 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// libraries for replacing PosixBasedOS001 to Linux +// PosixBasedOS001TimeApi.c + +#include <other_service/PosixBasedOS001TimeApi.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <unistd.h> // for using usleep() +#include <time.h> // for using clock() + +// delay() +// NOTE: Control a device +// duration +// The number of milliseconds for which to suspend the calling thread from execution. +// +// _CWORD72_ doesnot use return code of delay, and sets 1,100,and 1000. +unsigned int delay( unsigned int duration ){ + + int ret; + useconds_t duration_usec = duration * 1000; + + ret = EOK; + + if( duration_usec > 1000000 ){ + printf("delay():over flow!\n"); + }else{ + + // using usec order + ret = usleep(duration_usec); + + // error of usleep() = 0(E_OK), -1(ERROR) + // delay() cannot return error code. [data type unmatch] + if(ret < 0){ // LCOV_EXCL_BR_LINE 5: fail safe for libc function usleep + AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert + printf("delay():error!\n"); // LCOV_EXCL_LINE 5: fail safe for libc function usleep + } + } + + return EOK; +} diff --git a/service/other/posix_based_os001_legacy_library/library/src/itoa.c b/service/other/posix_based_os001_legacy_library/library/src/itoa.c new file mode 100755 index 0000000..49a24bf --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/itoa.c @@ -0,0 +1,45 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +char* itoa( int value, char buff[], int radix ) { + static const char table[] = "0123456789abcdefghijklmnopqrstuvwxyz"; + char *head = buff; + char *tail = buff; + char temp; + + // Converting minus sign to character + if ( value < 0 ){ + *tail++ = '-'; + value = -value; + } + // Converting integer to character + if ( value == 0 ){ + *tail++ = '0'; + } + else for ( head = tail ; value != 0 ; value /= radix ){ + *tail++ = table[ value % radix ]; + } + *tail = '\0'; + + // swapping characters + for ( tail-- ; head < tail ; head++, tail-- ){ + temp = *head; + *head = *tail; + *tail = temp; + } + + return buff; +} diff --git a/service/other/posix_based_os001_legacy_library/library/src/strlcat.c b/service/other/posix_based_os001_legacy_library/library/src/strlcat.c new file mode 100755 index 0000000..8d11eab --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/strlcat.c @@ -0,0 +1,40 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <sys/types.h> +#include <string.h> + +size_t +strlcat(char *dst, const char *src, size_t size) +{ + size_t dstsize, srcsize, copysize; + + dstsize = strnlen(dst, size); + srcsize = strlen(src); + if (dstsize == size) { + return dstsize + srcsize; + } + + copysize = size - dstsize - 1; + if (srcsize < copysize) { + copysize = srcsize; + } + + memcpy(dst + dstsize, src, copysize); + dst[dstsize + copysize] = '\0'; + + return dstsize + srcsize; +} diff --git a/service/other/posix_based_os001_legacy_library/library/src/strlcpy.c b/service/other/posix_based_os001_legacy_library/library/src/strlcpy.c new file mode 100755 index 0000000..f440c0e --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/strlcpy.c @@ -0,0 +1,49 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <sys/types.h> +#include <string.h> + +/* + * Copy src to string dst of size siz. At most siz-1 characters + * will be copied. Always NUL terminates (unless siz == 0). + * Returns strlen(src); if retval >= siz, truncation occurred. + */ +size_t +strlcpy(char *dst, const char *src, size_t siz) +{ + char *d = dst; + const char *s = src; + size_t n = siz; + + /* Copy as many bytes as will fit */ + if (n != 0) { + while (--n != 0) { + if ((*d++ = *s++) == '\0') + break; + } + } + + /* Not enough room in dst, add NUL and traverse rest of src */ + if (n == 0) { + if (siz != 0) + *d = '\0'; /* NUL-terminate dst */ + while (*s++) + ; + } + + return (size_t)(s - src - 1); /* count does not include NUL */ +} diff --git a/service/other/posix_based_os001_legacy_library/library/src/ultoa.c b/service/other/posix_based_os001_legacy_library/library/src/ultoa.c new file mode 100755 index 0000000..1984246 --- /dev/null +++ b/service/other/posix_based_os001_legacy_library/library/src/ultoa.c @@ -0,0 +1,33 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <string.h> + +char *ultoa(unsigned long value, char *buf, int radix) +{ + const static char c[] = "0123456789abcdef"; + char b[65]; + char *p = b + sizeof(b); + + *--p ='\0'; + do { + *--p = c[value % (unsigned int)radix]; + value /= (unsigned int)radix; + } while (value); + strcpy(buf, p); + + return buf; +} |