Commit 90b7caaf55acbe521d690453a02282e665ad3399

Authored by Stephen Warren
Committed by Tom Rini
1 parent e736570cc3

config_distro_bootcmd.h: add note on error handling

This should make it more clear why there appear to be C pre-processor
symbols in the file that contain mixed case. They're really error
messages.

Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

Showing 1 changed file with 16 additions and 0 deletions Side-by-side Diff

include/config_distro_bootcmd.h
... ... @@ -10,6 +10,22 @@
10 10 #ifndef _CONFIG_CMD_DISTRO_BOOTCMD_H
11 11 #define _CONFIG_CMD_DISTRO_BOOTCMD_H
12 12  
  13 +/*
  14 + * A note on error handling: It is possible for BOOT_TARGET_DEVICES to
  15 + * reference a device that is not enabled in the U-Boot configuration, e.g.
  16 + * it may include MMC in the list without CONFIG_CMD_MMC being enabled. Given
  17 + * that BOOT_TARGET_DEVICES is a macro that's expanded by the C pre-processor
  18 + * at compile time, it's not possible to detect and report such problems via
  19 + * a simple #ifdef/#error combination. Still, the code needs to report errors.
  20 + * The best way I've found to do this is to make BOOT_TARGET_DEVICES expand to
  21 + * reference a non-existent symbol, and have the name of that symbol encode
  22 + * the error message. Consequently, this file contains references to e.g.
  23 + * BOOT_TARGET_DEVICES_references_MMC_without_CONFIG_CMD_MMC. Given the
  24 + * prevalence of capitals here, this looks like a pre-processor macro and
  25 + * hence seems like it should be all capitals, but it's really an error
  26 + * message that includes some other pre-processor symbols in the text.
  27 + */
  28 +
13 29 /* We need the part command */
14 30 #define CONFIG_PARTITION_UUIDS
15 31 #define CONFIG_CMD_PART