diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:08:36 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:59:38 -0700 |
commit | c453fd704268ef72de871b0c5ac7a989de662334 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /include/common.h | |
parent | 6c1587ca70f558b4f96b3f0b18ad8b027d3ba99d (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-ec-c453fd704268ef72de871b0c5ac7a989de662334.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-dartmonkey-releasefirmware-fpmcu-dartmonkey-release
Generated by: ./util/update_release_branch.py --board dartmonkey --relevant_paths_file
./util/fingerprint-relevant-paths.txt firmware-fpmcu-dartmonkey-release
Relevant changes:
git log --oneline 6c1587ca70..28712dae9d -- board/nocturne_fp
board/dartmonkey common/fpsensor docs/fingerprint driver/fingerprint
util/getversion.sh
ded9307b79 util/getversion.sh: Fix version when not in a git repo
956055e692 board: change Google USB vendor info
71b2ef709d Update license boilerplate text in source code files
33e11afda0 Revert "fpsensor: Build fpsensor source file with C++"
c8d0360723 fpsensor: Build fpsensor source file with C++
bc113abd53 fpsensor: Fix g++ compiler error
150a58a0dc fpsensor: Fix fp_set_sensor_mode return type
b33b5ce85b fpsensor: Remove nested designators for C++ compatibility
2e864b2539 tree-wide: const-ify argv for console commands
56d8b360f9 test: Add test for get ikm failure when seed not set
3a3d6c3690 test: Add test for fpsensor trivial key failure
233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256
0a041b285b docs/fingerprint: Typo correction
c03fab67e2 docs/fingerprint: Fix the path of fputils.py
0b5d4baf5a util/getversion.sh: Fix empty file list handling
6e128fe760 FPMCU dev board environment with Satlab
3eb29b6aa5 builtin: Move ssize_t to sys/types.h
345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release
c25ffdb316 common: Conditionally support printf %l and %i modifiers
9a3c514b45 test: Add a test to check if the debugger is connected
54e603413f Move standard library tests to their own file
43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release
25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format
4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format
738de2b575 trng: Rename rand to trng_rand
14b8270edd docs/fingerprint: Update dragonclaw power numbers
0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format
f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format
a0751778f4 board/nocturne_fp/ro_workarounds.c: Format with clang-format
5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format
c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format
eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format
6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format
e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format
58f0246dbe board/nocturne_fp/board_ro.c: Format with clang-format
7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format
21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format
98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format
a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format
84e53a65da board/nocturne_fp/board.h: Format with clang-format
73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format
0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format
1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format
dca9d74321 Revert "trng: Rename rand to trng_rand"
a6b0b3554f trng: Rename rand to trng_rand
28d0b75b70 third_party/boringssl: Remove unused header
BRANCH=None
BUG=b:244387210 b:242720240 b:215613183 b:242720910 b:236386294
BUG=b:234181908 b:244781166 b:234781655 b:234143158 b:234181908
BUG=b:237344361 b:236025198 b:234181908 b:180945056 chromium:1098010
BUG=b:246424843 b:234181908 b:131913998
TEST=`make -j buildall`
TEST=./util/run_device_tests.py --board dartmonkey
Test "aes": PASSED
Test "cec": PASSED
Test "cortexm_fpu": PASSED
Test "crc": PASSED
Test "flash_physical": PASSED
Test "flash_write_protect": PASSED
Test "fpsensor_hw": PASSED
Test "fpsensor_spi_ro": PASSED
Test "fpsensor_spi_rw": PASSED
Test "fpsensor_uart_ro": PASSED
Test "fpsensor_uart_rw": PASSED
Test "mpu_ro": PASSED
Test "mpu_rw": PASSED
Test "mutex": PASSED
Test "pingpong": PASSED
Test "printf": PASSED
Test "queue": PASSED
Test "rollback_region0": PASSED
Test "rollback_region1": PASSED
Test "rollback_entropy": PASSED
Test "rtc": PASSED
Test "sha256": PASSED
Test "sha256_unrolled": PASSED
Test "static_if": PASSED
Test "stdlib": PASSED
Test "system_is_locked_wp_on": PASSED
Test "system_is_locked_wp_off": PASSED
Test "timer_dos": PASSED
Test "utils": PASSED
Test "utils_str": PASSED
Test "panic_data_dartmonkey_v2.0.2887": PASSED
Test "panic_data_nocturne_fp_v2.2.64": PASSED
Test "panic_data_nami_fp_v2.2.144": PASSED
Force-Relevant-Builds: all
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I2c312583a709fedae8fe11d92c22328c3b634bc7
Diffstat (limited to 'include/common.h')
-rw-r--r-- | include/common.h | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/include/common.h b/include/common.h index 02989c692b..7334fe3aed 100644 --- a/include/common.h +++ b/include/common.h @@ -1,4 +1,4 @@ -/* Copyright 2013 The Chromium OS Authors. All rights reserved. +/* Copyright 2013 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -46,7 +46,7 @@ * #define BAZ CONCAT2(BAR, FOO) * Will evaluate to BAR1, which then evaluates to 42. */ -#define CONCAT_STAGE_1(w, x, y, z) w ## x ## y ## z +#define CONCAT_STAGE_1(w, x, y, z) w##x##y##z #define CONCAT2(w, x) CONCAT_STAGE_1(w, x, , ) #define CONCAT3(w, x, y) CONCAT_STAGE_1(w, x, y, ) #define CONCAT4(w, x, y, z) CONCAT_STAGE_1(w, x, y, z) @@ -58,20 +58,20 @@ * is safe with regards to using nested macros and defined arguments. */ #ifndef CONFIG_ZEPHYR -#define STRINGIFY0(name) #name -#define STRINGIFY(name) STRINGIFY0(name) -#endif /* CONFIG_ZEPHYR */ +#define STRINGIFY0(name) #name +#define STRINGIFY(name) STRINGIFY0(name) +#endif /* CONFIG_ZEPHYR */ /* Macros to access registers */ #define REG64_ADDR(addr) ((volatile uint64_t *)(addr)) #define REG32_ADDR(addr) ((volatile uint32_t *)(addr)) #define REG16_ADDR(addr) ((volatile uint16_t *)(addr)) -#define REG8_ADDR(addr) ((volatile uint8_t *)(addr)) +#define REG8_ADDR(addr) ((volatile uint8_t *)(addr)) #define REG64(addr) (*REG64_ADDR(addr)) #define REG32(addr) (*REG32_ADDR(addr)) #define REG16(addr) (*REG16_ADDR(addr)) -#define REG8(addr) (*REG8_ADDR(addr)) +#define REG8(addr) (*REG8_ADDR(addr)) /* * Define __aligned(n) and __packed if someone hasn't beat us to it. Linux @@ -184,7 +184,13 @@ */ #define __override_proto #define __override -#define __overridable __attribute__((weak)) +#define __overridable __attribute__((weak)) + +/* + * Attribute that will generate a compiler warning if the return value is not + * used. + */ +#define __warn_unused_result __attribute__((warn_unused_result)) /* * Macros for combining bytes into larger integers. _LE and _BE signify little @@ -198,30 +204,29 @@ #define UINT32_FROM_BYTES(lsb, byte1, byte2, msb) \ ((lsb) | (byte1) << 8 | (byte2) << 16 | (msb) << 24) -#define UINT32_FROM_BYTE_ARRAY_LE(data, lsb_index) \ +#define UINT32_FROM_BYTE_ARRAY_LE(data, lsb_index) \ UINT32_FROM_BYTES((data)[(lsb_index)], (data)[(lsb_index) + 1], \ (data)[(lsb_index) + 2], (data)[(lsb_index) + 3]) -#define UINT32_FROM_BYTE_ARRAY_BE(data, msb_index) \ +#define UINT32_FROM_BYTE_ARRAY_BE(data, msb_index) \ UINT32_FROM_BYTES((data)[(msb_index) + 3], (data)[(msb_index) + 2], \ (data)[(msb_index) + 1], (data)[(msb_index)]) /* There isn't really a better place for this */ #define C_TO_K(temp_c) ((temp_c) + 273) -#define K_TO_C(temp_c) ((temp_c) - 273) +#define K_TO_C(temp_c) ((temp_c)-273) /* * round_divide is part of math_utils, so you may need to import math_utils.h * and link math_utils.o if you use the following macros. */ #define CELSIUS_TO_DECI_KELVIN(temp_c) \ (round_divide(CELSIUS_TO_MILLI_KELVIN(temp_c), 100)) -#define DECI_KELVIN_TO_CELSIUS(temp_dk) \ - (MILLI_KELVIN_TO_CELSIUS((temp_dk) * 100)) -#define MILLI_KELVIN_TO_MILLI_CELSIUS(temp_mk) ((temp_mk) - 273150) +#define DECI_KELVIN_TO_CELSIUS(temp_dk) (MILLI_KELVIN_TO_CELSIUS((temp_dk)*100)) +#define MILLI_KELVIN_TO_MILLI_CELSIUS(temp_mk) ((temp_mk)-273150) #define MILLI_CELSIUS_TO_MILLI_KELVIN(temp_mc) ((temp_mc) + 273150) #define MILLI_KELVIN_TO_KELVIN(temp_mk) (round_divide((temp_mk), 1000)) -#define KELVIN_TO_MILLI_KELVIN(temp_k) ((temp_k) * 1000) +#define KELVIN_TO_MILLI_KELVIN(temp_k) ((temp_k)*1000) #define CELSIUS_TO_MILLI_KELVIN(temp_c) \ - (MILLI_CELSIUS_TO_MILLI_KELVIN((temp_c) * 1000)) + (MILLI_CELSIUS_TO_MILLI_KELVIN((temp_c)*1000)) #define MILLI_KELVIN_TO_CELSIUS(temp_mk) \ (round_divide(MILLI_KELVIN_TO_MILLI_CELSIUS(temp_mk), 1000)) @@ -229,14 +234,15 @@ * TARGET_WITH_MARGIN(X, 5) returns X' where X' * 100.5% is almost equal to * but does not exceed X. */ #define TARGET_WITH_MARGIN(target, tenths_percent) \ - (((target) * 1000) / (1000 + (tenths_percent))) + (((target)*1000) / (1000 + (tenths_percent))) /* Call a function, and return the error value unless it returns EC_SUCCESS. */ -#define RETURN_ERROR(fn) do { \ - int error = (fn); \ - if (error != EC_SUCCESS) \ - return error; \ -} while (0) +#define RETURN_ERROR(fn) \ + do { \ + int error = (fn); \ + if (error != EC_SUCCESS) \ + return error; \ + } while (0) /* * Define test_mockable and test_mockable_static for mocking @@ -246,11 +252,15 @@ #define test_mockable __attribute__((weak)) #define test_mockable_static __attribute__((weak)) #define test_mockable_static_inline __attribute__((weak)) +#define test_mockable_noreturn __attribute__((weak)) +#define test_mockable_static_noreturn __attribute__((weak)) #define test_export_static #else #define test_mockable #define test_mockable_static static #define test_mockable_static_inline static inline +#define test_mockable_noreturn noreturn +#define test_mockable_static_noreturn static noreturn #define test_export_static static #endif @@ -366,8 +376,7 @@ enum ec_error_list { /* * Mark functions that collide with stdlib so they can be hidden when linking - * against libraries that require stdlib. HIDE_EC_STDLIB should be defined - * before including common.h from code that links to cstdlib. + * against libraries that require stdlib. */ #ifdef TEST_FUZZ #define __stdlib_compat __attribute__((visibility("hidden"))) @@ -391,12 +400,12 @@ enum ec_error_list { * undefined, rather than defined to something else. This usually * involves tricks with __builtin_strcmp. */ -#define __cfg_select(cfg, empty, otherwise) \ +#define __cfg_select(cfg, empty, otherwise) \ __cfg_select_1(cfg, empty, otherwise) #define __cfg_select_placeholder_ _, -#define __cfg_select_1(value, empty, otherwise) \ +#define __cfg_select_1(value, empty, otherwise) \ __cfg_select_2(__cfg_select_placeholder_##value, empty, otherwise) -#define __cfg_select_2(arg1_or_junk, empty, otherwise) \ +#define __cfg_select_2(arg1_or_junk, empty, otherwise) \ __cfg_select_3(arg1_or_junk _, empty, otherwise) #define __cfg_select_3(_ignore1, _ignore2, select, ...) select @@ -405,13 +414,10 @@ enum ec_error_list { * handling the __builtin_strcmp trickery where a BUILD_ASSERT is * appropriate in the context. */ -#define __cfg_select_build_assert(cfg, value, empty, undef) \ - __cfg_select( \ - value, \ - empty, \ - BUILD_ASSERT( \ - __builtin_strcmp(cfg, #value) == 0); \ - undef) +#define __cfg_select_build_assert(cfg, value, empty, undef) \ + __cfg_select(value, empty, \ + BUILD_ASSERT(__builtin_strcmp(cfg, #value) == 0); \ + undef) /* * Attribute for generating an error if a function is used. @@ -436,16 +442,16 @@ enum ec_error_list { * technique requires that the optimizer be enabled so it can remove * the undefined function call. */ -#define __config_enabled(cfg, value) \ - __cfg_select( \ - value, 1, ({ \ - int __undefined = __builtin_strcmp(cfg, #value) == 0; \ - extern int IS_ENABLED_BAD_ARGS(void) __error( \ - cfg " must be <blank>, or not defined."); \ - if (!__undefined) \ - IS_ENABLED_BAD_ARGS(); \ - 0; \ - })) +#define __config_enabled(cfg, value) \ + __cfg_select(value, 1, ({ \ + int __undefined = \ + __builtin_strcmp(cfg, #value) == 0; \ + extern int IS_ENABLED_BAD_ARGS(void) __error( \ + cfg " must be <blank>, or not defined."); \ + if (!__undefined) \ + IS_ENABLED_BAD_ARGS(); \ + 0; \ + })) /** * Checks if a config option is enabled or disabled @@ -478,7 +484,7 @@ enum ec_error_list { * if the config option is enabled by Zephyr's definition. */ #define IS_ENABLED(option) __cfg_select(option, 1, Z_IS_ENABLED1(option)) -#endif /* CONFIG_ZEPHYR */ +#endif /* CONFIG_ZEPHYR */ /** * Makes a global variable static when a config option is enabled, @@ -490,7 +496,7 @@ enum ec_error_list { * should be defined to nothing or undefined. */ #ifndef CONFIG_ZEPHYR -#define STATIC_IF(option) \ +#define STATIC_IF(option) \ __cfg_select_build_assert(#option, option, static, extern) #else /* @@ -511,7 +517,7 @@ enum ec_error_list { * config option. */ #ifndef CONFIG_ZEPHYR -#define STATIC_IF_NOT(option) \ +#define STATIC_IF_NOT(option) \ __cfg_select_build_assert(#option, option, extern, static) #else /* @@ -522,4 +528,4 @@ enum ec_error_list { __cfg_select(option, extern, COND_CODE_1(option, (extern), (static))) #endif /* CONFIG_ZEPHYR */ -#endif /* __CROS_EC_COMMON_H */ +#endif /* __CROS_EC_COMMON_H */ |