Put A/B/R logic in a separate libabr
Adds a libabr library to host Fuchsia A/B/R logic without the gbl
dependencies. This will be the first candidate for code share with
Fuchsia and will be replacing the Fuchsia libabr C library. libgbl may
also use the library to ensure backward compatibility for existing
devices that use the original libabr.
The library is mostly a line to line translation, including code
comments, from the Fuchsia C libabr. This makes sure that we are keeping
all subtle considerations and bug fixes that we have accumulated over
the past.
The library provides a C static library build target that exports the
same C interfaces as C libabr. It currently passes all upstream tests
in "src/firmware/lib/abr/test/libabr_test.cc". The only exceptions are
the `read/write_abr_metadata_custom` usage which we'll deprecate since
atlas is no longer relevant.
Bug: 336318818
Change-Id: Ifa179ef6cd50a887dacefd8b92ac790918d34fe0
6 files changed