From eec1c28bd424ece0b60abda21912c4e8f51ff3ba Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Sat, 6 Aug 2016 10:02:37 -0500 Subject: 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 Reviewed-on: https://review.coreboot.org/16104 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/include/elog.h | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'src/include') diff --git a/src/include/elog.h b/src/include/elog.h index 3f949bf384..504c52e9a2 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; -- cgit v1.2.3