Refactoring to enable generic backend interface
WARNING: this PR introduced A LOT of changes. Proceed with care.
This PR decouples PMEM from the Bake server by adding an abstract backend layer. The
bake_backend_t type from
bake-backend.h is a structure containing function pointers for each Bake operation. The PMEM-based backend is implemented in
Note that because the backend is selected on a per-target basis, a single provider may be in charge of targets that require different backends. Hence most of the client-side functions have been modified to be passed a
bake_target_id_t indicating the target (this was unnecessary before because PMEM is able to figure out the pool based on the region id).
This PR therefore modifies a lot of client-side functions; merging it will require updating all the Mochi services that use Bake, including (to my knowledge):
That being said, I do think that this change in client API is worth doing right now when Bake isn't used by too many people outside of our group.