diff options
author | Joel Kitching <kitching@google.com> | 2018-12-03 14:39:57 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-28 19:04:01 -0700 |
commit | a1df89d980b97de402653b04812833bc78484ecf (patch) | |
tree | 4190653b253a7c46a15ad2be1606661f5a64a6f6 /firmware | |
parent | 72fbc0760e581ce637dd4936118c29c2f855d95c (diff) | |
download | vboot-a1df89d980b97de402653b04812833bc78484ecf.tar.gz |
2lib: create generic return code for unimplemented external functions
vboot_reference has a set of "external" functions which are
defined by the client and linked in at compile time.
Instead of creating a separate return code for each unimplemented
external function, group them all into one.
BUG=chromium:944804
TEST=make clean && make runtests
BRANCH=None
Change-Id: Ic3896572c71aabf99590758c7fc3848b61f9e078
Reviewed-on: https://chromium-review.googlesource.com/1539433
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/2lib/2stub.c | 13 | ||||
-rw-r--r-- | firmware/2lib/include/2return_codes.h | 13 |
2 files changed, 17 insertions, 9 deletions
diff --git a/firmware/2lib/2stub.c b/firmware/2lib/2stub.c index e3489cf5..417c06ee 100644 --- a/firmware/2lib/2stub.c +++ b/firmware/2lib/2stub.c @@ -27,7 +27,8 @@ void vb2ex_printf(const char *func, const char *fmt, ...) __attribute__((weak)) int vb2ex_tpm_clear_owner(struct vb2_context *ctx) { - return VB2_ERROR_EX_TPM_CLEAR_OWNER_UNIMPLEMENTED; + fprintf(stderr, "%s: function not implemented", __func__); + return VB2_ERROR_EX_UNIMPLEMENTED; } __attribute__((weak)) @@ -37,7 +38,8 @@ int vb2ex_read_resource(struct vb2_context *ctx, void *buf, uint32_t size) { - return VB2_ERROR_EX_READ_RESOURCE_UNIMPLEMENTED; + fprintf(stderr, "%s: function not implemented", __func__); + return VB2_ERROR_EX_UNIMPLEMENTED; } __attribute__((weak)) @@ -51,18 +53,19 @@ __attribute__((weak)) int vb2ex_hwcrypto_digest_extend(const uint8_t *buf, uint32_t size) { - return VB2_ERROR_SHA_EXTEND_ALGORITHM; /* Should not be called. */ + return VB2_ERROR_SHA_EXTEND_ALGORITHM; /* Should not be called. */ } __attribute__((weak)) int vb2ex_hwcrypto_digest_finalize(uint8_t *digest, uint32_t digest_size) { - return VB2_ERROR_SHA_FINALIZE_ALGORITHM; /* Should not be called. */ + return VB2_ERROR_SHA_FINALIZE_ALGORITHM; /* Should not be called. */ } __attribute__((weak)) int vb2ex_tpm_set_mode(enum vb2_tpm_mode mode_val) { - return VB2_ERROR_UNKNOWN; + fprintf(stderr, "%s: function not implemented", __func__); + return VB2_ERROR_EX_UNIMPLEMENTED; } diff --git a/firmware/2lib/include/2return_codes.h b/firmware/2lib/include/2return_codes.h index 3cc01010..92e4eb1c 100644 --- a/firmware/2lib/include/2return_codes.h +++ b/firmware/2lib/include/2return_codes.h @@ -588,8 +588,9 @@ enum vb2_return_code { */ VB2_ERROR_EX = VB2_ERROR_BASE + 0x0a0000, - /* Read resource not implemented */ - VB2_ERROR_EX_READ_RESOURCE_UNIMPLEMENTED, + /* Read resource not implemented + * Deprecated: use VB2_ERROR_EX_UNIMPLEMENTED (chromium:944804) */ + VB2_ERROR_EX_DEPRECATED_READ_RESOURCE_UNIMPLEMENTED, /* Resource index not found */ VB2_ERROR_EX_READ_RESOURCE_INDEX, @@ -600,8 +601,9 @@ enum vb2_return_code { /* TPM clear owner failed */ VB2_ERROR_EX_TPM_CLEAR_OWNER, - /* TPM clear owner not implemented */ - VB2_ERROR_EX_TPM_CLEAR_OWNER_UNIMPLEMENTED, + /* TPM clear owner not implemented + * Deprecated: use VB2_ERROR_EX_UNIMPLEMENTED (chromium:944804) */ + VB2_ERROR_DEPRECATED_EX_TPM_CLEAR_OWNER_UNIMPLEMENTED, /* Hardware crypto engine doesn't support this algorithm (non-fatal) */ VB2_ERROR_EX_HWCRYPTO_UNSUPPORTED, @@ -609,6 +611,9 @@ enum vb2_return_code { /* TPM does not understand this command */ VB2_ERROR_EX_TPM_NO_SUCH_COMMAND, + /* vb2ex function is unimplemented (stubbed in 2lib/2stub.c) */ + VB2_ERROR_EX_UNIMPLEMENTED, + /********************************************************************** * Errors generated by host library (non-firmware) start here. */ |