• Julius Werner's avatar
    Factor out cross-BL API into export headers suitable for 3rd party code · 57bf6057
    Julius Werner authored
    
    
    This patch adds a new include/export/ directory meant for inclusion in
    third-party code. This is useful for cases where third-party code needs
    to interact with TF-A interfaces and data structures (such as a custom
    BL2-implementation like coreboot handing off to BL31). Directly
    including headers from the TF-A repository avoids having to duplicate
    all these definitions (and risk them going stale), but with the current
    header structure this is not possible because handoff API definitions
    are too deeply intertwined with other TF code/headers and chain-include
    other headers that will not be available in the other environment.
    
    The new approach aims to solve this by separating only the parts that
    are really needed into these special headers that are self-contained and
    will not chain-include other (non-export) headers. TF-A code should
    never include them directly but should instead always include the
    respective wrapper header, which will include the required prerequisites
    (like <stdint.h>) before including the export header. Third-party code
    can include the export headers via its own wrappers that make sure the
    necessary definitions are available in whatever way that environment can
    provide them.
    
    Change-Id: Ifd769320ba51371439a8e5dd5b79c2516c3b43ab
    Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
    57bf6057
utils_def.h 4.05 KB