diff options
author | Tianjie Xu <xunchang@google.com> | 2016-04-30 20:49:59 +0200 |
---|---|---|
committer | Tianjie Xu <xunchang@google.com> | 2016-05-20 22:56:53 +0200 |
commit | 162558382b768a4120b3e41090a4c7b53f11469a (patch) | |
tree | 7e0d268233fc6bea07a361cf6913fc3a5e524063 /edify/expr.h | |
parent | Add time and I/O info to last_install (diff) | |
download | android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar.gz android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar.bz2 android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar.lz android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar.xz android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.tar.zst android_bootable_recovery-162558382b768a4120b3e41090a4c7b53f11469a.zip |
Diffstat (limited to 'edify/expr.h')
-rw-r--r-- | edify/expr.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/edify/expr.h b/edify/expr.h index 36f8e9612..5c06de846 100644 --- a/edify/expr.h +++ b/edify/expr.h @@ -19,6 +19,7 @@ #include <unistd.h> +#include "error_code.h" #include "yydefs.h" #define MAX_STRING_LEN 1024 @@ -39,6 +40,15 @@ typedef struct { // Should be NULL initially, will be either NULL or a malloc'd // pointer after Evaluate() returns. char* errmsg; + + // error code indicates the type of failure (e.g. failure to update system image) + // during the OTA process. + ErrorCode error_code = kNoError; + + // cause code provides more detailed reason of an OTA failure (e.g. fsync error) + // in addition to the error code. + CauseCode cause_code = kNoCause; + } State; #define VAL_STRING 1 // data will be NULL-terminated; size doesn't count null @@ -152,7 +162,13 @@ Value** ReadValueVarArgs(State* state, int argc, Expr* argv[]); // Use printf-style arguments to compose an error message to put into // *state. Returns NULL. -Value* ErrorAbort(State* state, const char* format, ...) __attribute__((format(printf, 2, 3))); +Value* ErrorAbort(State* state, const char* format, ...) + __attribute__((format(printf, 2, 3), deprecated)); + +// ErrorAbort has an optional (but recommended) argument 'cause_code'. If the cause code +// is set, it will be logged into last_install and provides reason of OTA failures. +Value* ErrorAbort(State* state, CauseCode cause_code, const char* format, ...) + __attribute__((format(printf, 3, 4))); // Wrap a string into a Value, taking ownership of the string. Value* StringValue(char* str); |