From b63257f8641c9f3c9497ee2847ac68032dc6b707 Mon Sep 17 00:00:00 2001 From: Jett Rink Date: Thu, 1 Oct 2020 15:52:04 -0600 Subject: zephyr: add strtoi shim function When I compile volteer, I only need one stdlib style function and it is something we made ourselves. There is a long verion in Zephyr and long and int are the same size for 32-bit MCUs so we just need to forward the implementation. Also remove compilation of our existing platform/ec util file since Zephyr already provides these basic stdlib like functions. BRANCH=none BUG=b:169935794 TEST=Run Zephyr image on Volteer using this function. TEST=Build and run posix-ec target as well Change-Id: Idb4ea4d5e0a6ad3da8ddc5781e16aeb6e666d85f Signed-off-by: Jett Rink Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2444371 Reviewed-by: Jack Rosenthal --- include/task.h | 4 +++- zephyr/CMakeLists.txt | 1 - zephyr/shim/src/CMakeLists.txt | 1 + zephyr/shim/src/util.c | 14 ++++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 zephyr/shim/src/util.c diff --git a/include/task.h b/include/task.h index 0b244a2a18..365edbb5eb 100644 --- a/include/task.h +++ b/include/task.h @@ -371,6 +371,7 @@ struct irq_def { * Implement the DECLARE_IRQ(irq, routine, priority) macro which is * a core specific helper macro to declare an interrupt handler "routine". */ +#ifndef CONFIG_ZEPHYR #ifdef CONFIG_COMMON_RUNTIME #include "irq_handler.h" #else @@ -383,6 +384,7 @@ struct irq_def { /* Include ec.irqlist here for compilation dependency */ #define ENABLE_IRQ(x) #include "ec.irqlist" -#endif +#endif /* CONFIG_COMMON_RUNTIME */ +#endif /* !CONFIG_ZEPHYR */ #endif /* __CROS_EC_TASK_H */ diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index e7c9d322f2..2569d832c4 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -35,5 +35,4 @@ zephyr_include_directories_ifdef( add_subdirectory_ifdef(CONFIG_PLATFORM_EC "shim/src") # Shimmed modules -zephyr_sources_ifdef(CONFIG_PLATFORM_EC "${PLATFORM_EC}/common/util.c") zephyr_sources_ifdef(CONFIG_PLATFORM_EC_TIMER "${PLATFORM_EC}/common/timer.c") diff --git a/zephyr/shim/src/CMakeLists.txt b/zephyr/shim/src/CMakeLists.txt index 5f8eaf88ad..f87b114949 100644 --- a/zephyr/shim/src/CMakeLists.txt +++ b/zephyr/shim/src/CMakeLists.txt @@ -3,4 +3,5 @@ # found in the LICENSE file. zephyr_sources(console.c) +zephyr_sources(util.c) zephyr_sources_ifdef(CONFIG_PLATFORM_EC_TIMER hwtimer.c) diff --git a/zephyr/shim/src/util.c b/zephyr/shim/src/util.c new file mode 100644 index 0000000000..998a0db01d --- /dev/null +++ b/zephyr/shim/src/util.c @@ -0,0 +1,14 @@ +/* Copyright 2020 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include +#include + +/* Int and Long are same size, just forward to existing Long implementation */ +int strtoi(const char *nptr, char **endptr, int base) +{ + return strtol(nptr, endptr, base); +} +BUILD_ASSERT(sizeof(int) == sizeof(long)); -- cgit v1.2.1