summaryrefslogtreecommitdiffstats
path: root/src/include/elog.h
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-08-06 10:02:37 -0500
committerMartin Roth <martinroth@google.com>2016-08-09 19:53:21 +0200
commiteec1c28bd424ece0b60abda21912c4e8f51ff3ba (patch)
tree4eb83b8aa0f4b5bac7cafbd673727313cf3e096f /src/include/elog.h
parent18fedb360f7ac3347782d97150657239632d3f3a (diff)
downloadcoreboot-eec1c28bd424ece0b60abda21912c4e8f51ff3ba.tar.gz
coreboot-eec1c28bd424ece0b60abda21912c4e8f51ff3ba.tar.bz2
coreboot-eec1c28bd424ece0b60abda21912c4e8f51ff3ba.zip
drivers/elog: provide return status for all operations
Instead of relying on global state to determine if an error occurred provide the ability to know if an add or shrink operation is successful. Now the call chains report the error back up the stack and out to the callers. BUG=chrome-os-partner:55932 Change-Id: Id4ed4d93e331f1bf16e038df69ef067446d00102 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/16104 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/include/elog.h')
-rw-r--r--src/include/elog.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/include/elog.h b/src/include/elog.h
index 3f949bf384ad..504c52e9a23f 100644
--- a/src/include/elog.h
+++ b/src/include/elog.h
@@ -146,23 +146,24 @@ struct elog_event_data_me_extended {
/* Eventlog backing storage must be initialized before calling elog_init(). */
extern int elog_init(void);
extern int elog_clear(void);
-extern void elog_add_event_raw(u8 event_type, void *data, u8 data_size);
-extern void elog_add_event(u8 event_type);
-extern void elog_add_event_byte(u8 event_type, u8 data);
-extern void elog_add_event_word(u8 event_type, u16 data);
-extern void elog_add_event_dword(u8 event_type, u32 data);
-extern void elog_add_event_wake(u8 source, u32 instance);
+/* Event addition functions return < 0 on failure and 0 on success. */
+extern int elog_add_event_raw(u8 event_type, void *data, u8 data_size);
+extern int elog_add_event(u8 event_type);
+extern int elog_add_event_byte(u8 event_type, u8 data);
+extern int elog_add_event_word(u8 event_type, u16 data);
+extern int elog_add_event_dword(u8 event_type, u32 data);
+extern int elog_add_event_wake(u8 source, u32 instance);
extern int elog_smbios_write_type15(unsigned long *current, int handle);
#else
/* Stubs to help avoid littering sources with #if CONFIG_ELOG */
static inline int elog_init(void) { return -1; }
static inline int elog_clear(void) { return -1; }
-static inline void elog_add_event_raw(void) { return; }
-static inline void elog_add_event(u8 event_type) { return; }
-static inline void elog_add_event_byte(u8 event_type, u8 data) { return; }
-static inline void elog_add_event_word(u8 event_type, u16 data) { return; }
-static inline void elog_add_event_dword(u8 event_type, u32 data) { return; }
-static inline void elog_add_event_wake(u8 source, u32 instance) { return; }
+static inline int elog_add_event_raw(void) { return 0; }
+static inline int elog_add_event(u8 event_type) { return 0; }
+static inline int elog_add_event_byte(u8 event_type, u8 data) { return 0; }
+static inline int elog_add_event_word(u8 event_type, u16 data) { return 0; }
+static inline int elog_add_event_dword(u8 event_type, u32 data) { return 0; }
+static inline int elog_add_event_wake(u8 source, u32 instance) { return 0; }
static inline int elog_smbios_write_type15(unsigned long *current,
int handle) {
return 0;