Implement rbd_open, rbd_close, rbd_stat, rbd_get_size; cluster, image header
read (cls/rbd); nameāid via rbd_id.<name>. Cluster/ioctx C API stubbed for Phase 6.
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
crimson/rbd: implement cluster C API
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
crimson/rbd: add rbd_metadata_get, rbd_metadata_set, rbd_resize
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
crimson/rbd: add C API integration test, unit tests, and coverage matrix
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
crimson/rbd: add external-thread API for SPDK Phase A1 integration
Add C API for running Seastar reactors inside SPDK reactor threads:
- rbd_crimson_configure_external_threads(): configure before spdk_reactors_start()
- rbd_crimson_register_reactor(): register reactor on each SPDK reactor thread
- rbd_crimson_run_one_tick(): advance reactor once per loop iteration
- rbd_crimson_reactor_cleanup(): per-thread cleanup
- rbd_crimson_cleanup_all(): global cleanup after spdk_reactors_fini
Implement in api/external_thread.cc by wrapping Seastar app_template
and reactor APIs. Lets SPDK link librbd_crimson for Phase A1 without
depending on Seastar directly.
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>