diff options
Diffstat (limited to 'otherservice/posix_based_os001_legacy_library')
16 files changed, 1044 insertions, 0 deletions
diff --git a/otherservice/posix_based_os001_legacy_library/LICENSE b/otherservice/posix_based_os001_legacy_library/LICENSE new file mode 100644 index 00000000..f433b1a5 --- /dev/null +++ b/otherservice/posix_based_os001_legacy_library/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/otherservice/posix_based_os001_legacy_library/Makefile.client b/otherservice/posix_based_os001_legacy_library/Makefile.client new file mode 100644 index 00000000..41927048 --- /dev/null +++ b/otherservice/posix_based_os001_legacy_library/Makefile.client @@ -0,0 +1,20 @@ +# +# @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. +# + + +SUBDIRS := library + +include ../other_service.mk diff --git a/otherservice/posix_based_os001_legacy_library/library/Makefile b/otherservice/posix_based_os001_legacy_library/library/Makefile new file mode 100644 index 00000000..874a4313 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001ClockCycleApi.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001ClockCycleApi.h new file mode 100644 index 00000000..2c3fb444 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001TimeApi.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/PosixBasedOS001TimeApi.h new file mode 100644 index 00000000..616bda40 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/itoa.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/itoa.h new file mode 100644 index 00000000..4f266342 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/posix_based_os001_legacy_library.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/posix_based_os001_legacy_library.h new file mode 100644 index 00000000..188cb01a --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/strlcat.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/strlcat.h new file mode 100644 index 00000000..d42c136c --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/strlcpy.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/strlcpy.h new file mode 100644 index 00000000..14c51fe9 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/include/other_service/ultoa.h b/otherservice/posix_based_os001_legacy_library/library/include/other_service/ultoa.h new file mode 100644 index 00000000..2291f1a7 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/PosixBasedOS001ClockCycleApi.c b/otherservice/posix_based_os001_legacy_library/library/src/PosixBasedOS001ClockCycleApi.c new file mode 100644 index 00000000..b4e73c57 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/PosixBasedOS001TimeApi.c b/otherservice/posix_based_os001_legacy_library/library/src/PosixBasedOS001TimeApi.c new file mode 100644 index 00000000..2a1dd721 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/itoa.c b/otherservice/posix_based_os001_legacy_library/library/src/itoa.c new file mode 100644 index 00000000..49a24bfc --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/strlcat.c b/otherservice/posix_based_os001_legacy_library/library/src/strlcat.c new file mode 100644 index 00000000..8d11eaba --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/strlcpy.c b/otherservice/posix_based_os001_legacy_library/library/src/strlcpy.c new file mode 100644 index 00000000..f440c0e3 --- /dev/null +++ b/otherservice/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/otherservice/posix_based_os001_legacy_library/library/src/ultoa.c b/otherservice/posix_based_os001_legacy_library/library/src/ultoa.c new file mode 100644 index 00000000..1984246e --- /dev/null +++ b/otherservice/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; +} |