coreboot/src/include
Julius Werner b8534f767c assert: Add new dead_code() macro to assert dead code paths
This patch adds a new kind of compile-time assertion based on Linux'
compiletime_assert(). The difference to the existing use of
_Static_assert() in coreboot (which should continue to be used where
appropriate) is that this new assertion only hits if the call to it is
not optimized out at compile time. It is therefore ideal to assert that
certain code paths are not included in the image if a certain Kconfig
option is (not) set. For example,

 assert(!IS_ENABLED(CONFIG_THAT_MAKES_THIS_INAPPROPRIATE));

can be rewritten as

 if (!IS_ENABLED(CONFIG_THAT_MAKES_THIS_INAPPROPRIATE))
   dead_code("This code shouldn't be built for config X");

to turn it into a compile-time check.

Change-Id: Ida2911e2e4b3191a00d09231b493bf755e6f0fcb
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/20585
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2017-07-16 23:56:34 +00:00
..
boot coreboot_tables: specify clear interface for lb_framebuffer() 2017-05-18 15:42:23 +02:00
console Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
cpu geode_lx: Move declaration to another header 2017-07-14 07:23:00 +00:00
device src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
pc80 src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
smp src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
superio tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
sys commonlib: Prepare code to be included in cbfstool builds. 2016-01-06 01:11:32 +01:00
tpm_lite cr50: add unmarshaling of vendor commands and process 'enable_update' 2017-03-23 23:49:58 +01:00
adainit.h Add option to use Ada code in ramstage 2016-11-06 17:28:13 +01:00
antirollback.h src/vboot: mark factory_initialze_tpm() as static 2016-11-11 18:53:33 +01:00
assert.h assert: Add new dead_code() macro to assert dead code paths 2017-07-16 23:56:34 +00:00
b64_decode.h lib: add base64 decoder 2015-04-22 08:50:54 +02:00
base3.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
bcd.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
boardid.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
boot_device.h lib/boot_device: add RW boot device construct 2016-08-19 03:07:05 +02:00
bootblock_common.h src/include: Move storage class to beginning of declaration 2017-03-13 17:19:45 +01:00
bootmem.h lib/bootmem: allow architecture specific bootmem ranges 2016-04-21 20:46:45 +02:00
bootmode.h vboot: Add new function for logging recovery mode switches 2016-11-14 20:13:26 +01:00
bootstate.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
cbfs.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
cbmem.h CBMEM: Clarify CBMEM_TOP_BACKUP function usage 2017-05-27 13:54:47 +02:00
compiler.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
delay.h src/include: Fix unsigned warnings 2017-03-09 17:16:09 +01:00
edid.h lib/edid: Split out fill_lb_framebuffer() 2017-05-30 18:32:44 +02:00
elog.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
endian.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
fallback.h pc80: Move set_boot_successful() 2016-12-13 19:15:22 +01:00
fmap.h lib/fmap: provide RW region device support 2016-08-19 18:17:04 +02:00
gic.h src/include: Capitalize CPU, RAM and ROM 2016-07-31 18:30:16 +02:00
gpio.h lib/gpio: add pullup & pulldown gpio_base2_value() variants 2016-07-07 20:44:36 +02:00
halt.h lib: add poweroff() declaration 2016-07-15 08:35:15 +02:00
imd.h cbmem: add coreboot table records for each cbmem entry 2015-11-03 00:19:46 +01:00
inttypes.h x86: provide more C standard environment 2013-03-20 04:20:25 +01:00
ip_checksum.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
kconfig.h Add config_enabled() from Linux 2012-05-08 00:36:09 +02:00
lib.h lib: remove ulzma() 2016-07-01 23:55:16 +02:00
main_decl.h arches: lib: add main_decl.h for main() declaration 2016-02-11 23:29:08 +01:00
memlayout.h vboot: Move remaining features out of vendorcode/google/chromeos 2017-03-28 22:18:13 +02:00
memory_info.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
memrange.h src: change coreboot to lowercase 2017-06-07 12:09:15 +02:00
nhlt.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
option.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
program_loading.h ACPI S3: Remove HIGH_MEMORY_SAVE where possible 2016-11-09 20:52:07 +01:00
random.h arch/x86: add functions to generate random numbers 2017-02-20 04:46:10 +01:00
reg_script.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
region_file.h lib: add region file support 2016-12-08 16:10:28 +01:00
reset.h Consolidate reset API, add generic reset_prepare mechanism 2017-06-13 20:53:09 +02:00
rmodule.h src/include: Remove space after function name 2017-03-13 17:19:16 +01:00
romstage_handoff.h lib: put romstage_handoff implementation in own compilation unit 2016-12-01 08:16:47 +01:00
rtc.h src/include: Open brace on same line as enum or struct 2017-03-12 15:46:23 +01:00
rules.h Stage rules.h: Add ENV_LIBAGESA 2017-03-07 00:43:20 +01:00
sar.h chromeos: Implement locating and decoding wifi sar data from VPD 2017-01-09 18:16:10 +01:00
sdram_mode.h src/include: Remove spaces before tabs 2017-03-12 15:45:37 +01:00
smbios.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
spd.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
spd_bin.h lib/spd_bin: Use proper I2C addresses 2017-06-29 15:41:02 +00:00
spd_ddr2.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
spi-generic.h drivers/spi/spi_flash: Clean up SPI flash probe 2017-05-19 21:23:11 +02:00
spi_flash.h drivers/spi/spi_flash: Move flash ops to spi_flash_ops structure 2017-05-19 21:23:39 +02:00
stage_cache.h arch/x86: cache postcar in stage cache 2016-12-01 08:17:19 +01:00
stddef.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
stdlib.h src/include: Add space after comma 2017-03-09 17:19:16 +01:00
string.h src/include: Move assignment out of if condition 2017-03-13 17:20:43 +01:00
swab.h src/include: Remove unnecessary typecast 2017-03-13 17:20:15 +01:00
symbols.h src/include: Remove spaces before ( and after ) 2017-03-12 15:45:26 +01:00
thread.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
timer.h src/include: Indent code using tabs 2017-03-09 17:18:42 +01:00
timestamp.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
tpm.h drivers/spi/tpm: Clean up SPI TPM driver 2017-04-13 05:04:13 +02:00
trace.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
types.h src: change coreboot to lowercase 2017-06-07 12:09:15 +02:00
vbe.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
version.h build.h: remove variable for the builduser, -hostname and -domain 2015-03-09 17:53:16 +01:00
watchdog.h src/include: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:55:05 +00:00
wrdd.h Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00