Files
OpenCellular/include
Randall Spangler 7d2ce0c47e ec_commands: Remove zero-size structs
The size of empty structs (and unions) varies between C and C++.  When
including in C++ code our external API in ec_commands.h header with
extern "C".  clang will complain (correctly) for all empty structs:
       error: empty struct has size 0 in C, size 1 in C++
       [-Werror,-Wextern-c-compat]

Remove them from the ec_commands.h header file.

ectool.c has some ugly macros which assume subcommands have both
requests and responses.  Change those macros so they only reference
the non-empty sub-structs.  The macros are still ugly, but generate
identical output, and don't rely upon zero-length structs.

BUG=chromium:792408
BRANCH=none
TEST=manual

	1) Compile the following using 'clang -Wall -Werror':

	   #include <stdint.h>
	   extern "C" {
	   #include "include/ec_commands.h"
	   }
	   int main(void) { return 0; }

	   It compiles without error.

	2) Copy the lb_command_paramcount, ms_command_sizes, and
	   cs_paramcount globals from ectool.c to a dummy .c file and
	   compile with 'gcc -S' to generate assembly.  Do the same
	   after applying this patch.

	   Confirm the arrays have the same contents.

Change-Id: Iad76f10315b97205b42118ce070463071fe97128
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/820649
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2017-12-13 12:33:37 -08:00
..
2017-02-17 04:09:37 -08:00
2017-01-07 13:29:52 -08:00
2016-05-26 16:17:26 -07:00
2013-12-17 21:27:53 +00:00
2017-11-17 20:18:38 -08:00
2017-08-29 19:37:04 -07:00
2015-06-18 19:07:00 +00:00
2015-06-18 19:07:00 +00:00
2015-07-27 22:19:16 +00:00
2014-02-08 00:14:48 +00:00
2013-10-25 20:12:49 +00:00
2017-11-14 21:52:39 -08:00
2015-06-10 18:24:05 +00:00
2015-05-27 03:58:16 +00:00
2015-05-27 03:58:16 +00:00
2013-06-26 09:08:23 -07:00
2017-12-07 05:09:28 -08:00
2011-12-07 19:10:02 +00:00
2016-11-08 17:11:28 -08:00
2017-06-02 10:38:57 -07:00
2012-10-25 14:12:11 -07:00
2017-07-28 17:45:13 -07:00
2016-07-29 10:51:22 -07:00
2015-06-18 19:07:00 +00:00
2017-10-02 23:28:24 -07:00
2017-10-10 22:13:43 -07:00
2015-06-18 19:07:00 +00:00
2016-11-15 17:41:53 -08:00
2017-03-13 17:53:58 -07:00
2016-11-08 17:11:28 -08:00
2015-09-16 14:49:46 -07:00
2017-02-23 11:36:21 -08:00
2017-06-29 10:37:40 -07:00
2017-06-29 10:37:40 -07:00
2015-06-18 19:07:00 +00:00
2017-09-22 10:18:50 -07:00
2017-10-31 21:49:24 -07:00
2017-07-14 04:01:45 -07:00
2015-01-20 20:56:43 +00:00