diff options
Diffstat (limited to 'nsframework/log_library/client')
5 files changed, 239 insertions, 0 deletions
diff --git a/nsframework/log_library/client/Makefile b/nsframework/log_library/client/Makefile new file mode 100644 index 00000000..24279270 --- /dev/null +++ b/nsframework/log_library/client/Makefile @@ -0,0 +1,32 @@ +# +# @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. +# + +######### libraries to be installed(*.a) ############# +INST_SHLIBS = liblog +######### headers to be installed(*.h) ############# +INST_HEADERS := loglibrarylog_library.h loglibrarylog_if.h + +######### sources to be compiled ############# +liblog_SRCS := loglibrarylog.c + +######### search paths ############# +VPATH = ./src ./include/$(COMPONENT_NAME) + +######### include paths ############# +CFLAGS += -I./include +LDFLAGS += -Wl,--no-as-needed + +include ../../native_service.mk diff --git a/nsframework/log_library/client/include/loglibrarylog_internal.h b/nsframework/log_library/client/include/loglibrarylog_internal.h new file mode 100644 index 00000000..af6e7cf1 --- /dev/null +++ b/nsframework/log_library/client/include/loglibrarylog_internal.h @@ -0,0 +1,26 @@ +/* + * @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 LOG_LIBRARY_CLIENT_INCLUDE_LOGLIBRARYLOG_INTERNAL_H_ +#define LOG_LIBRARY_CLIENT_INCLUDE_LOGLIBRARYLOG_INTERNAL_H_ + +// Prototype +int LOGLIBRARYLOG_Freeze(void); + +#endif // LOG_LIBRARY_CLIENT_INCLUDE_LOGLIBRARYLOG_INTERNAL_H_ +//@} diff --git a/nsframework/log_library/client/include/native_service/loglibrarylog_if.h b/nsframework/log_library/client/include/native_service/loglibrarylog_if.h new file mode 100644 index 00000000..5bf90c3a --- /dev/null +++ b/nsframework/log_library/client/include/native_service/loglibrarylog_if.h @@ -0,0 +1,79 @@ +/* + * @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. + */ +/** + * @file + * @brief \~english This file contains defines and LOGLIBRARYLOG_Freeze API for free frameworkunifiedlog. + * + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup native_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup log_library + * @ingroup native_service + * @{ + */ + +#ifndef __LOGLIBRARYLOG_IF_H__ // NOLINT (readability/nolint) +#define __LOGLIBRARYLOG_IF_H__ + +#define FRAMEWORKUNIFIEDLOG_SHARED_MEM_NAME "loglibrarylogconfig.cfg" +#define FRAMEWORKUNIFIEDLOG_RAMDISC_NAME "/ramd/BS/ss/logger_service/rwdata/frameworkunifiedlog/frameworkunified_debug.log" +#define FRAMEWORKUNIFIEDLOG_RAMDISC_PATH "/ramd/BS/ss/logger_service/rwdata/frameworkunifiedlog" + +// Out put mode +#define FRAMEWORKUNIFIEDLOG_FLAG_MODE_DEBUG 1 // Debug +#define FRAMEWORKUNIFIEDLOG_FLAG_MODE_RELEASE 0 // :Release + +// RealtimeLog mode +#define LOGLIBRARYLOG_REALTIMELOG_DISABLE_MASK 0x80 +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_FREEZE 0xFF // : FREEZE + +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_OFF 0 // :ALL OFF +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_UART 1 // :UARTOUT +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_USB 2 // :USB OUT +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_USB_DISABLE \ + (FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_USB | LOGLIBRARYLOG_REALTIMELOG_DISABLE_MASK) +#define FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_MAX 3 // :MAX NUM + +////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup LOGLIBRARYLOG_Freeze +/// \~english @par Brief +/// Freeze Loglibrarylog API. +/// \~english @retval 0: success +/// \~english @retval -1: error +/// \~english @par Prerequisite +/// - none +/// \~english @par Conditions of processing failure +/// - none +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync Only +/// \~english @par Detail +/// This API is provide to freeze Loglibrarylog. +/// \~english @see none +//////////////////////////////////////////////////////////////////////////////// +int LOGLIBRARYLOG_Freeze(void); + +#endif // __LOGLIBRARYLOG_IF_H__ // NOLINT (readability/nolint) +/** @}*/ +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/nsframework/log_library/client/include/native_service/loglibrarylog_library.h b/nsframework/log_library/client/include/native_service/loglibrarylog_library.h new file mode 100644 index 00000000..60edd01f --- /dev/null +++ b/nsframework/log_library/client/include/native_service/loglibrarylog_library.h @@ -0,0 +1,42 @@ +/* + * @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 log_library head files + * + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup native_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup log_library + * @ingroup native_service + * @{ + */ + +#ifndef NATIVESERVICE_LOGLIBRARY_H_ // NOLINT(build/header_guard) +#define NATIVESERVICE_LOGLIBRARY_H_ + +#include <native_service/loglibrarylog_if.h> + +#endif // NATIVESERVICE_LOGLIBRARY_H_ +/** @}*/ +/** @}*/ +/** @}*/ +/** @}*/ diff --git a/nsframework/log_library/client/src/loglibrarylog.c b/nsframework/log_library/client/src/loglibrarylog.c new file mode 100644 index 00000000..7aa7c2b6 --- /dev/null +++ b/nsframework/log_library/client/src/loglibrarylog.c @@ -0,0 +1,60 @@ +/* + * @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 <stdio.h> +#include <sys/mman.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <errno.h> + +#include <native_service/loglibrarylog_if.h> +#include "loglibrarylog_internal.h" + +int +LOGLIBRARYLOG_Freeze(void) { + int fd; + int *pmap; + int ret; + + fd = shm_open(FRAMEWORKUNIFIEDLOG_SHARED_MEM_NAME, O_RDWR | O_CREAT, S_IRWXU | S_IRWXO); + if (fd == -1) { + fprintf(stderr, "[%s:L%d]shm_open(%s) error(%d)\n", __FUNCTION__, __LINE__, + FRAMEWORKUNIFIEDLOG_SHARED_MEM_NAME, errno); + return -1; + } + + ret = ftruncate(fd, sizeof(int)); + if (ret == 0) { + fprintf(stderr, "[%s:L%d]ftruncate() error(%d)\n", __FUNCTION__, __LINE__, ret); + close(fd); + return -1; + } + + pmap = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + close(fd); + if (pmap == MAP_FAILED) { + fprintf(stderr, "[%s:L%d]mmap() error(%d)\n", __FUNCTION__, __LINE__, errno); + return -1; + } + *pmap = FRAMEWORKUNIFIEDLOG_REALTIMELOG_MODE_FREEZE; + + if (munmap(pmap, sizeof(int)) != 0) { + fprintf(stderr, "[%s:L%d]munmap() error(%d)\n", __FUNCTION__, __LINE__, errno); + } + + return 0; +} |