Commit 90b7caaf55acbe521d690453a02282e665ad3399
Committed by
Tom Rini
1 parent
e736570cc3
Exists in
v2017.01-smarct4x
and in
37 other branches
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 |