From: Jason Dillaman Date: Thu, 31 Jan 2019 21:06:40 +0000 (-0500) Subject: librados: add symbol versioning to the C API X-Git-Tag: v14.1.0~20^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7bf6b5ee1208a359826c74ab033e6bbbfc65969f;p=ceph.git librados: add symbol versioning to the C API Signed-off-by: Jason Dillaman --- diff --git a/src/include/buffer.h b/src/include/buffer.h index b9967cce6a9..ce355e1e614 100644 --- a/src/include/buffer.h +++ b/src/include/buffer.h @@ -62,11 +62,7 @@ #include "inline_memory.h" -#if __GNUC__ >= 4 - #define CEPH_BUFFER_API __attribute__ ((visibility ("default"))) -#else - #define CEPH_BUFFER_API -#endif +#define CEPH_BUFFER_API #if defined(HAVE_XIO) struct xio_reg_mem; diff --git a/src/include/rados/librados.h b/src/include/rados/librados.h index a40c7b3e2d5..d40666e45b5 100644 --- a/src/include/rados/librados.h +++ b/src/include/rados/librados.h @@ -85,11 +85,7 @@ enum { LIBRADOS_OP_FLAG_FADVISE_FUA = 0x80, }; -#if __GNUC__ >= 4 - #define CEPH_RADOS_API __attribute__ ((visibility ("default"))) -#else - #define CEPH_RADOS_API -#endif +#define CEPH_RADOS_API /** * @name xattr comparison operations diff --git a/src/include/rados/memory.h b/src/include/rados/memory.h deleted file mode 120000 index 6bdcc98776d..00000000000 --- a/src/include/rados/memory.h +++ /dev/null @@ -1 +0,0 @@ -../memory.h \ No newline at end of file diff --git a/src/librados/CMakeLists.txt b/src/librados/CMakeLists.txt index c4df7531094..709184bd36e 100644 --- a/src/librados/CMakeLists.txt +++ b/src/librados/CMakeLists.txt @@ -3,46 +3,38 @@ add_library(librados_impl STATIC RadosXattrIter.cc RadosClient.cc librados_util.cc - librados_tp.cc - $) - -add_library(rados_c_api OBJECT - librados_c.cc) -add_library(rados_cxx_api OBJECT - librados_cxx.cc) -if(WITH_LTTNG) - add_dependencies(librados_impl librados-tp) - add_dependencies(rados_c_api librados-tp) - add_dependencies(rados_cxx_api librados-tp) -endif() + librados_tp.cc) # C/C++ API add_library(librados ${CEPH_SHARED} - $ - $) + librados_c.cc + librados_cxx.cc + ../common/buffer.cc) if(ENABLE_SHARED) set_target_properties(librados PROPERTIES OUTPUT_NAME rados - VERSION 3.0.0 - SOVERSION 3 - CXX_VISIBILITY_PRESET hidden + VERSION 2.0.0 + SOVERSION 2 VISIBILITY_INLINES_HIDDEN ON) if(NOT APPLE) set_property(TARGET librados APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--exclude-libs,ALL") + set_property(TARGET librados APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/librados.map") endif() if(WITH_STATIC_LIBSTDCXX) set_property(TARGET librados APPEND_STRING PROPERTY LINK_FLAGS " -static-libstdc++ -static-libgcc") endif() endif() - target_link_libraries(librados PRIVATE librados_impl osdc ceph-common cls_lock_client ${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS} ${GSSAPI_LIBRARIES}) -target_link_libraries(librados ${rados_libs}) install(TARGETS librados DESTINATION ${CMAKE_INSTALL_LIBDIR}) -if(WITH_LTTNG AND WITH_EVENTTRACE) - add_dependencies(librados_api_obj eventtrace_tp) +if(WITH_LTTNG) + add_dependencies(librados_impl librados-tp) + if(WITH_EVENTTRACE) + add_dependencies(librados_impl eventtrace_tp) + endif() endif() diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index 8df68377c18..472d16fdea1 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -16,6 +16,7 @@ #include "IoCtxImpl.h" +#include "librados/librados_c.h" #include "librados/AioCompletionImpl.h" #include "librados/PoolAsyncCompletionImpl.h" #include "librados/RadosClient.h" diff --git a/src/librados/librados.map b/src/librados/librados.map new file mode 100644 index 00000000000..a5fccce8993 --- /dev/null +++ b/src/librados/librados.map @@ -0,0 +1,31 @@ +LIBRADOS_PRIVATE { + local: *; +}; + +LIBRADOS_14.2.0 { + global: + extern "C++" { + ceph::buffer::*; + librados::AioCompletion::*; + librados::IoCtx::*; + librados::ListObject::*; + librados::NObjectIterator::*; + librados::ObjectCursor::*; + librados::ObjectOperation::*; + librados::ObjectReadOperation::*; + librados::ObjectWriteOperation::*; + librados::PlacementGroup::*; + librados::PoolAsyncCompletion::*; + librados::Rados::*; + librados::WatchCtx::*; + librados::WatchCtx2::*; + "librados::operator<<(std::ostream&, librados::ListObject const&)"; + "librados::operator<<(std::ostream&, librados::ObjectCursor const&)"; + "librados::operator<<(std::ostream&, librados::PlacementGroup const&)"; + "typeinfo for librados::ObjectOperation"; + "typeinfo for librados::ObjectReadOperation"; + "typeinfo for librados::ObjectWriteOperation"; + "typeinfo for librados::WatchCtx"; + "typeinfo for librados::WatchCtx2"; + }; +} LIBRADOS_PRIVATE; diff --git a/src/librados/librados_c.cc b/src/librados/librados_c.cc index 963dc443602..b8883a82e36 100644 --- a/src/librados/librados_c.cc +++ b/src/librados/librados_c.cc @@ -14,6 +14,7 @@ #include "include/types.h" #include +#include "librados/librados_c.h" #include "librados/AioCompletionImpl.h" #include "librados/IoCtxImpl.h" #include "librados/PoolAsyncCompletionImpl.h" @@ -40,6 +41,13 @@ #define tracepoint(...) #endif +#define LIBRADOS_C_API_BASE(fn) \ + asm(".symver _" #fn "_base, " #fn "@") +#define LIBRADOS_C_API_BASE_DEFAULT(fn) \ + asm(".symver _" #fn ", " #fn "@@") +#define LIBRADOS_C_API_DEFAULT(fn, ver) \ + asm(".symver _" #fn ", " #fn "@@LIBRADOS_" #ver) + using std::string; using std::map; using std::set; @@ -91,7 +99,7 @@ static CephContext *rados_create_cct(const char * const clustername, return cct; } -extern "C" int rados_create(rados_t *pcluster, const char * const id) +extern "C" int _rados_create(rados_t *pcluster, const char * const id) { CephInitParameters iparams(CEPH_ENTITY_TYPE_CLIENT); if (id) { @@ -106,6 +114,7 @@ extern "C" int rados_create(rados_t *pcluster, const char * const id) cct->put(); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_create); // as above, but // 1) don't assume 'client.'; name is a full type.id namestr @@ -113,8 +122,8 @@ extern "C" int rados_create(rados_t *pcluster, const char * const id) // 3) flags is for future expansion (maybe some of the global_init() // behavior is appropriate for some consumers of librados, for instance) -extern "C" int rados_create2(rados_t *pcluster, const char *const clustername, - const char * const name, uint64_t flags) +extern "C" int _rados_create2(rados_t *pcluster, const char *const clustername, + const char * const name, uint64_t flags) { // client is assumed, but from_str will override int retval = 0; @@ -133,12 +142,13 @@ extern "C" int rados_create2(rados_t *pcluster, const char *const clustername, cct->put(); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_create2); /* This function is intended for use by Ceph daemons. These daemons have * already called global_init and want to use that particular configuration for * their cluster. */ -extern "C" int rados_create_with_context(rados_t *pcluster, rados_config_t cct_) +extern "C" int _rados_create_with_context(rados_t *pcluster, rados_config_t cct_) { CephContext *cct = (CephContext *)cct_; TracepointProvider::initialize(cct); @@ -149,8 +159,9 @@ extern "C" int rados_create_with_context(rados_t *pcluster, rados_config_t cct_) tracepoint(librados, rados_create_with_context_exit, 0, *pcluster); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_create_with_context); -extern "C" rados_config_t rados_cct(rados_t cluster) +extern "C" rados_config_t _rados_cct(rados_t cluster) { tracepoint(librados, rados_cct_enter, cluster); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -158,8 +169,9 @@ extern "C" rados_config_t rados_cct(rados_t cluster) tracepoint(librados, rados_cct_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cct); -extern "C" int rados_connect(rados_t cluster) +extern "C" int _rados_connect(rados_t cluster) { tracepoint(librados, rados_connect_enter, cluster); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -167,8 +179,9 @@ extern "C" int rados_connect(rados_t cluster) tracepoint(librados, rados_connect_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_connect); -extern "C" void rados_shutdown(rados_t cluster) +extern "C" void _rados_shutdown(rados_t cluster) { tracepoint(librados, rados_shutdown_enter, cluster); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -176,8 +189,9 @@ extern "C" void rados_shutdown(rados_t cluster) delete radosp; tracepoint(librados, rados_shutdown_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_shutdown); -extern "C" uint64_t rados_get_instance_id(rados_t cluster) +extern "C" uint64_t _rados_get_instance_id(rados_t cluster) { tracepoint(librados, rados_get_instance_id_enter, cluster); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -185,24 +199,27 @@ extern "C" uint64_t rados_get_instance_id(rados_t cluster) tracepoint(librados, rados_get_instance_id_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_get_instance_id); -extern "C" int rados_get_min_compatible_osd(rados_t cluster, - int8_t* require_osd_release) +extern "C" int _rados_get_min_compatible_osd(rados_t cluster, + int8_t* require_osd_release) { librados::RadosClient *client = (librados::RadosClient *)cluster; return client->get_min_compatible_osd(require_osd_release); } +LIBRADOS_C_API_BASE_DEFAULT(rados_get_min_compatible_osd); -extern "C" int rados_get_min_compatible_client(rados_t cluster, - int8_t* min_compat_client, - int8_t* require_min_compat_client) +extern "C" int _rados_get_min_compatible_client(rados_t cluster, + int8_t* min_compat_client, + int8_t* require_min_compat_client) { librados::RadosClient *client = (librados::RadosClient *)cluster; return client->get_min_compatible_client(min_compat_client, require_min_compat_client); } +LIBRADOS_C_API_BASE_DEFAULT(rados_get_min_compatible_client); -extern "C" void rados_version(int *major, int *minor, int *extra) +extern "C" void _rados_version(int *major, int *minor, int *extra) { tracepoint(librados, rados_version_enter, major, minor, extra); if (major) @@ -213,10 +230,11 @@ extern "C" void rados_version(int *major, int *minor, int *extra) *extra = LIBRADOS_VER_EXTRA; tracepoint(librados, rados_version_exit, LIBRADOS_VER_MAJOR, LIBRADOS_VER_MINOR, LIBRADOS_VER_EXTRA); } +LIBRADOS_C_API_BASE_DEFAULT(rados_version); // -- config -- -extern "C" int rados_conf_read_file(rados_t cluster, const char *path_list) +extern "C" int _rados_conf_read_file(rados_t cluster, const char *path_list) { tracepoint(librados, rados_conf_read_file_enter, cluster, path_list); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -237,8 +255,9 @@ extern "C" int rados_conf_read_file(rados_t cluster, const char *path_list) tracepoint(librados, rados_conf_read_file_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_read_file); -extern "C" int rados_conf_parse_argv(rados_t cluster, int argc, const char **argv) +extern "C" int _rados_conf_parse_argv(rados_t cluster, int argc, const char **argv) { tracepoint(librados, rados_conf_parse_argv_enter, cluster, argc); int i; @@ -258,15 +277,16 @@ extern "C" int rados_conf_parse_argv(rados_t cluster, int argc, const char **arg tracepoint(librados, rados_conf_parse_argv_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_parse_argv); // like above, but return the remainder of argv to contain remaining // unparsed args. Must be allocated to at least argc by caller. // remargv will contain n <= argc pointers to original argv[], the end // of which may be NULL -extern "C" int rados_conf_parse_argv_remainder(rados_t cluster, int argc, - const char **argv, - const char **remargv) +extern "C" int _rados_conf_parse_argv_remainder(rados_t cluster, int argc, + const char **argv, + const char **remargv) { tracepoint(librados, rados_conf_parse_argv_remainder_enter, cluster, argc); unsigned int i; @@ -295,8 +315,9 @@ extern "C" int rados_conf_parse_argv_remainder(rados_t cluster, int argc, tracepoint(librados, rados_conf_parse_argv_remainder_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_parse_argv_remainder); -extern "C" int rados_conf_parse_env(rados_t cluster, const char *env) +extern "C" int _rados_conf_parse_env(rados_t cluster, const char *env) { tracepoint(librados, rados_conf_parse_env_enter, cluster, env); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -306,8 +327,9 @@ extern "C" int rados_conf_parse_env(rados_t cluster, const char *env) tracepoint(librados, rados_conf_parse_env_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_parse_env); -extern "C" int rados_conf_set(rados_t cluster, const char *option, const char *value) +extern "C" int _rados_conf_set(rados_t cluster, const char *option, const char *value) { tracepoint(librados, rados_conf_set_enter, cluster, option, value); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -321,9 +343,10 @@ extern "C" int rados_conf_set(rados_t cluster, const char *option, const char *v tracepoint(librados, rados_conf_set_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_set); /* cluster info */ -extern "C" int rados_cluster_stat(rados_t cluster, rados_cluster_stat_t *result) +extern "C" int _rados_cluster_stat(rados_t cluster, rados_cluster_stat_t *result) { tracepoint(librados, rados_cluster_stat_enter, cluster); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -337,8 +360,9 @@ extern "C" int rados_cluster_stat(rados_t cluster, rados_cluster_stat_t *result) tracepoint(librados, rados_cluster_stat_exit, r, result->kb, result->kb_used, result->kb_avail, result->num_objects); return r; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cluster_stat); -extern "C" int rados_conf_get(rados_t cluster, const char *option, char *buf, size_t len) +extern "C" int _rados_conf_get(rados_t cluster, const char *option, char *buf, size_t len) { tracepoint(librados, rados_conf_get_enter, cluster, option, len); char *tmp = buf; @@ -348,8 +372,9 @@ extern "C" int rados_conf_get(rados_t cluster, const char *option, char *buf, si tracepoint(librados, rados_conf_get_exit, retval, retval ? "" : option); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_conf_get); -extern "C" int64_t rados_pool_lookup(rados_t cluster, const char *name) +extern "C" int64_t _rados_pool_lookup(rados_t cluster, const char *name) { tracepoint(librados, rados_pool_lookup_enter, cluster, name); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -357,9 +382,10 @@ extern "C" int64_t rados_pool_lookup(rados_t cluster, const char *name) tracepoint(librados, rados_pool_lookup_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_lookup); -extern "C" int rados_pool_reverse_lookup(rados_t cluster, int64_t id, - char *buf, size_t maxlen) +extern "C" int _rados_pool_reverse_lookup(rados_t cluster, int64_t id, + char *buf, size_t maxlen) { tracepoint(librados, rados_pool_reverse_lookup_enter, cluster, id, maxlen); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -378,9 +404,10 @@ extern "C" int rados_pool_reverse_lookup(rados_t cluster, int64_t id, tracepoint(librados, rados_pool_reverse_lookup_exit, retval, buf); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_reverse_lookup); -extern "C" int rados_cluster_fsid(rados_t cluster, char *buf, - size_t maxlen) +extern "C" int _rados_cluster_fsid(rados_t cluster, char *buf, + size_t maxlen) { tracepoint(librados, rados_cluster_fsid_enter, cluster, maxlen); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -395,8 +422,9 @@ extern "C" int rados_cluster_fsid(rados_t cluster, char *buf, tracepoint(librados, rados_cluster_fsid_exit, retval, buf); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cluster_fsid); -extern "C" int rados_wait_for_latest_osdmap(rados_t cluster) +extern "C" int _rados_wait_for_latest_osdmap(rados_t cluster) { tracepoint(librados, rados_wait_for_latest_osdmap_enter, cluster); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -404,35 +432,40 @@ extern "C" int rados_wait_for_latest_osdmap(rados_t cluster) tracepoint(librados, rados_wait_for_latest_osdmap_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_wait_for_latest_osdmap); -extern "C" int rados_blacklist_add(rados_t cluster, char *client_address, - uint32_t expire_seconds) +extern "C" int _rados_blacklist_add(rados_t cluster, char *client_address, + uint32_t expire_seconds) { librados::RadosClient *radosp = (librados::RadosClient *)cluster; return radosp->blacklist_add(client_address, expire_seconds); } +LIBRADOS_C_API_BASE_DEFAULT(rados_blacklist_add); -extern "C" void rados_set_osdmap_full_try(rados_ioctx_t io) +extern "C" void _rados_set_osdmap_full_try(rados_ioctx_t io) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; ctx->objecter->set_osdmap_full_try(); } +LIBRADOS_C_API_BASE_DEFAULT(rados_set_osdmap_full_try); -extern "C" void rados_unset_osdmap_full_try(rados_ioctx_t io) +extern "C" void _rados_unset_osdmap_full_try(rados_ioctx_t io) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; ctx->objecter->unset_osdmap_full_try(); } +LIBRADOS_C_API_BASE_DEFAULT(rados_unset_osdmap_full_try); -extern "C" int rados_application_enable(rados_ioctx_t io, const char *app_name, - int force) +extern "C" int _rados_application_enable(rados_ioctx_t io, const char *app_name, + int force) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; return ctx->application_enable(app_name, force != 0); } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_enable); -extern "C" int rados_application_list(rados_ioctx_t io, char *values, - size_t *values_len) +extern "C" int _rados_application_list(rados_ioctx_t io, char *values, + size_t *values_len) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; std::set app_names; @@ -461,11 +494,12 @@ extern "C" int rados_application_list(rados_ioctx_t io, char *values, *values_len = total_len; return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_list); -extern "C" int rados_application_metadata_get(rados_ioctx_t io, - const char *app_name, - const char *key, char *value, - size_t *value_len) +extern "C" int _rados_application_metadata_get(rados_ioctx_t io, + const char *app_name, + const char *key, char *value, + size_t *value_len) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; std::string value_str; @@ -484,28 +518,31 @@ extern "C" int rados_application_metadata_get(rados_ioctx_t io, *value_len = len; return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_metadata_get); -extern "C" int rados_application_metadata_set(rados_ioctx_t io, - const char *app_name, - const char *key, - const char *value) +extern "C" int _rados_application_metadata_set(rados_ioctx_t io, + const char *app_name, + const char *key, + const char *value) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; return ctx->application_metadata_set(app_name, key, value); } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_metadata_set); -extern "C" int rados_application_metadata_remove(rados_ioctx_t io, - const char *app_name, - const char *key) +extern "C" int _rados_application_metadata_remove(rados_ioctx_t io, + const char *app_name, + const char *key) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; return ctx->application_metadata_remove(app_name, key); } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_metadata_remove); -extern "C" int rados_application_metadata_list(rados_ioctx_t io, - const char *app_name, - char *keys, size_t *keys_len, - char *values, size_t *vals_len) +extern "C" int _rados_application_metadata_list(rados_ioctx_t io, + const char *app_name, + char *keys, size_t *keys_len, + char *values, size_t *vals_len) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; std::map metadata; @@ -545,8 +582,9 @@ extern "C" int rados_application_metadata_list(rados_ioctx_t io, *vals_len = total_val_len; return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_application_metadata_list); -extern "C" int rados_pool_list(rados_t cluster, char *buf, size_t len) +extern "C" int _rados_pool_list(rados_t cluster, char *buf, size_t len) { tracepoint(librados, rados_pool_list_enter, cluster, len); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -590,9 +628,10 @@ extern "C" int rados_pool_list(rados_t cluster, char *buf, size_t len) tracepoint(librados, rados_pool_list_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_list); -CEPH_RADOS_API int rados_inconsistent_pg_list(rados_t cluster, int64_t pool_id, - char *buf, size_t len) +extern "C" int _rados_inconsistent_pg_list(rados_t cluster, int64_t pool_id, + char *buf, size_t len) { tracepoint(librados, rados_inconsistent_pg_list_enter, cluster, pool_id, len); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -625,6 +664,7 @@ CEPH_RADOS_API int rados_inconsistent_pg_list(rados_t cluster, int64_t pool_id, tracepoint(librados, rados_inconsistent_pg_list_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_inconsistent_pg_list); static void dict_to_map(const char *dict, @@ -639,9 +679,9 @@ static void dict_to_map(const char *dict, } } -CEPH_RADOS_API int rados_service_register(rados_t cluster, const char *service, - const char *daemon, - const char *metadata_dict) +extern "C" int _rados_service_register(rados_t cluster, const char *service, + const char *daemon, + const char *metadata_dict) { librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -650,9 +690,10 @@ CEPH_RADOS_API int rados_service_register(rados_t cluster, const char *service, return client->service_daemon_register(service, daemon, metadata); } +LIBRADOS_C_API_BASE_DEFAULT(rados_service_register); -CEPH_RADOS_API int rados_service_update_status(rados_t cluster, - const char *status_dict) +extern "C" int _rados_service_update_status(rados_t cluster, + const char *status_dict) { librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -661,6 +702,7 @@ CEPH_RADOS_API int rados_service_update_status(rados_t cluster, return client->service_daemon_update_status(std::move(status)); } +LIBRADOS_C_API_BASE_DEFAULT(rados_service_update_status); static void do_out_buffer(bufferlist& outbl, char **outbuf, size_t *outbuflen) { @@ -690,8 +732,8 @@ static void do_out_buffer(string& outbl, char **outbuf, size_t *outbuflen) *outbuflen = outbl.length(); } -extern "C" int rados_ping_monitor(rados_t cluster, const char *mon_id, - char **outstr, size_t *outstrlen) +extern "C" int _rados_ping_monitor(rados_t cluster, const char *mon_id, + char **outstr, size_t *outstrlen) { tracepoint(librados, rados_ping_monitor_enter, cluster, mon_id); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -709,12 +751,13 @@ extern "C" int rados_ping_monitor(rados_t cluster, const char *mon_id, tracepoint(librados, rados_ping_monitor_exit, ret, ret < 0 ? NULL : outstr, ret < 0 ? NULL : outstrlen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ping_monitor); -extern "C" int rados_mon_command(rados_t cluster, const char **cmd, - size_t cmdlen, - const char *inbuf, size_t inbuflen, - char **outbuf, size_t *outbuflen, - char **outs, size_t *outslen) +extern "C" int _rados_mon_command(rados_t cluster, const char **cmd, + size_t cmdlen, + const char *inbuf, size_t inbuflen, + char **outbuf, size_t *outbuflen, + char **outs, size_t *outslen) { tracepoint(librados, rados_mon_command_enter, cluster, cmdlen, inbuf, inbuflen); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -736,13 +779,14 @@ extern "C" int rados_mon_command(rados_t cluster, const char **cmd, tracepoint(librados, rados_mon_command_exit, ret, outbuf, outbuflen, outs, outslen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_mon_command); -extern "C" int rados_mon_command_target(rados_t cluster, const char *name, - const char **cmd, - size_t cmdlen, - const char *inbuf, size_t inbuflen, - char **outbuf, size_t *outbuflen, - char **outs, size_t *outslen) +extern "C" int _rados_mon_command_target(rados_t cluster, const char *name, + const char **cmd, + size_t cmdlen, + const char *inbuf, size_t inbuflen, + char **outbuf, size_t *outbuflen, + char **outs, size_t *outslen) { tracepoint(librados, rados_mon_command_target_enter, cluster, name, cmdlen, inbuf, inbuflen); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -779,12 +823,13 @@ extern "C" int rados_mon_command_target(rados_t cluster, const char *name, tracepoint(librados, rados_mon_command_target_exit, ret, outbuf, outbuflen, outs, outslen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_mon_command_target); -extern "C" int rados_osd_command(rados_t cluster, int osdid, const char **cmd, - size_t cmdlen, - const char *inbuf, size_t inbuflen, - char **outbuf, size_t *outbuflen, - char **outs, size_t *outslen) +extern "C" int _rados_osd_command(rados_t cluster, int osdid, const char **cmd, + size_t cmdlen, + const char *inbuf, size_t inbuflen, + char **outbuf, size_t *outbuflen, + char **outs, size_t *outslen) { tracepoint(librados, rados_osd_command_enter, cluster, osdid, cmdlen, inbuf, inbuflen); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -806,12 +851,13 @@ extern "C" int rados_osd_command(rados_t cluster, int osdid, const char **cmd, tracepoint(librados, rados_osd_command_exit, ret, outbuf, outbuflen, outs, outslen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_osd_command); -extern "C" int rados_mgr_command(rados_t cluster, const char **cmd, - size_t cmdlen, - const char *inbuf, size_t inbuflen, - char **outbuf, size_t *outbuflen, - char **outs, size_t *outslen) +extern "C" int _rados_mgr_command(rados_t cluster, const char **cmd, + size_t cmdlen, + const char *inbuf, size_t inbuflen, + char **outbuf, size_t *outbuflen, + char **outs, size_t *outslen) { tracepoint(librados, rados_mgr_command_enter, cluster, cmdlen, inbuf, inbuflen); @@ -836,12 +882,13 @@ extern "C" int rados_mgr_command(rados_t cluster, const char **cmd, outslen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_mgr_command); -extern "C" int rados_pg_command(rados_t cluster, const char *pgstr, - const char **cmd, size_t cmdlen, - const char *inbuf, size_t inbuflen, - char **outbuf, size_t *outbuflen, - char **outs, size_t *outslen) +extern "C" int _rados_pg_command(rados_t cluster, const char *pgstr, + const char **cmd, size_t cmdlen, + const char *inbuf, size_t inbuflen, + char **outbuf, size_t *outbuflen, + char **outs, size_t *outslen) { tracepoint(librados, rados_pg_command_enter, cluster, pgstr, cmdlen, inbuf, inbuflen); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -867,16 +914,18 @@ extern "C" int rados_pg_command(rados_t cluster, const char *pgstr, tracepoint(librados, rados_pg_command_exit, ret, outbuf, outbuflen, outs, outslen); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pg_command); -extern "C" void rados_buffer_free(char *buf) +extern "C" void _rados_buffer_free(char *buf) { tracepoint(librados, rados_buffer_free_enter, buf); if (buf) free(buf); tracepoint(librados, rados_buffer_free_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_buffer_free); -extern "C" int rados_monitor_log(rados_t cluster, const char *level, rados_log_callback_t cb, void *arg) +extern "C" int _rados_monitor_log(rados_t cluster, const char *level, rados_log_callback_t cb, void *arg) { tracepoint(librados, rados_monitor_log_enter, cluster, level, cb, arg); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -884,9 +933,10 @@ extern "C" int rados_monitor_log(rados_t cluster, const char *level, rados_log_c tracepoint(librados, rados_monitor_log_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_monitor_log); -extern "C" int rados_monitor_log2(rados_t cluster, const char *level, - rados_log_callback2_t cb, void *arg) +extern "C" int _rados_monitor_log2(rados_t cluster, const char *level, + rados_log_callback2_t cb, void *arg) { tracepoint(librados, rados_monitor_log2_enter, cluster, level, cb, arg); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -894,8 +944,9 @@ extern "C" int rados_monitor_log2(rados_t cluster, const char *level, tracepoint(librados, rados_monitor_log2_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_monitor_log2); -extern "C" int rados_ioctx_create(rados_t cluster, const char *name, rados_ioctx_t *io) +extern "C" int _rados_ioctx_create(rados_t cluster, const char *name, rados_ioctx_t *io) { tracepoint(librados, rados_ioctx_create_enter, cluster, name); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -912,9 +963,10 @@ extern "C" int rados_ioctx_create(rados_t cluster, const char *name, rados_ioctx tracepoint(librados, rados_ioctx_create_exit, 0, ctx); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_create); -extern "C" int rados_ioctx_create2(rados_t cluster, int64_t pool_id, - rados_ioctx_t *io) +extern "C" int _rados_ioctx_create2(rados_t cluster, int64_t pool_id, + rados_ioctx_t *io) { tracepoint(librados, rados_ioctx_create2_enter, cluster, pool_id); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -931,16 +983,19 @@ extern "C" int rados_ioctx_create2(rados_t cluster, int64_t pool_id, tracepoint(librados, rados_ioctx_create2_exit, 0, ctx); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_create2); -extern "C" void rados_ioctx_destroy(rados_ioctx_t io) +extern "C" void _rados_ioctx_destroy(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_destroy_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; ctx->put(); tracepoint(librados, rados_ioctx_destroy_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_destroy); -extern "C" int rados_ioctx_pool_stat(rados_ioctx_t io, struct rados_pool_stat_t *stats) +extern "C" int _rados_ioctx_pool_stat(rados_ioctx_t io, + struct rados_pool_stat_t *stats) { tracepoint(librados, rados_ioctx_pool_stat_enter, io); librados::IoCtxImpl *io_ctx_impl = (librados::IoCtxImpl *)io; @@ -990,8 +1045,34 @@ extern "C" int rados_ioctx_pool_stat(rados_ioctx_t io, struct rados_pool_stat_t tracepoint(librados, rados_ioctx_pool_stat_exit, 0, stats); return 0; } +LIBRADOS_C_API_DEFAULT(rados_ioctx_pool_stat, 14.2.0); + +extern "C" int _rados_ioctx_pool_stat_base( + rados_ioctx_t io, struct __librados_base::rados_pool_stat_t *stats) +{ + struct rados_pool_stat_t new_stats; + int r = _rados_ioctx_pool_stat(io, &new_stats); + if (r < 0) { + return r; + } + + stats->num_bytes = new_stats.num_bytes; + stats->num_kb = new_stats.num_kb; + stats->num_objects = new_stats.num_objects; + stats->num_object_clones = new_stats.num_object_clones; + stats->num_object_copies = new_stats.num_object_copies; + stats->num_objects_missing_on_primary = new_stats.num_objects_missing_on_primary; + stats->num_objects_unfound = new_stats.num_objects_unfound; + stats->num_objects_degraded = new_stats.num_objects_degraded; + stats->num_rd = new_stats.num_rd; + stats->num_rd_kb = new_stats.num_rd_kb; + stats->num_wr = new_stats.num_wr; + stats->num_wr_kb = new_stats.num_wr_kb; + return 0; +} +LIBRADOS_C_API_BASE(rados_ioctx_pool_stat); -extern "C" rados_config_t rados_ioctx_cct(rados_ioctx_t io) +extern "C" rados_config_t _rados_ioctx_cct(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_cct_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -999,17 +1080,19 @@ extern "C" rados_config_t rados_ioctx_cct(rados_ioctx_t io) tracepoint(librados, rados_ioctx_cct_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_cct); -extern "C" void rados_ioctx_snap_set_read(rados_ioctx_t io, rados_snap_t seq) +extern "C" void _rados_ioctx_snap_set_read(rados_ioctx_t io, rados_snap_t seq) { tracepoint(librados, rados_ioctx_snap_set_read_enter, io, seq); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; ctx->set_snap_read((snapid_t)seq); tracepoint(librados, rados_ioctx_snap_set_read_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_set_read); -extern "C" int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io, - rados_snap_t seq, rados_snap_t *snaps, int num_snaps) +extern "C" int _rados_ioctx_selfmanaged_snap_set_write_ctx( + rados_ioctx_t io, rados_snap_t seq, rados_snap_t *snaps, int num_snaps) { tracepoint(librados, rados_ioctx_selfmanaged_snap_set_write_ctx_enter, io, seq, snaps, num_snaps); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1022,8 +1105,9 @@ extern "C" int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io, tracepoint(librados, rados_ioctx_selfmanaged_snap_set_write_ctx_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_selfmanaged_snap_set_write_ctx); -extern "C" int rados_write(rados_ioctx_t io, const char *o, const char *buf, size_t len, uint64_t off) +extern "C" int _rados_write(rados_ioctx_t io, const char *o, const char *buf, size_t len, uint64_t off) { tracepoint(librados, rados_write_enter, io, o, buf, len, off); if (len > UINT_MAX/2) @@ -1036,8 +1120,9 @@ extern "C" int rados_write(rados_ioctx_t io, const char *o, const char *buf, siz tracepoint(librados, rados_write_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_write); -extern "C" int rados_append(rados_ioctx_t io, const char *o, const char *buf, size_t len) +extern "C" int _rados_append(rados_ioctx_t io, const char *o, const char *buf, size_t len) { tracepoint(librados, rados_append_enter, io, o, buf, len); if (len > UINT_MAX/2) @@ -1050,8 +1135,9 @@ extern "C" int rados_append(rados_ioctx_t io, const char *o, const char *buf, si tracepoint(librados, rados_append_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_append); -extern "C" int rados_write_full(rados_ioctx_t io, const char *o, const char *buf, size_t len) +extern "C" int _rados_write_full(rados_ioctx_t io, const char *o, const char *buf, size_t len) { tracepoint(librados, rados_write_full_enter, io, o, buf, len); if (len > UINT_MAX/2) @@ -1064,8 +1150,9 @@ extern "C" int rados_write_full(rados_ioctx_t io, const char *o, const char *buf tracepoint(librados, rados_write_full_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_full); -extern "C" int rados_writesame(rados_ioctx_t io, +extern "C" int _rados_writesame(rados_ioctx_t io, const char *o, const char *buf, size_t data_len, @@ -1081,8 +1168,9 @@ extern "C" int rados_writesame(rados_ioctx_t io, tracepoint(librados, rados_writesame_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_writesame); -extern "C" int rados_trunc(rados_ioctx_t io, const char *o, uint64_t size) +extern "C" int _rados_trunc(rados_ioctx_t io, const char *o, uint64_t size) { tracepoint(librados, rados_trunc_enter, io, o, size); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1091,8 +1179,9 @@ extern "C" int rados_trunc(rados_ioctx_t io, const char *o, uint64_t size) tracepoint(librados, rados_trunc_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_trunc); -extern "C" int rados_remove(rados_ioctx_t io, const char *o) +extern "C" int _rados_remove(rados_ioctx_t io, const char *o) { tracepoint(librados, rados_remove_enter, io, o); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1101,8 +1190,9 @@ extern "C" int rados_remove(rados_ioctx_t io, const char *o) tracepoint(librados, rados_remove_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_remove); -extern "C" int rados_read(rados_ioctx_t io, const char *o, char *buf, size_t len, uint64_t off) +extern "C" int _rados_read(rados_ioctx_t io, const char *o, char *buf, size_t len, uint64_t off) { tracepoint(librados, rados_read_enter, io, o, buf, len, off); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1127,12 +1217,13 @@ extern "C" int rados_read(rados_ioctx_t io, const char *o, char *buf, size_t len tracepoint(librados, rados_read_exit, ret, buf); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_read); -extern "C" int rados_checksum(rados_ioctx_t io, const char *o, - rados_checksum_type_t type, - const char *init_value, size_t init_value_len, - size_t len, uint64_t off, size_t chunk_size, - char *pchecksum, size_t checksum_len) +extern "C" int _rados_checksum(rados_ioctx_t io, const char *o, + rados_checksum_type_t type, + const char *init_value, size_t init_value_len, + size_t len, uint64_t off, size_t chunk_size, + char *pchecksum, size_t checksum_len) { tracepoint(librados, rados_checksum_enter, io, o, type, init_value, init_value_len, len, off, chunk_size); @@ -1157,8 +1248,9 @@ extern "C" int rados_checksum(rados_ioctx_t io, const char *o, tracepoint(librados, rados_checksum_exit, retval, pchecksum, checksum_len); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_checksum); -extern "C" uint64_t rados_get_last_version(rados_ioctx_t io) +extern "C" uint64_t _rados_get_last_version(rados_ioctx_t io) { tracepoint(librados, rados_get_last_version_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1166,8 +1258,9 @@ extern "C" uint64_t rados_get_last_version(rados_ioctx_t io) tracepoint(librados, rados_get_last_version_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_get_last_version); -extern "C" int rados_pool_create(rados_t cluster, const char *name) +extern "C" int _rados_pool_create(rados_t cluster, const char *name) { tracepoint(librados, rados_pool_create_enter, cluster, name); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -1176,9 +1269,10 @@ extern "C" int rados_pool_create(rados_t cluster, const char *name) tracepoint(librados, rados_pool_create_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_create); -extern "C" int rados_pool_create_with_auid(rados_t cluster, const char *name, - uint64_t auid) +extern "C" int _rados_pool_create_with_auid(rados_t cluster, const char *name, + uint64_t auid) { tracepoint(librados, rados_pool_create_with_auid_enter, cluster, name, auid); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -1192,9 +1286,10 @@ extern "C" int rados_pool_create_with_auid(rados_t cluster, const char *name, tracepoint(librados, rados_pool_create_with_auid_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_create_with_auid); -extern "C" int rados_pool_create_with_crush_rule(rados_t cluster, const char *name, - __u8 crush_rule_num) +extern "C" int _rados_pool_create_with_crush_rule(rados_t cluster, const char *name, + __u8 crush_rule_num) { tracepoint(librados, rados_pool_create_with_crush_rule_enter, cluster, name, crush_rule_num); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -1203,9 +1298,10 @@ extern "C" int rados_pool_create_with_crush_rule(rados_t cluster, const char *na tracepoint(librados, rados_pool_create_with_crush_rule_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_create_with_crush_rule); -extern "C" int rados_pool_create_with_all(rados_t cluster, const char *name, - uint64_t auid, __u8 crush_rule_num) +extern "C" int _rados_pool_create_with_all(rados_t cluster, const char *name, + uint64_t auid, __u8 crush_rule_num) { tracepoint(librados, rados_pool_create_with_all_enter, cluster, name, auid, crush_rule_num); librados::RadosClient *radosp = (librados::RadosClient *)cluster; @@ -1219,8 +1315,9 @@ extern "C" int rados_pool_create_with_all(rados_t cluster, const char *name, tracepoint(librados, rados_pool_create_with_all_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_create_with_all); -extern "C" int rados_pool_get_base_tier(rados_t cluster, int64_t pool_id, int64_t* base_tier) +extern "C" int _rados_pool_get_base_tier(rados_t cluster, int64_t pool_id, int64_t* base_tier) { tracepoint(librados, rados_pool_get_base_tier_enter, cluster, pool_id); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -1228,8 +1325,9 @@ extern "C" int rados_pool_get_base_tier(rados_t cluster, int64_t pool_id, int64_ tracepoint(librados, rados_pool_get_base_tier_exit, retval, *base_tier); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_get_base_tier); -extern "C" int rados_pool_delete(rados_t cluster, const char *pool_name) +extern "C" int _rados_pool_delete(rados_t cluster, const char *pool_name) { tracepoint(librados, rados_pool_delete_enter, cluster, pool_name); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -1237,24 +1335,27 @@ extern "C" int rados_pool_delete(rados_t cluster, const char *pool_name) tracepoint(librados, rados_pool_delete_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_pool_delete); -extern "C" int rados_ioctx_pool_set_auid(rados_ioctx_t io, uint64_t auid) +extern "C" int _rados_ioctx_pool_set_auid(rados_ioctx_t io, uint64_t auid) { tracepoint(librados, rados_ioctx_pool_set_auid_enter, io, auid); int retval = -EOPNOTSUPP; tracepoint(librados, rados_ioctx_pool_set_auid_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_set_auid); -extern "C" int rados_ioctx_pool_get_auid(rados_ioctx_t io, uint64_t *auid) +extern "C" int _rados_ioctx_pool_get_auid(rados_ioctx_t io, uint64_t *auid) { tracepoint(librados, rados_ioctx_pool_get_auid_enter, io); int retval = -EOPNOTSUPP; tracepoint(librados, rados_ioctx_pool_get_auid_exit, retval, *auid); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_get_auid); -extern "C" int rados_ioctx_pool_requires_alignment(rados_ioctx_t io) +extern "C" int _rados_ioctx_pool_requires_alignment(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_pool_requires_alignment_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1262,9 +1363,10 @@ extern "C" int rados_ioctx_pool_requires_alignment(rados_ioctx_t io) tracepoint(librados, rados_ioctx_pool_requires_alignment_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_requires_alignment); -extern "C" int rados_ioctx_pool_requires_alignment2(rados_ioctx_t io, - int *requires) +extern "C" int _rados_ioctx_pool_requires_alignment2(rados_ioctx_t io, + int *requires) { tracepoint(librados, rados_ioctx_pool_requires_alignment_enter2, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1277,8 +1379,9 @@ extern "C" int rados_ioctx_pool_requires_alignment2(rados_ioctx_t io, *requires = requires_alignment; return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_requires_alignment2); -extern "C" uint64_t rados_ioctx_pool_required_alignment(rados_ioctx_t io) +extern "C" uint64_t _rados_ioctx_pool_required_alignment(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_pool_required_alignment_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1286,9 +1389,10 @@ extern "C" uint64_t rados_ioctx_pool_required_alignment(rados_ioctx_t io) tracepoint(librados, rados_ioctx_pool_required_alignment_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_required_alignment); -extern "C" int rados_ioctx_pool_required_alignment2(rados_ioctx_t io, - uint64_t *alignment) +extern "C" int _rados_ioctx_pool_required_alignment2(rados_ioctx_t io, + uint64_t *alignment) { tracepoint(librados, rados_ioctx_pool_required_alignment_enter2, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1298,8 +1402,9 @@ extern "C" int rados_ioctx_pool_required_alignment2(rados_ioctx_t io, *alignment); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_pool_required_alignment2); -extern "C" void rados_ioctx_locator_set_key(rados_ioctx_t io, const char *key) +extern "C" void _rados_ioctx_locator_set_key(rados_ioctx_t io, const char *key) { tracepoint(librados, rados_ioctx_locator_set_key_enter, io, key); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1309,8 +1414,9 @@ extern "C" void rados_ioctx_locator_set_key(rados_ioctx_t io, const char *key) ctx->oloc.key = ""; tracepoint(librados, rados_ioctx_locator_set_key_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_locator_set_key); -extern "C" void rados_ioctx_set_namespace(rados_ioctx_t io, const char *nspace) +extern "C" void _rados_ioctx_set_namespace(rados_ioctx_t io, const char *nspace) { tracepoint(librados, rados_ioctx_set_namespace_enter, io, nspace); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1320,9 +1426,10 @@ extern "C" void rados_ioctx_set_namespace(rados_ioctx_t io, const char *nspace) ctx->oloc.nspace = ""; tracepoint(librados, rados_ioctx_set_namespace_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_set_namespace); -extern "C" int rados_ioctx_get_namespace(rados_ioctx_t io, char *s, - unsigned maxlen) +extern "C" int _rados_ioctx_get_namespace(rados_ioctx_t io, char *s, + unsigned maxlen) { tracepoint(librados, rados_ioctx_get_namespace_enter, io, maxlen); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1336,8 +1443,9 @@ extern "C" int rados_ioctx_get_namespace(rados_ioctx_t io, char *s, tracepoint(librados, rados_ioctx_get_namespace_exit, retval, s); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_get_namespace); -extern "C" rados_t rados_ioctx_get_cluster(rados_ioctx_t io) +extern "C" rados_t _rados_ioctx_get_cluster(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_get_cluster_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1345,8 +1453,9 @@ extern "C" rados_t rados_ioctx_get_cluster(rados_ioctx_t io) tracepoint(librados, rados_ioctx_get_cluster_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_get_cluster); -extern "C" int64_t rados_ioctx_get_id(rados_ioctx_t io) +extern "C" int64_t _rados_ioctx_get_id(rados_ioctx_t io) { tracepoint(librados, rados_ioctx_get_id_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1354,8 +1463,9 @@ extern "C" int64_t rados_ioctx_get_id(rados_ioctx_t io) tracepoint(librados, rados_ioctx_get_id_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_get_id); -extern "C" int rados_ioctx_get_pool_name(rados_ioctx_t io, char *s, unsigned maxlen) +extern "C" int _rados_ioctx_get_pool_name(rados_ioctx_t io, char *s, unsigned maxlen) { tracepoint(librados, rados_ioctx_get_pool_name_enter, io, maxlen); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1375,10 +1485,11 @@ extern "C" int rados_ioctx_get_pool_name(rados_ioctx_t io, char *s, unsigned max tracepoint(librados, rados_ioctx_get_pool_name_exit, retval, s); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_get_pool_name); // snaps -extern "C" int rados_ioctx_snap_create(rados_ioctx_t io, const char *snapname) +extern "C" int _rados_ioctx_snap_create(rados_ioctx_t io, const char *snapname) { tracepoint(librados, rados_ioctx_snap_create_enter, io, snapname); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1386,8 +1497,9 @@ extern "C" int rados_ioctx_snap_create(rados_ioctx_t io, const char *snapname) tracepoint(librados, rados_ioctx_snap_create_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_create); -extern "C" int rados_ioctx_snap_remove(rados_ioctx_t io, const char *snapname) +extern "C" int _rados_ioctx_snap_remove(rados_ioctx_t io, const char *snapname) { tracepoint(librados, rados_ioctx_snap_remove_enter, io, snapname); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1395,9 +1507,10 @@ extern "C" int rados_ioctx_snap_remove(rados_ioctx_t io, const char *snapname) tracepoint(librados, rados_ioctx_snap_remove_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_remove); -extern "C" int rados_ioctx_snap_rollback(rados_ioctx_t io, const char *oid, - const char *snapname) +extern "C" int _rados_ioctx_snap_rollback(rados_ioctx_t io, const char *oid, + const char *snapname) { tracepoint(librados, rados_ioctx_snap_rollback_enter, io, oid, snapname); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1405,16 +1518,18 @@ extern "C" int rados_ioctx_snap_rollback(rados_ioctx_t io, const char *oid, tracepoint(librados, rados_ioctx_snap_rollback_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_rollback); // Deprecated name kept for backward compatibility -extern "C" int rados_rollback(rados_ioctx_t io, const char *oid, - const char *snapname) +extern "C" int _rados_rollback(rados_ioctx_t io, const char *oid, + const char *snapname) { - return rados_ioctx_snap_rollback(io, oid, snapname); + return _rados_ioctx_snap_rollback(io, oid, snapname); } +LIBRADOS_C_API_BASE_DEFAULT(rados_rollback); -extern "C" int rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io, - uint64_t *snapid) +extern "C" int _rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io, + uint64_t *snapid) { tracepoint(librados, rados_ioctx_selfmanaged_snap_create_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1422,11 +1537,12 @@ extern "C" int rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io, tracepoint(librados, rados_ioctx_selfmanaged_snap_create_exit, retval, *snapid); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_selfmanaged_snap_create); extern "C" void -rados_aio_ioctx_selfmanaged_snap_create(rados_ioctx_t io, - rados_snap_t *snapid, - rados_completion_t completion) +_rados_aio_ioctx_selfmanaged_snap_create(rados_ioctx_t io, + rados_snap_t *snapid, + rados_completion_t completion) { tracepoint(librados, rados_ioctx_selfmanaged_snap_create_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1434,9 +1550,10 @@ rados_aio_ioctx_selfmanaged_snap_create(rados_ioctx_t io, ctx->aio_selfmanaged_snap_create(snapid, c); tracepoint(librados, rados_ioctx_selfmanaged_snap_create_exit, 0, 0); } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_ioctx_selfmanaged_snap_create); -extern "C" int rados_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, - uint64_t snapid) +extern "C" int _rados_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, + uint64_t snapid) { tracepoint(librados, rados_ioctx_selfmanaged_snap_remove_enter, io, snapid); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1444,11 +1561,12 @@ extern "C" int rados_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, tracepoint(librados, rados_ioctx_selfmanaged_snap_remove_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_selfmanaged_snap_remove); extern "C" void -rados_aio_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, - rados_snap_t snapid, - rados_completion_t completion) +_rados_aio_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, + rados_snap_t snapid, + rados_completion_t completion) { tracepoint(librados, rados_ioctx_selfmanaged_snap_remove_enter, io, snapid); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1456,10 +1574,11 @@ rados_aio_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, ctx->aio_selfmanaged_snap_remove(snapid, c); tracepoint(librados, rados_ioctx_selfmanaged_snap_remove_exit, 0); } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_ioctx_selfmanaged_snap_remove); -extern "C" int rados_ioctx_selfmanaged_snap_rollback(rados_ioctx_t io, - const char *oid, - uint64_t snapid) +extern "C" int _rados_ioctx_selfmanaged_snap_rollback(rados_ioctx_t io, + const char *oid, + uint64_t snapid) { tracepoint(librados, rados_ioctx_selfmanaged_snap_rollback_enter, io, oid, snapid); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1467,9 +1586,10 @@ extern "C" int rados_ioctx_selfmanaged_snap_rollback(rados_ioctx_t io, tracepoint(librados, rados_ioctx_selfmanaged_snap_rollback_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_selfmanaged_snap_rollback); -extern "C" int rados_ioctx_snap_list(rados_ioctx_t io, rados_snap_t *snaps, - int maxlen) +extern "C" int _rados_ioctx_snap_list(rados_ioctx_t io, rados_snap_t *snaps, + int maxlen) { tracepoint(librados, rados_ioctx_snap_list_enter, io, maxlen); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1491,9 +1611,10 @@ extern "C" int rados_ioctx_snap_list(rados_ioctx_t io, rados_snap_t *snaps, tracepoint(librados, rados_ioctx_snap_list_exit, retval, snaps, 0); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_list); -extern "C" int rados_ioctx_snap_lookup(rados_ioctx_t io, const char *name, - rados_snap_t *id) +extern "C" int _rados_ioctx_snap_lookup(rados_ioctx_t io, const char *name, + rados_snap_t *id) { tracepoint(librados, rados_ioctx_snap_lookup_enter, io, name); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1501,9 +1622,10 @@ extern "C" int rados_ioctx_snap_lookup(rados_ioctx_t io, const char *name, tracepoint(librados, rados_ioctx_snap_lookup_exit, retval, *id); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_lookup); -extern "C" int rados_ioctx_snap_get_name(rados_ioctx_t io, rados_snap_t id, - char *name, int maxlen) +extern "C" int _rados_ioctx_snap_get_name(rados_ioctx_t io, rados_snap_t id, + char *name, int maxlen) { tracepoint(librados, rados_ioctx_snap_get_name_enter, io, id, maxlen); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1522,8 +1644,9 @@ extern "C" int rados_ioctx_snap_get_name(rados_ioctx_t io, rados_snap_t id, tracepoint(librados, rados_ioctx_snap_get_name_exit, 0, name); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_get_name); -extern "C" int rados_ioctx_snap_get_stamp(rados_ioctx_t io, rados_snap_t id, time_t *t) +extern "C" int _rados_ioctx_snap_get_stamp(rados_ioctx_t io, rados_snap_t id, time_t *t) { tracepoint(librados, rados_ioctx_snap_get_stamp_enter, io, id); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1531,9 +1654,10 @@ extern "C" int rados_ioctx_snap_get_stamp(rados_ioctx_t io, rados_snap_t id, tim tracepoint(librados, rados_ioctx_snap_get_stamp_exit, retval, *t); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_ioctx_snap_get_stamp); -extern "C" int rados_cmpext(rados_ioctx_t io, const char *o, - const char *cmp_buf, size_t cmp_len, uint64_t off) +extern "C" int _rados_cmpext(rados_ioctx_t io, const char *o, + const char *cmp_buf, size_t cmp_len, uint64_t off) { tracepoint(librados, rados_cmpext_enter, io, o, cmp_buf, cmp_len, off); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1548,9 +1672,10 @@ extern "C" int rados_cmpext(rados_ioctx_t io, const char *o, return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cmpext); -extern "C" int rados_getxattr(rados_ioctx_t io, const char *o, const char *name, - char *buf, size_t len) +extern "C" int _rados_getxattr(rados_ioctx_t io, const char *o, const char *name, + char *buf, size_t len) { tracepoint(librados, rados_getxattr_enter, io, o, name, len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1572,9 +1697,10 @@ extern "C" int rados_getxattr(rados_ioctx_t io, const char *o, const char *name, tracepoint(librados, rados_getxattr_exit, ret, buf, ret); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_getxattr); -extern "C" int rados_getxattrs(rados_ioctx_t io, const char *oid, - rados_xattrs_iter_t *iter) +extern "C" int _rados_getxattrs(rados_ioctx_t io, const char *oid, + rados_xattrs_iter_t *iter) { tracepoint(librados, rados_getxattrs_enter, io, oid); librados::RadosXattrsIter *it = new librados::RadosXattrsIter(); @@ -1596,9 +1722,11 @@ extern "C" int rados_getxattrs(rados_ioctx_t io, const char *oid, tracepoint(librados, rados_getxattrs_exit, 0, *iter); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_getxattrs); -extern "C" int rados_getxattrs_next(rados_xattrs_iter_t iter, - const char **name, const char **val, size_t *len) +extern "C" int _rados_getxattrs_next(rados_xattrs_iter_t iter, + const char **name, const char **val, + size_t *len) { tracepoint(librados, rados_getxattrs_next_enter, iter); librados::RadosXattrsIter *it = static_cast(iter); @@ -1634,16 +1762,18 @@ extern "C" int rados_getxattrs_next(rados_xattrs_iter_t iter, tracepoint(librados, rados_getxattrs_next_exit, 0, *name, *val, *len); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_getxattrs_next); -extern "C" void rados_getxattrs_end(rados_xattrs_iter_t iter) +extern "C" void _rados_getxattrs_end(rados_xattrs_iter_t iter) { tracepoint(librados, rados_getxattrs_end_enter, iter); librados::RadosXattrsIter *it = static_cast(iter); delete it; tracepoint(librados, rados_getxattrs_end_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_getxattrs_end); -extern "C" int rados_setxattr(rados_ioctx_t io, const char *o, const char *name, const char *buf, size_t len) +extern "C" int _rados_setxattr(rados_ioctx_t io, const char *o, const char *name, const char *buf, size_t len) { tracepoint(librados, rados_setxattr_enter, io, o, name, buf, len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1654,8 +1784,9 @@ extern "C" int rados_setxattr(rados_ioctx_t io, const char *o, const char *name, tracepoint(librados, rados_setxattr_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_setxattr); -extern "C" int rados_rmxattr(rados_ioctx_t io, const char *o, const char *name) +extern "C" int _rados_rmxattr(rados_ioctx_t io, const char *o, const char *name) { tracepoint(librados, rados_rmxattr_enter, io, o, name); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1664,8 +1795,9 @@ extern "C" int rados_rmxattr(rados_ioctx_t io, const char *o, const char *name) tracepoint(librados, rados_rmxattr_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_rmxattr); -extern "C" int rados_stat(rados_ioctx_t io, const char *o, uint64_t *psize, time_t *pmtime) +extern "C" int _rados_stat(rados_ioctx_t io, const char *o, uint64_t *psize, time_t *pmtime) { tracepoint(librados, rados_stat_enter, io, o); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1674,9 +1806,69 @@ extern "C" int rados_stat(rados_ioctx_t io, const char *o, uint64_t *psize, time tracepoint(librados, rados_stat_exit, retval, psize, pmtime); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_stat); + +extern "C" int _rados_tmap_update_base(rados_ioctx_t io, const char *o, + const char *cmdbuf, size_t cmdbuflen) +{ + librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; + object_t oid(o); + bufferlist cmdbl; + cmdbl.append(cmdbuf, cmdbuflen); + return ctx->tmap_update(oid, cmdbl); +} +LIBRADOS_C_API_BASE(rados_tmap_update); + +extern "C" int _rados_tmap_update(rados_ioctx_t io, const char *o, + const char *cmdbuf, size_t cmdbuflen) +{ + return -ENOTSUP; +} +LIBRADOS_C_API_DEFAULT(rados_tmap_update, 14.2.0); -extern "C" int rados_exec(rados_ioctx_t io, const char *o, const char *cls, const char *method, - const char *inbuf, size_t in_len, char *buf, size_t out_len) +extern "C" int _rados_tmap_put_base(rados_ioctx_t io, const char *o, + const char *buf, size_t buflen) +{ + bufferlist bl; + bl.append(buf, buflen); + + bufferlist header; + std::map m; + bufferlist::const_iterator bl_it = bl.begin(); + decode(header, bl_it); + decode(m, bl_it); + + bufferlist out_bl; + encode(header, out_bl); + encode(m, out_bl); + + return _rados_write_full(io, o, out_bl.c_str(), out_bl.length()); +} +LIBRADOS_C_API_BASE(rados_tmap_put); + +extern "C" int _rados_tmap_put(rados_ioctx_t io, const char *o, + const char *buf, size_t buflen) +{ + return -EOPNOTSUPP; +} +LIBRADOS_C_API_DEFAULT(rados_tmap_put, 14.2.0); + +extern "C" int _rados_tmap_get_base(rados_ioctx_t io, const char *o, char *buf, + size_t buflen) +{ + return _rados_read(io, o, buf, buflen, 0); +} +LIBRADOS_C_API_BASE(rados_tmap_get); + +extern "C" int _rados_tmap_get(rados_ioctx_t io, const char *o, char *buf, + size_t buflen) +{ + return -EOPNOTSUPP; +} +LIBRADOS_C_API_DEFAULT(rados_tmap_get, 14.2.0); + +extern "C" int _rados_exec(rados_ioctx_t io, const char *o, const char *cls, const char *method, + const char *inbuf, size_t in_len, char *buf, size_t out_len) { tracepoint(librados, rados_exec_enter, io, o, cls, method, inbuf, in_len, out_len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1698,38 +1890,43 @@ extern "C" int rados_exec(rados_ioctx_t io, const char *o, const char *cls, cons tracepoint(librados, rados_exec_exit, ret, buf, ret); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_exec); -extern "C" rados_object_list_cursor rados_object_list_begin(rados_ioctx_t io) +extern "C" rados_object_list_cursor _rados_object_list_begin(rados_ioctx_t io) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; hobject_t *result = new hobject_t(ctx->objecter->enumerate_objects_begin()); return (rados_object_list_cursor)result; } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_begin); -extern "C" rados_object_list_cursor rados_object_list_end(rados_ioctx_t io) +extern "C" rados_object_list_cursor _rados_object_list_end(rados_ioctx_t io) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; hobject_t *result = new hobject_t(ctx->objecter->enumerate_objects_end()); return (rados_object_list_cursor)result; } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_end); -extern "C" int rados_object_list_is_end( +extern "C" int _rados_object_list_is_end( rados_ioctx_t io, rados_object_list_cursor cur) { hobject_t *hobj = (hobject_t*)cur; return hobj->is_max(); } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_is_end); -extern "C" void rados_object_list_cursor_free( +extern "C" void _rados_object_list_cursor_free( rados_ioctx_t io, rados_object_list_cursor cur) { hobject_t *hobj = (hobject_t*)cur; delete hobj; } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_cursor_free); -extern "C" int rados_object_list_cursor_cmp( +extern "C" int _rados_object_list_cursor_cmp( rados_ioctx_t io, rados_object_list_cursor lhs_cur, rados_object_list_cursor rhs_cur) @@ -1738,8 +1935,9 @@ extern "C" int rados_object_list_cursor_cmp( hobject_t *rhs = (hobject_t*)rhs_cur; return cmp(*lhs, *rhs); } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_cursor_cmp); -extern "C" int rados_object_list(rados_ioctx_t io, +extern "C" int _rados_object_list(rados_ioctx_t io, const rados_object_list_cursor start, const rados_object_list_cursor finish, const size_t result_item_count, @@ -1799,23 +1997,25 @@ extern "C" int rados_object_list(rados_ioctx_t io, return result.size(); } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list); -extern "C" void rados_object_list_free( +extern "C" void _rados_object_list_free( const size_t result_size, rados_object_list_item *results) { ceph_assert(results); for (unsigned int i = 0; i < result_size; ++i) { - rados_buffer_free(results[i].oid); - rados_buffer_free(results[i].locator); - rados_buffer_free(results[i].nspace); + _rados_buffer_free(results[i].oid); + _rados_buffer_free(results[i].locator); + _rados_buffer_free(results[i].nspace); } } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_free); /* list objects */ -extern "C" int rados_nobjects_list_open(rados_ioctx_t io, rados_list_ctx_t *listh) +extern "C" int _rados_nobjects_list_open(rados_ioctx_t io, rados_list_ctx_t *listh) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -1829,17 +2029,19 @@ extern "C" int rados_nobjects_list_open(rados_ioctx_t io, rados_list_ctx_t *list tracepoint(librados, rados_nobjects_list_open_exit, 0, *listh); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_open); -extern "C" void rados_nobjects_list_close(rados_list_ctx_t h) +extern "C" void _rados_nobjects_list_close(rados_list_ctx_t h) { tracepoint(librados, rados_nobjects_list_close_enter, h); librados::ObjListCtx *lh = (librados::ObjListCtx *)h; delete lh; tracepoint(librados, rados_nobjects_list_close_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_close); -extern "C" uint32_t rados_nobjects_list_seek(rados_list_ctx_t listctx, - uint32_t pos) +extern "C" uint32_t _rados_nobjects_list_seek(rados_list_ctx_t listctx, + uint32_t pos) { librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; tracepoint(librados, rados_nobjects_list_seek_enter, listctx, pos); @@ -1847,9 +2049,10 @@ extern "C" uint32_t rados_nobjects_list_seek(rados_list_ctx_t listctx, tracepoint(librados, rados_nobjects_list_seek_exit, r); return r; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_seek); -extern "C" uint32_t rados_nobjects_list_seek_cursor(rados_list_ctx_t listctx, - rados_object_list_cursor cursor) +extern "C" uint32_t _rados_nobjects_list_seek_cursor(rados_list_ctx_t listctx, + rados_object_list_cursor cursor) { librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; @@ -1858,9 +2061,10 @@ extern "C" uint32_t rados_nobjects_list_seek_cursor(rados_list_ctx_t listctx, tracepoint(librados, rados_nobjects_list_seek_cursor_exit, r); return r; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_seek_cursor); -extern "C" int rados_nobjects_list_get_cursor(rados_list_ctx_t listctx, - rados_object_list_cursor *cursor) +extern "C" int _rados_nobjects_list_get_cursor(rados_list_ctx_t listctx, + rados_object_list_cursor *cursor) { librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; @@ -1869,8 +2073,9 @@ extern "C" int rados_nobjects_list_get_cursor(rados_list_ctx_t listctx, tracepoint(librados, rados_nobjects_list_get_cursor_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_get_cursor); -extern "C" uint32_t rados_nobjects_list_get_pg_hash_position( +extern "C" uint32_t _rados_nobjects_list_get_pg_hash_position( rados_list_ctx_t listctx) { librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; @@ -1879,8 +2084,9 @@ extern "C" uint32_t rados_nobjects_list_get_pg_hash_position( tracepoint(librados, rados_nobjects_list_get_pg_hash_position_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_get_pg_hash_position); -extern "C" int rados_nobjects_list_next(rados_list_ctx_t listctx, const char **entry, const char **key, const char **nspace) +extern "C" int _rados_nobjects_list_next(rados_list_ctx_t listctx, const char **entry, const char **key, const char **nspace) { tracepoint(librados, rados_nobjects_list_next_enter, listctx); librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; @@ -1916,6 +2122,7 @@ extern "C" int rados_nobjects_list_next(rados_list_ctx_t listctx, const char **e tracepoint(librados, rados_nobjects_list_next_exit, 0, *entry, key, nspace); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_next); /* @@ -1923,47 +2130,52 @@ extern "C" int rados_nobjects_list_next(rados_list_ctx_t listctx, const char **e * * thse return -ENOTSUP where possible. */ -extern "C" int rados_objects_list_open( +extern "C" int _rados_objects_list_open( rados_ioctx_t io, rados_list_ctx_t *ctx) { return -ENOTSUP; } +LIBRADOS_C_API_BASE_DEFAULT(rados_objects_list_open); -extern "C" uint32_t rados_objects_list_get_pg_hash_position( +extern "C" uint32_t _rados_objects_list_get_pg_hash_position( rados_list_ctx_t ctx) { return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_objects_list_get_pg_hash_position); -extern "C" uint32_t rados_objects_list_seek( +extern "C" uint32_t _rados_objects_list_seek( rados_list_ctx_t ctx, uint32_t pos) { return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_objects_list_seek); -extern "C" int rados_objects_list_next( +extern "C" int _rados_objects_list_next( rados_list_ctx_t ctx, const char **entry, const char **key) { return -ENOTSUP; } +LIBRADOS_C_API_BASE_DEFAULT(rados_objects_list_next); -extern "C" void rados_objects_list_close( +extern "C" void _rados_objects_list_close( rados_list_ctx_t ctx) { } +LIBRADOS_C_API_BASE_DEFAULT(rados_objects_list_close); // ------------------------- // aio -extern "C" int rados_aio_create_completion(void *cb_arg, - rados_callback_t cb_complete, - rados_callback_t cb_safe, - rados_completion_t *pc) +extern "C" int _rados_aio_create_completion(void *cb_arg, + rados_callback_t cb_complete, + rados_callback_t cb_safe, + rados_completion_t *pc) { tracepoint(librados, rados_aio_create_completion_enter, cb_arg, cb_complete, cb_safe); librados::AioCompletionImpl *c = new librados::AioCompletionImpl; @@ -1975,95 +2187,107 @@ extern "C" int rados_aio_create_completion(void *cb_arg, tracepoint(librados, rados_aio_create_completion_exit, 0, *pc); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_create_completion); -extern "C" int rados_aio_wait_for_complete(rados_completion_t c) +extern "C" int _rados_aio_wait_for_complete(rados_completion_t c) { tracepoint(librados, rados_aio_wait_for_complete_enter, c); int retval = ((librados::AioCompletionImpl*)c)->wait_for_complete(); tracepoint(librados, rados_aio_wait_for_complete_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_wait_for_complete); -extern "C" int rados_aio_wait_for_safe(rados_completion_t c) +extern "C" int _rados_aio_wait_for_safe(rados_completion_t c) { tracepoint(librados, rados_aio_wait_for_safe_enter, c); int retval = ((librados::AioCompletionImpl*)c)->wait_for_safe(); tracepoint(librados, rados_aio_wait_for_safe_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_wait_for_safe); -extern "C" int rados_aio_is_complete(rados_completion_t c) +extern "C" int _rados_aio_is_complete(rados_completion_t c) { tracepoint(librados, rados_aio_is_complete_enter, c); int retval = ((librados::AioCompletionImpl*)c)->is_complete(); tracepoint(librados, rados_aio_is_complete_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_is_complete); -extern "C" int rados_aio_is_safe(rados_completion_t c) +extern "C" int _rados_aio_is_safe(rados_completion_t c) { tracepoint(librados, rados_aio_is_safe_enter, c); int retval = ((librados::AioCompletionImpl*)c)->is_safe(); tracepoint(librados, rados_aio_is_safe_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_is_safe); -extern "C" int rados_aio_wait_for_complete_and_cb(rados_completion_t c) +extern "C" int _rados_aio_wait_for_complete_and_cb(rados_completion_t c) { tracepoint(librados, rados_aio_wait_for_complete_and_cb_enter, c); int retval = ((librados::AioCompletionImpl*)c)->wait_for_complete_and_cb(); tracepoint(librados, rados_aio_wait_for_complete_and_cb_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_wait_for_complete_and_cb); -extern "C" int rados_aio_wait_for_safe_and_cb(rados_completion_t c) +extern "C" int _rados_aio_wait_for_safe_and_cb(rados_completion_t c) { tracepoint(librados, rados_aio_wait_for_safe_and_cb_enter, c); int retval = ((librados::AioCompletionImpl*)c)->wait_for_safe_and_cb(); tracepoint(librados, rados_aio_wait_for_safe_and_cb_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_wait_for_safe_and_cb); -extern "C" int rados_aio_is_complete_and_cb(rados_completion_t c) +extern "C" int _rados_aio_is_complete_and_cb(rados_completion_t c) { tracepoint(librados, rados_aio_is_complete_and_cb_enter, c); int retval = ((librados::AioCompletionImpl*)c)->is_complete_and_cb(); tracepoint(librados, rados_aio_is_complete_and_cb_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_is_complete_and_cb); -extern "C" int rados_aio_is_safe_and_cb(rados_completion_t c) +extern "C" int _rados_aio_is_safe_and_cb(rados_completion_t c) { tracepoint(librados, rados_aio_is_safe_and_cb_enter, c); int retval = ((librados::AioCompletionImpl*)c)->is_safe_and_cb(); tracepoint(librados, rados_aio_is_safe_and_cb_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_is_safe_and_cb); -extern "C" int rados_aio_get_return_value(rados_completion_t c) +extern "C" int _rados_aio_get_return_value(rados_completion_t c) { tracepoint(librados, rados_aio_get_return_value_enter, c); int retval = ((librados::AioCompletionImpl*)c)->get_return_value(); tracepoint(librados, rados_aio_get_return_value_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_get_return_value); -extern "C" uint64_t rados_aio_get_version(rados_completion_t c) +extern "C" uint64_t _rados_aio_get_version(rados_completion_t c) { tracepoint(librados, rados_aio_get_version_enter, c); uint64_t retval = ((librados::AioCompletionImpl*)c)->get_version(); tracepoint(librados, rados_aio_get_version_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_get_version); -extern "C" void rados_aio_release(rados_completion_t c) +extern "C" void _rados_aio_release(rados_completion_t c) { tracepoint(librados, rados_aio_release_enter, c); ((librados::AioCompletionImpl*)c)->put(); tracepoint(librados, rados_aio_release_exit); +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_release); } -extern "C" int rados_aio_read(rados_ioctx_t io, const char *o, +extern "C" int _rados_aio_read(rados_ioctx_t io, const char *o, rados_completion_t completion, char *buf, size_t len, uint64_t off) { @@ -2075,12 +2299,13 @@ extern "C" int rados_aio_read(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_read_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_read); #ifdef WITH_BLKIN -extern "C" int rados_aio_read_traced(rados_ioctx_t io, const char *o, - rados_completion_t completion, - char *buf, size_t len, uint64_t off, - struct blkin_trace_info *info) +extern "C" int _rados_aio_read_traced(rados_ioctx_t io, const char *o, + rados_completion_t completion, + char *buf, size_t len, uint64_t off, + struct blkin_trace_info *info) { tracepoint(librados, rados_aio_read_enter, io, o, completion, len, off); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2090,9 +2315,10 @@ extern "C" int rados_aio_read_traced(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_read_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_read_traced); #endif -extern "C" int rados_aio_write(rados_ioctx_t io, const char *o, +extern "C" int _rados_aio_write(rados_ioctx_t io, const char *o, rados_completion_t completion, const char *buf, size_t len, uint64_t off) { @@ -2108,12 +2334,13 @@ extern "C" int rados_aio_write(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_write_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_write); #ifdef WITH_BLKIN -extern "C" int rados_aio_write_traced(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *buf, size_t len, uint64_t off, - struct blkin_trace_info *info) +extern "C" int _rados_aio_write_traced(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *buf, size_t len, uint64_t off, + struct blkin_trace_info *info) { tracepoint(librados, rados_aio_write_enter, io, o, completion, buf, len, off); if (len > UINT_MAX/2) @@ -2127,11 +2354,12 @@ extern "C" int rados_aio_write_traced(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_write_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_write_traced); #endif -extern "C" int rados_aio_append(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *buf, size_t len) +extern "C" int _rados_aio_append(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *buf, size_t len) { tracepoint(librados, rados_aio_append_enter, io, o, completion, buf, len); if (len > UINT_MAX/2) @@ -2145,10 +2373,11 @@ extern "C" int rados_aio_append(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_append_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_append); -extern "C" int rados_aio_write_full(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *buf, size_t len) +extern "C" int _rados_aio_write_full(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *buf, size_t len) { tracepoint(librados, rados_aio_write_full_enter, io, o, completion, buf, len); if (len > UINT_MAX/2) @@ -2161,11 +2390,12 @@ extern "C" int rados_aio_write_full(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_write_full_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_write_full); -extern "C" int rados_aio_writesame(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *buf, size_t data_len, - size_t write_len, uint64_t off) +extern "C" int _rados_aio_writesame(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *buf, size_t data_len, + size_t write_len, uint64_t off) { tracepoint(librados, rados_aio_writesame_enter, io, o, completion, buf, data_len, write_len, off); @@ -2178,9 +2408,10 @@ extern "C" int rados_aio_writesame(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_writesame_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_writesame); -extern "C" int rados_aio_remove(rados_ioctx_t io, const char *o, - rados_completion_t completion) +extern "C" int _rados_aio_remove(rados_ioctx_t io, const char *o, + rados_completion_t completion) { tracepoint(librados, rados_aio_remove_enter, io, o, completion); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2189,9 +2420,10 @@ extern "C" int rados_aio_remove(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_remove_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_remove); -extern "C" int rados_aio_flush_async(rados_ioctx_t io, - rados_completion_t completion) +extern "C" int _rados_aio_flush_async(rados_ioctx_t io, + rados_completion_t completion) { tracepoint(librados, rados_aio_flush_async_enter, io, completion); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2199,8 +2431,9 @@ extern "C" int rados_aio_flush_async(rados_ioctx_t io, tracepoint(librados, rados_aio_flush_async_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_flush_async); -extern "C" int rados_aio_flush(rados_ioctx_t io) +extern "C" int _rados_aio_flush(rados_ioctx_t io) { tracepoint(librados, rados_aio_flush_enter, io); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2208,6 +2441,7 @@ extern "C" int rados_aio_flush(rados_ioctx_t io) tracepoint(librados, rados_aio_flush_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_flush); struct AioGetxattrData { AioGetxattrData(char* buf, rados_completion_t c, size_t l) : @@ -2220,7 +2454,7 @@ struct AioGetxattrData { static void rados_aio_getxattr_complete(rados_completion_t c, void *arg) { AioGetxattrData *cdata = reinterpret_cast(arg); - int rc = rados_aio_get_return_value(c); + int rc = _rados_aio_get_return_value(c); if (rc >= 0) { if (cdata->bl.length() > cdata->len) { rc = -ERANGE; @@ -2234,9 +2468,9 @@ static void rados_aio_getxattr_complete(rados_completion_t c, void *arg) { delete cdata; } -extern "C" int rados_aio_getxattr(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *name, char *buf, size_t len) +extern "C" int _rados_aio_getxattr(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *name, char *buf, size_t len) { tracepoint(librados, rados_aio_getxattr_enter, io, o, completion, name, len); // create data object to be passed to async callback @@ -2256,6 +2490,7 @@ extern "C" int rados_aio_getxattr(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_getxattr_exit, ret, buf, ret); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_getxattr); namespace { struct AioGetxattrsData { @@ -2274,7 +2509,7 @@ struct AioGetxattrsData { static void rados_aio_getxattrs_complete(rados_completion_t c, void *arg) { AioGetxattrsData *cdata = reinterpret_cast(arg); - int rc = rados_aio_get_return_value(c); + int rc = _rados_aio_get_return_value(c); if (rc) { cdata->user_completion.finish(rc); } else { @@ -2286,9 +2521,9 @@ static void rados_aio_getxattrs_complete(rados_completion_t c, void *arg) { delete cdata; } -extern "C" int rados_aio_getxattrs(rados_ioctx_t io, const char *oid, - rados_completion_t completion, - rados_xattrs_iter_t *iter) +extern "C" int _rados_aio_getxattrs(rados_ioctx_t io, const char *oid, + rados_completion_t completion, + rados_xattrs_iter_t *iter) { tracepoint(librados, rados_aio_getxattrs_enter, io, oid, completion); // create data object to be passed to async callback @@ -2307,10 +2542,11 @@ extern "C" int rados_aio_getxattrs(rados_ioctx_t io, const char *oid, tracepoint(librados, rados_aio_getxattrs_exit, ret, cdata->it); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_getxattrs); -extern "C" int rados_aio_setxattr(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *name, const char *buf, size_t len) +extern "C" int _rados_aio_setxattr(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *name, const char *buf, size_t len) { tracepoint(librados, rados_aio_setxattr_enter, io, o, completion, name, buf, len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2321,10 +2557,11 @@ extern "C" int rados_aio_setxattr(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_setxattr_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_setxattr); -extern "C" int rados_aio_rmxattr(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *name) +extern "C" int _rados_aio_rmxattr(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *name) { tracepoint(librados, rados_aio_rmxattr_enter, io, o, completion, name); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2333,10 +2570,11 @@ extern "C" int rados_aio_rmxattr(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_rmxattr_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_rmxattr); -extern "C" int rados_aio_stat(rados_ioctx_t io, const char *o, - rados_completion_t completion, - uint64_t *psize, time_t *pmtime) +extern "C" int _rados_aio_stat(rados_ioctx_t io, const char *o, + rados_completion_t completion, + uint64_t *psize, time_t *pmtime) { tracepoint(librados, rados_aio_stat_enter, io, o, completion); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2346,10 +2584,11 @@ extern "C" int rados_aio_stat(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_stat_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_stat); -extern "C" int rados_aio_cmpext(rados_ioctx_t io, const char *o, - rados_completion_t completion, const char *cmp_buf, - size_t cmp_len, uint64_t off) +extern "C" int _rados_aio_cmpext(rados_ioctx_t io, const char *o, + rados_completion_t completion, const char *cmp_buf, + size_t cmp_len, uint64_t off) { tracepoint(librados, rados_aio_cmpext_enter, io, o, completion, cmp_buf, cmp_len, off); @@ -2360,18 +2599,20 @@ extern "C" int rados_aio_cmpext(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_cmpext_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_cmpext); -extern "C" int rados_aio_cancel(rados_ioctx_t io, rados_completion_t completion) +extern "C" int _rados_aio_cancel(rados_ioctx_t io, rados_completion_t completion) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; return ctx->aio_cancel((librados::AioCompletionImpl*)completion); } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_cancel); -extern "C" int rados_aio_exec(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *cls, const char *method, - const char *inbuf, size_t in_len, - char *buf, size_t out_len) +extern "C" int _rados_aio_exec(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *cls, const char *method, + const char *inbuf, size_t in_len, + char *buf, size_t out_len) { tracepoint(librados, rados_aio_exec_enter, io, o, completion); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2383,6 +2624,7 @@ extern "C" int rados_aio_exec(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_exec_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_exec); struct C_WatchCB : public librados::WatchCtx { rados_watchcb_t wcb; @@ -2393,9 +2635,9 @@ struct C_WatchCB : public librados::WatchCtx { } }; -extern "C" int rados_watch(rados_ioctx_t io, const char *o, uint64_t ver, - uint64_t *handle, - rados_watchcb_t watchcb, void *arg) +extern "C" int _rados_watch(rados_ioctx_t io, const char *o, uint64_t ver, + uint64_t *handle, + rados_watchcb_t watchcb, void *arg) { tracepoint(librados, rados_watch_enter, io, o, ver, watchcb, arg); uint64_t *cookie = handle; @@ -2406,6 +2648,7 @@ extern "C" int rados_watch(rados_ioctx_t io, const char *o, uint64_t ver, tracepoint(librados, rados_watch_exit, retval, *handle); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_watch); struct C_WatchCB2 : public librados::WatchCtx2 { rados_watchcb2_t wcb; @@ -2426,18 +2669,11 @@ struct C_WatchCB2 : public librados::WatchCtx2 { } }; -extern "C" int rados_watch2(rados_ioctx_t io, const char *o, uint64_t *handle, - rados_watchcb2_t watchcb, - rados_watcherrcb_t watcherrcb, - void *arg) { - return rados_watch3(io, o, handle, watchcb, watcherrcb, 0, arg); -} - -extern "C" int rados_watch3(rados_ioctx_t io, const char *o, uint64_t *handle, - rados_watchcb2_t watchcb, - rados_watcherrcb_t watcherrcb, - uint32_t timeout, - void *arg) +extern "C" int _rados_watch3(rados_ioctx_t io, const char *o, uint64_t *handle, + rados_watchcb2_t watchcb, + rados_watcherrcb_t watcherrcb, + uint32_t timeout, + void *arg) { tracepoint(librados, rados_watch3_enter, io, o, handle, watchcb, timeout, arg); int ret; @@ -2453,21 +2689,22 @@ extern "C" int rados_watch3(rados_ioctx_t io, const char *o, uint64_t *handle, tracepoint(librados, rados_watch3_exit, ret, handle ? *handle : 0); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_watch3); -extern "C" int rados_aio_watch(rados_ioctx_t io, const char *o, - rados_completion_t completion, - uint64_t *handle, - rados_watchcb2_t watchcb, - rados_watcherrcb_t watcherrcb, void *arg) { - return rados_aio_watch2(io, o, completion, handle, watchcb, watcherrcb, 0, arg); +extern "C" int _rados_watch2(rados_ioctx_t io, const char *o, uint64_t *handle, + rados_watchcb2_t watchcb, + rados_watcherrcb_t watcherrcb, + void *arg) { + return _rados_watch3(io, o, handle, watchcb, watcherrcb, 0, arg); } +LIBRADOS_C_API_BASE_DEFAULT(rados_watch2); -extern "C" int rados_aio_watch2(rados_ioctx_t io, const char *o, - rados_completion_t completion, - uint64_t *handle, - rados_watchcb2_t watchcb, - rados_watcherrcb_t watcherrcb, - uint32_t timeout, void *arg) +extern "C" int _rados_aio_watch2(rados_ioctx_t io, const char *o, + rados_completion_t completion, + uint64_t *handle, + rados_watchcb2_t watchcb, + rados_watcherrcb_t watcherrcb, + uint32_t timeout, void *arg) { tracepoint(librados, rados_aio_watch2_enter, io, o, completion, handle, watchcb, timeout, arg); int ret; @@ -2485,9 +2722,18 @@ extern "C" int rados_aio_watch2(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_watch2_exit, ret, handle ? *handle : 0); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_watch2); +extern "C" int _rados_aio_watch(rados_ioctx_t io, const char *o, + rados_completion_t completion, + uint64_t *handle, + rados_watchcb2_t watchcb, + rados_watcherrcb_t watcherrcb, void *arg) { + return _rados_aio_watch2(io, o, completion, handle, watchcb, watcherrcb, 0, arg); +} +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_watch); -extern "C" int rados_unwatch(rados_ioctx_t io, const char *o, uint64_t handle) +extern "C" int _rados_unwatch(rados_ioctx_t io, const char *o, uint64_t handle) { tracepoint(librados, rados_unwatch_enter, io, o, handle); uint64_t cookie = handle; @@ -2496,8 +2742,9 @@ extern "C" int rados_unwatch(rados_ioctx_t io, const char *o, uint64_t handle) tracepoint(librados, rados_unwatch_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_unwatch); -extern "C" int rados_unwatch2(rados_ioctx_t io, uint64_t handle) +extern "C" int _rados_unwatch2(rados_ioctx_t io, uint64_t handle) { tracepoint(librados, rados_unwatch2_enter, io, handle); uint64_t cookie = handle; @@ -2506,9 +2753,10 @@ extern "C" int rados_unwatch2(rados_ioctx_t io, uint64_t handle) tracepoint(librados, rados_unwatch2_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_unwatch2); -extern "C" int rados_aio_unwatch(rados_ioctx_t io, uint64_t handle, - rados_completion_t completion) +extern "C" int _rados_aio_unwatch(rados_ioctx_t io, uint64_t handle, + rados_completion_t completion) { tracepoint(librados, rados_aio_unwatch_enter, io, handle, completion); uint64_t cookie = handle; @@ -2519,8 +2767,9 @@ extern "C" int rados_aio_unwatch(rados_ioctx_t io, uint64_t handle, tracepoint(librados, rados_aio_unwatch_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_unwatch); -extern "C" int rados_watch_check(rados_ioctx_t io, uint64_t handle) +extern "C" int _rados_watch_check(rados_ioctx_t io, uint64_t handle) { tracepoint(librados, rados_watch_check_enter, io, handle); uint64_t cookie = handle; @@ -2529,9 +2778,10 @@ extern "C" int rados_watch_check(rados_ioctx_t io, uint64_t handle) tracepoint(librados, rados_watch_check_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_watch_check); -extern "C" int rados_notify(rados_ioctx_t io, const char *o, - uint64_t ver, const char *buf, int buf_len) +extern "C" int _rados_notify(rados_ioctx_t io, const char *o, + uint64_t ver, const char *buf, int buf_len) { tracepoint(librados, rados_notify_enter, io, o, ver, buf, buf_len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2546,12 +2796,13 @@ extern "C" int rados_notify(rados_ioctx_t io, const char *o, tracepoint(librados, rados_notify_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_notify); -extern "C" int rados_notify2(rados_ioctx_t io, const char *o, - const char *buf, int buf_len, - uint64_t timeout_ms, - char **reply_buffer, - size_t *reply_buffer_len) +extern "C" int _rados_notify2(rados_ioctx_t io, const char *o, + const char *buf, int buf_len, + uint64_t timeout_ms, + char **reply_buffer, + size_t *reply_buffer_len) { tracepoint(librados, rados_notify2_enter, io, o, buf, buf_len, timeout_ms); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2566,12 +2817,13 @@ extern "C" int rados_notify2(rados_ioctx_t io, const char *o, tracepoint(librados, rados_notify2_exit, ret); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_notify2); -extern "C" int rados_aio_notify(rados_ioctx_t io, const char *o, - rados_completion_t completion, - const char *buf, int buf_len, - uint64_t timeout_ms, char **reply_buffer, - size_t *reply_buffer_len) +extern "C" int _rados_aio_notify(rados_ioctx_t io, const char *o, + rados_completion_t completion, + const char *buf, int buf_len, + uint64_t timeout_ms, char **reply_buffer, + size_t *reply_buffer_len) { tracepoint(librados, rados_aio_notify_enter, io, o, completion, buf, buf_len, timeout_ms); @@ -2588,10 +2840,11 @@ extern "C" int rados_aio_notify(rados_ioctx_t io, const char *o, tracepoint(librados, rados_aio_notify_exit, ret); return ret; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_notify); -extern "C" int rados_notify_ack(rados_ioctx_t io, const char *o, - uint64_t notify_id, uint64_t handle, - const char *buf, int buf_len) +extern "C" int _rados_notify_ack(rados_ioctx_t io, const char *o, + uint64_t notify_id, uint64_t handle, + const char *buf, int buf_len) { tracepoint(librados, rados_notify_ack_enter, io, o, notify_id, handle, buf, buf_len); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2606,8 +2859,9 @@ extern "C" int rados_notify_ack(rados_ioctx_t io, const char *o, tracepoint(librados, rados_notify_ack_exit, 0); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_notify_ack); -extern "C" int rados_watch_flush(rados_t cluster) +extern "C" int _rados_watch_flush(rados_t cluster) { tracepoint(librados, rados_watch_flush_enter, cluster); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -2615,8 +2869,9 @@ extern "C" int rados_watch_flush(rados_t cluster) tracepoint(librados, rados_watch_flush_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_watch_flush); -extern "C" int rados_aio_watch_flush(rados_t cluster, rados_completion_t completion) +extern "C" int _rados_aio_watch_flush(rados_t cluster, rados_completion_t completion) { tracepoint(librados, rados_aio_watch_flush_enter, cluster, completion); librados::RadosClient *client = (librados::RadosClient *)cluster; @@ -2625,10 +2880,11 @@ extern "C" int rados_aio_watch_flush(rados_t cluster, rados_completion_t complet tracepoint(librados, rados_aio_watch_flush_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_watch_flush); -extern "C" int rados_set_alloc_hint(rados_ioctx_t io, const char *o, - uint64_t expected_object_size, - uint64_t expected_write_size) +extern "C" int _rados_set_alloc_hint(rados_ioctx_t io, const char *o, + uint64_t expected_object_size, + uint64_t expected_write_size) { tracepoint(librados, rados_set_alloc_hint_enter, io, o, expected_object_size, expected_write_size); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2638,11 +2894,12 @@ extern "C" int rados_set_alloc_hint(rados_ioctx_t io, const char *o, tracepoint(librados, rados_set_alloc_hint_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_set_alloc_hint); -extern "C" int rados_set_alloc_hint2(rados_ioctx_t io, const char *o, - uint64_t expected_object_size, - uint64_t expected_write_size, - uint32_t flags) +extern "C" int _rados_set_alloc_hint2(rados_ioctx_t io, const char *o, + uint64_t expected_object_size, + uint64_t expected_write_size, + uint32_t flags) { tracepoint(librados, rados_set_alloc_hint2_enter, io, o, expected_object_size, expected_write_size, flags); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2652,11 +2909,12 @@ extern "C" int rados_set_alloc_hint2(rados_ioctx_t io, const char *o, tracepoint(librados, rados_set_alloc_hint2_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_set_alloc_hint2); -extern "C" int rados_lock_exclusive(rados_ioctx_t io, const char * o, - const char * name, const char * cookie, - const char * desc, struct timeval * duration, - uint8_t flags) +extern "C" int _rados_lock_exclusive(rados_ioctx_t io, const char * o, + const char * name, const char * cookie, + const char * desc, + struct timeval * duration, uint8_t flags) { tracepoint(librados, rados_lock_exclusive_enter, io, o, name, cookie, desc, duration, flags); librados::IoCtx ctx; @@ -2666,11 +2924,12 @@ extern "C" int rados_lock_exclusive(rados_ioctx_t io, const char * o, tracepoint(librados, rados_lock_exclusive_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_lock_exclusive); -extern "C" int rados_lock_shared(rados_ioctx_t io, const char * o, - const char * name, const char * cookie, - const char * tag, const char * desc, - struct timeval * duration, uint8_t flags) +extern "C" int _rados_lock_shared(rados_ioctx_t io, const char * o, + const char * name, const char * cookie, + const char * tag, const char * desc, + struct timeval * duration, uint8_t flags) { tracepoint(librados, rados_lock_shared_enter, io, o, name, cookie, tag, desc, duration, flags); librados::IoCtx ctx; @@ -2680,8 +2939,10 @@ extern "C" int rados_lock_shared(rados_ioctx_t io, const char * o, tracepoint(librados, rados_lock_shared_exit, retval); return retval; } -extern "C" int rados_unlock(rados_ioctx_t io, const char *o, const char *name, - const char *cookie) +LIBRADOS_C_API_BASE_DEFAULT(rados_lock_shared); + +extern "C" int _rados_unlock(rados_ioctx_t io, const char *o, const char *name, + const char *cookie) { tracepoint(librados, rados_unlock_enter, io, o, name, cookie); librados::IoCtx ctx; @@ -2691,9 +2952,10 @@ extern "C" int rados_unlock(rados_ioctx_t io, const char *o, const char *name, tracepoint(librados, rados_unlock_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_unlock); -extern "C" int rados_aio_unlock(rados_ioctx_t io, const char *o, const char *name, - const char *cookie, rados_completion_t completion) +extern "C" int _rados_aio_unlock(rados_ioctx_t io, const char *o, const char *name, + const char *cookie, rados_completion_t completion) { tracepoint(librados, rados_aio_unlock_enter, io, o, name, cookie, completion); librados::IoCtx ctx; @@ -2704,13 +2966,14 @@ extern "C" int rados_aio_unlock(rados_ioctx_t io, const char *o, const char *nam tracepoint(librados, rados_aio_unlock_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_unlock); -extern "C" ssize_t rados_list_lockers(rados_ioctx_t io, const char *o, - const char *name, int *exclusive, - char *tag, size_t *tag_len, - char *clients, size_t *clients_len, - char *cookies, size_t *cookies_len, - char *addrs, size_t *addrs_len) +extern "C" ssize_t _rados_list_lockers(rados_ioctx_t io, const char *o, + const char *name, int *exclusive, + char *tag, size_t *tag_len, + char *clients, size_t *clients_len, + char *cookies, size_t *cookies_len, + char *addrs, size_t *addrs_len) { tracepoint(librados, rados_list_lockers_enter, io, o, name, *tag_len, *clients_len, *cookies_len, *addrs_len); librados::IoCtx ctx; @@ -2771,10 +3034,11 @@ extern "C" ssize_t rados_list_lockers(rados_ioctx_t io, const char *o, tracepoint(librados, rados_list_lockers_exit, retval, *exclusive, tag, *tag_len, *clients_len, *cookies_len, *addrs_len); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_list_lockers); -extern "C" int rados_break_lock(rados_ioctx_t io, const char *o, - const char *name, const char *client, - const char *cookie) +extern "C" int _rados_break_lock(rados_ioctx_t io, const char *o, + const char *name, const char *client, + const char *cookie) { tracepoint(librados, rados_break_lock_enter, io, o, name, client, cookie); librados::IoCtx ctx; @@ -2784,60 +3048,67 @@ extern "C" int rados_break_lock(rados_ioctx_t io, const char *o, tracepoint(librados, rados_break_lock_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_break_lock); -extern "C" rados_write_op_t rados_create_write_op() +extern "C" rados_write_op_t _rados_create_write_op() { tracepoint(librados, rados_create_write_op_enter); rados_write_op_t retval = new (std::nothrow)::ObjectOperation; tracepoint(librados, rados_create_write_op_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_create_write_op); -extern "C" void rados_release_write_op(rados_write_op_t write_op) +extern "C" void _rados_release_write_op(rados_write_op_t write_op) { tracepoint(librados, rados_release_write_op_enter, write_op); delete (::ObjectOperation*)write_op; tracepoint(librados, rados_release_write_op_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_release_write_op); -extern "C" void rados_write_op_set_flags(rados_write_op_t write_op, int flags) +extern "C" void _rados_write_op_set_flags(rados_write_op_t write_op, int flags) { tracepoint(librados, rados_write_op_set_flags_enter, write_op, flags); ((::ObjectOperation *)write_op)->set_last_op_flags(get_op_flags(flags)); tracepoint(librados, rados_write_op_set_flags_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_set_flags); -extern "C" void rados_write_op_assert_version(rados_write_op_t write_op, uint64_t ver) +extern "C" void _rados_write_op_assert_version(rados_write_op_t write_op, uint64_t ver) { tracepoint(librados, rados_write_op_assert_version_enter, write_op, ver); ((::ObjectOperation *)write_op)->assert_version(ver); tracepoint(librados, rados_write_op_assert_version_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_assert_version); -extern "C" void rados_write_op_assert_exists(rados_write_op_t write_op) +extern "C" void _rados_write_op_assert_exists(rados_write_op_t write_op) { tracepoint(librados, rados_write_op_assert_exists_enter, write_op); ((::ObjectOperation *)write_op)->stat(NULL, (ceph::real_time *)NULL, NULL); tracepoint(librados, rados_write_op_assert_exists_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_assert_exists); -extern "C" void rados_write_op_cmpext(rados_write_op_t write_op, - const char *cmp_buf, - size_t cmp_len, - uint64_t off, - int *prval) +extern "C" void _rados_write_op_cmpext(rados_write_op_t write_op, + const char *cmp_buf, + size_t cmp_len, + uint64_t off, + int *prval) { tracepoint(librados, rados_write_op_cmpext_enter, write_op, cmp_buf, cmp_len, off, prval); ((::ObjectOperation *)write_op)->cmpext(off, cmp_len, cmp_buf, prval); tracepoint(librados, rados_write_op_cmpext_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_cmpext); -extern "C" void rados_write_op_cmpxattr(rados_write_op_t write_op, - const char *name, - uint8_t comparison_operator, - const char *value, - size_t value_len) +extern "C" void _rados_write_op_cmpxattr(rados_write_op_t write_op, + const char *name, + uint8_t comparison_operator, + const char *value, + size_t value_len) { tracepoint(librados, rados_write_op_cmpxattr_enter, write_op, name, comparison_operator, value, value_len); bufferlist bl; @@ -2848,6 +3119,7 @@ extern "C" void rados_write_op_cmpxattr(rados_write_op_t write_op, bl); tracepoint(librados, rados_write_op_cmpxattr_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_cmpxattr); static void rados_c_omap_cmp(ObjectOperation *op, const char *key, @@ -2866,37 +3138,39 @@ static void rados_c_omap_cmp(ObjectOperation *op, op->omap_cmp(assertions, prval); } -extern "C" void rados_write_op_omap_cmp(rados_write_op_t write_op, - const char *key, - uint8_t comparison_operator, - const char *val, - size_t val_len, - int *prval) +extern "C" void _rados_write_op_omap_cmp(rados_write_op_t write_op, + const char *key, + uint8_t comparison_operator, + const char *val, + size_t val_len, + int *prval) { tracepoint(librados, rados_write_op_omap_cmp_enter, write_op, key, comparison_operator, val, val_len, prval); rados_c_omap_cmp((::ObjectOperation *)write_op, key, comparison_operator, val, strlen(key), val_len, prval); tracepoint(librados, rados_write_op_omap_cmp_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_cmp); -extern "C" void rados_write_op_omap_cmp2(rados_write_op_t write_op, - const char *key, - uint8_t comparison_operator, - const char *val, - size_t key_len, - size_t val_len, - int *prval) +extern "C" void _rados_write_op_omap_cmp2(rados_write_op_t write_op, + const char *key, + uint8_t comparison_operator, + const char *val, + size_t key_len, + size_t val_len, + int *prval) { tracepoint(librados, rados_write_op_omap_cmp_enter, write_op, key, comparison_operator, val, val_len, prval); rados_c_omap_cmp((::ObjectOperation *)write_op, key, comparison_operator, val, key_len, val_len, prval); tracepoint(librados, rados_write_op_omap_cmp_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_cmp2); -extern "C" void rados_write_op_setxattr(rados_write_op_t write_op, - const char *name, - const char *value, - size_t value_len) +extern "C" void _rados_write_op_setxattr(rados_write_op_t write_op, + const char *name, + const char *value, + size_t value_len) { tracepoint(librados, rados_write_op_setxattr_enter, write_op, name, value, value_len); bufferlist bl; @@ -2904,29 +3178,32 @@ extern "C" void rados_write_op_setxattr(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->setxattr(name, bl); tracepoint(librados, rados_write_op_setxattr_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_setxattr); -extern "C" void rados_write_op_rmxattr(rados_write_op_t write_op, - const char *name) +extern "C" void _rados_write_op_rmxattr(rados_write_op_t write_op, + const char *name) { tracepoint(librados, rados_write_op_rmxattr_enter, write_op, name); ((::ObjectOperation *)write_op)->rmxattr(name); tracepoint(librados, rados_write_op_rmxattr_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_rmxattr); -extern "C" void rados_write_op_create(rados_write_op_t write_op, - int exclusive, - const char* category) // unused +extern "C" void _rados_write_op_create(rados_write_op_t write_op, + int exclusive, + const char* category) // unused { tracepoint(librados, rados_write_op_create_enter, write_op, exclusive); ::ObjectOperation *oo = (::ObjectOperation *) write_op; oo->create(!!exclusive); tracepoint(librados, rados_write_op_create_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_create); -extern "C" void rados_write_op_write(rados_write_op_t write_op, - const char *buffer, - size_t len, - uint64_t offset) +extern "C" void _rados_write_op_write(rados_write_op_t write_op, + const char *buffer, + size_t len, + uint64_t offset) { tracepoint(librados, rados_write_op_write_enter, write_op, buffer, len, offset); bufferlist bl; @@ -2934,10 +3211,11 @@ extern "C" void rados_write_op_write(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->write(offset, bl); tracepoint(librados, rados_write_op_write_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_write); -extern "C" void rados_write_op_write_full(rados_write_op_t write_op, - const char *buffer, - size_t len) +extern "C" void _rados_write_op_write_full(rados_write_op_t write_op, + const char *buffer, + size_t len) { tracepoint(librados, rados_write_op_write_full_enter, write_op, buffer, len); bufferlist bl; @@ -2945,12 +3223,13 @@ extern "C" void rados_write_op_write_full(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->write_full(bl); tracepoint(librados, rados_write_op_write_full_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_write_full); -extern "C" void rados_write_op_writesame(rados_write_op_t write_op, - const char *buffer, - size_t data_len, - size_t write_len, - uint64_t offset) +extern "C" void _rados_write_op_writesame(rados_write_op_t write_op, + const char *buffer, + size_t data_len, + size_t write_len, + uint64_t offset) { tracepoint(librados, rados_write_op_writesame_enter, write_op, buffer, data_len, write_len, offset); bufferlist bl; @@ -2958,10 +3237,11 @@ extern "C" void rados_write_op_writesame(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->writesame(offset, write_len, bl); tracepoint(librados, rados_write_op_writesame_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_writesame); -extern "C" void rados_write_op_append(rados_write_op_t write_op, - const char *buffer, - size_t len) +extern "C" void _rados_write_op_append(rados_write_op_t write_op, + const char *buffer, + size_t len) { tracepoint(librados, rados_write_op_append_enter, write_op, buffer, len); bufferlist bl; @@ -2969,37 +3249,41 @@ extern "C" void rados_write_op_append(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->append(bl); tracepoint(librados, rados_write_op_append_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_append); -extern "C" void rados_write_op_remove(rados_write_op_t write_op) +extern "C" void _rados_write_op_remove(rados_write_op_t write_op) { tracepoint(librados, rados_write_op_remove_enter, write_op); ((::ObjectOperation *)write_op)->remove(); tracepoint(librados, rados_write_op_remove_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_remove); -extern "C" void rados_write_op_truncate(rados_write_op_t write_op, - uint64_t offset) +extern "C" void _rados_write_op_truncate(rados_write_op_t write_op, + uint64_t offset) { tracepoint(librados, rados_write_op_truncate_enter, write_op, offset); ((::ObjectOperation *)write_op)->truncate(offset); tracepoint(librados, rados_write_op_truncate_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_truncate); -extern "C" void rados_write_op_zero(rados_write_op_t write_op, - uint64_t offset, - uint64_t len) +extern "C" void _rados_write_op_zero(rados_write_op_t write_op, + uint64_t offset, + uint64_t len) { tracepoint(librados, rados_write_op_zero_enter, write_op, offset, len); ((::ObjectOperation *)write_op)->zero(offset, len); tracepoint(librados, rados_write_op_zero_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_zero); -extern "C" void rados_write_op_exec(rados_write_op_t write_op, - const char *cls, - const char *method, - const char *in_buf, - size_t in_len, - int *prval) +extern "C" void _rados_write_op_exec(rados_write_op_t write_op, + const char *cls, + const char *method, + const char *in_buf, + size_t in_len, + int *prval) { tracepoint(librados, rados_write_op_exec_enter, write_op, cls, method, in_buf, in_len, prval); bufferlist inbl; @@ -3007,12 +3291,13 @@ extern "C" void rados_write_op_exec(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->call(cls, method, inbl, NULL, NULL, prval); tracepoint(librados, rados_write_op_exec_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_exec); -extern "C" void rados_write_op_omap_set(rados_write_op_t write_op, - char const* const* keys, - char const* const* vals, - const size_t *lens, - size_t num) +extern "C" void _rados_write_op_omap_set(rados_write_op_t write_op, + char const* const* keys, + char const* const* vals, + const size_t *lens, + size_t num) { tracepoint(librados, rados_write_op_omap_set_enter, write_op, num); std::map entries; @@ -3025,13 +3310,14 @@ extern "C" void rados_write_op_omap_set(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->omap_set(entries); tracepoint(librados, rados_write_op_omap_set_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_set); -extern "C" void rados_write_op_omap_set2(rados_write_op_t write_op, - char const* const* keys, - char const* const* vals, - const size_t *key_lens, - const size_t *val_lens, - size_t num) +extern "C" void _rados_write_op_omap_set2(rados_write_op_t write_op, + char const* const* keys, + char const* const* vals, + const size_t *key_lens, + const size_t *val_lens, + size_t num) { tracepoint(librados, rados_write_op_omap_set_enter, write_op, num); std::map entries; @@ -3044,10 +3330,11 @@ extern "C" void rados_write_op_omap_set2(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->omap_set(entries); tracepoint(librados, rados_write_op_omap_set_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_set2); -extern "C" void rados_write_op_omap_rm_keys(rados_write_op_t write_op, - char const* const* keys, - size_t keys_len) +extern "C" void _rados_write_op_omap_rm_keys(rados_write_op_t write_op, + char const* const* keys, + size_t keys_len) { tracepoint(librados, rados_write_op_omap_rm_keys_enter, write_op, keys_len); for(size_t i = 0; i < keys_len; i++) { @@ -3057,11 +3344,12 @@ extern "C" void rados_write_op_omap_rm_keys(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->omap_rm_keys(to_remove); tracepoint(librados, rados_write_op_omap_rm_keys_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_keys); -extern "C" void rados_write_op_omap_rm_keys2(rados_write_op_t write_op, - char const* const* keys, - const size_t* key_lens, - size_t keys_len) +extern "C" void _rados_write_op_omap_rm_keys2(rados_write_op_t write_op, + char const* const* keys, + const size_t* key_lens, + size_t keys_len) { tracepoint(librados, rados_write_op_omap_rm_keys_enter, write_op, keys_len); std::set to_remove; @@ -3071,28 +3359,31 @@ extern "C" void rados_write_op_omap_rm_keys2(rados_write_op_t write_op, ((::ObjectOperation *)write_op)->omap_rm_keys(to_remove); tracepoint(librados, rados_write_op_omap_rm_keys_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_keys2); -extern "C" void rados_write_op_omap_clear(rados_write_op_t write_op) +extern "C" void _rados_write_op_omap_clear(rados_write_op_t write_op) { tracepoint(librados, rados_write_op_omap_clear_enter, write_op); ((::ObjectOperation *)write_op)->omap_clear(); tracepoint(librados, rados_write_op_omap_clear_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_clear); -extern "C" void rados_write_op_set_alloc_hint(rados_write_op_t write_op, - uint64_t expected_object_size, - uint64_t expected_write_size) +extern "C" void _rados_write_op_set_alloc_hint(rados_write_op_t write_op, + uint64_t expected_object_size, + uint64_t expected_write_size) { tracepoint(librados, rados_write_op_set_alloc_hint_enter, write_op, expected_object_size, expected_write_size); ((::ObjectOperation *)write_op)->set_alloc_hint(expected_object_size, expected_write_size, 0); tracepoint(librados, rados_write_op_set_alloc_hint_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_set_alloc_hint); -extern "C" void rados_write_op_set_alloc_hint2(rados_write_op_t write_op, - uint64_t expected_object_size, - uint64_t expected_write_size, - uint32_t flags) +extern "C" void _rados_write_op_set_alloc_hint2(rados_write_op_t write_op, + uint64_t expected_object_size, + uint64_t expected_write_size, + uint32_t flags) { tracepoint(librados, rados_write_op_set_alloc_hint2_enter, write_op, expected_object_size, expected_write_size, flags); ((::ObjectOperation *)write_op)->set_alloc_hint(expected_object_size, @@ -3100,12 +3391,13 @@ extern "C" void rados_write_op_set_alloc_hint2(rados_write_op_t write_op, flags); tracepoint(librados, rados_write_op_set_alloc_hint2_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_set_alloc_hint2); -extern "C" int rados_write_op_operate(rados_write_op_t write_op, - rados_ioctx_t io, - const char *oid, - time_t *mtime, - int flags) +extern "C" int _rados_write_op_operate(rados_write_op_t write_op, + rados_ioctx_t io, + const char *oid, + time_t *mtime, + int flags) { tracepoint(librados, rados_write_op_operate_enter, write_op, io, oid, mtime, flags); object_t obj(oid); @@ -3124,12 +3416,13 @@ extern "C" int rados_write_op_operate(rados_write_op_t write_op, tracepoint(librados, rados_write_op_operate_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_operate); -extern "C" int rados_write_op_operate2(rados_write_op_t write_op, - rados_ioctx_t io, - const char *oid, - struct timespec *ts, - int flags) +extern "C" int _rados_write_op_operate2(rados_write_op_t write_op, + rados_ioctx_t io, + const char *oid, + struct timespec *ts, + int flags) { tracepoint(librados, rados_write_op_operate2_enter, write_op, io, oid, ts, flags); object_t obj(oid); @@ -3148,13 +3441,14 @@ extern "C" int rados_write_op_operate2(rados_write_op_t write_op, tracepoint(librados, rados_write_op_operate_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_operate2); -extern "C" int rados_aio_write_op_operate(rados_write_op_t write_op, - rados_ioctx_t io, - rados_completion_t completion, - const char *oid, - time_t *mtime, - int flags) +extern "C" int _rados_aio_write_op_operate(rados_write_op_t write_op, + rados_ioctx_t io, + rados_completion_t completion, + const char *oid, + time_t *mtime, + int flags) { tracepoint(librados, rados_aio_write_op_operate_enter, write_op, io, completion, oid, mtime, flags); object_t obj(oid); @@ -3165,60 +3459,67 @@ extern "C" int rados_aio_write_op_operate(rados_write_op_t write_op, tracepoint(librados, rados_aio_write_op_operate_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_write_op_operate); -extern "C" rados_read_op_t rados_create_read_op() +extern "C" rados_read_op_t _rados_create_read_op() { tracepoint(librados, rados_create_read_op_enter); rados_read_op_t retval = new (std::nothrow)::ObjectOperation; tracepoint(librados, rados_create_read_op_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_create_read_op); -extern "C" void rados_release_read_op(rados_read_op_t read_op) +extern "C" void _rados_release_read_op(rados_read_op_t read_op) { tracepoint(librados, rados_release_read_op_enter, read_op); delete (::ObjectOperation *)read_op; tracepoint(librados, rados_release_read_op_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_release_read_op); -extern "C" void rados_read_op_set_flags(rados_read_op_t read_op, int flags) +extern "C" void _rados_read_op_set_flags(rados_read_op_t read_op, int flags) { tracepoint(librados, rados_read_op_set_flags_enter, read_op, flags); ((::ObjectOperation *)read_op)->set_last_op_flags(get_op_flags(flags)); tracepoint(librados, rados_read_op_set_flags_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_set_flags); -extern "C" void rados_read_op_assert_version(rados_read_op_t read_op, uint64_t ver) +extern "C" void _rados_read_op_assert_version(rados_read_op_t read_op, uint64_t ver) { tracepoint(librados, rados_read_op_assert_version_enter, read_op, ver); ((::ObjectOperation *)read_op)->assert_version(ver); tracepoint(librados, rados_read_op_assert_version_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_assert_version); -extern "C" void rados_read_op_assert_exists(rados_read_op_t read_op) +extern "C" void _rados_read_op_assert_exists(rados_read_op_t read_op) { tracepoint(librados, rados_read_op_assert_exists_enter, read_op); ((::ObjectOperation *)read_op)->stat(NULL, (ceph::real_time *)NULL, NULL); tracepoint(librados, rados_read_op_assert_exists_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_assert_exists); -extern "C" void rados_read_op_cmpext(rados_read_op_t read_op, - const char *cmp_buf, - size_t cmp_len, - uint64_t off, - int *prval) +extern "C" void _rados_read_op_cmpext(rados_read_op_t read_op, + const char *cmp_buf, + size_t cmp_len, + uint64_t off, + int *prval) { tracepoint(librados, rados_read_op_cmpext_enter, read_op, cmp_buf, cmp_len, off, prval); ((::ObjectOperation *)read_op)->cmpext(off, cmp_len, cmp_buf, prval); tracepoint(librados, rados_read_op_cmpext_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_cmpext); -extern "C" void rados_read_op_cmpxattr(rados_read_op_t read_op, - const char *name, - uint8_t comparison_operator, - const char *value, - size_t value_len) +extern "C" void _rados_read_op_cmpxattr(rados_read_op_t read_op, + const char *name, + uint8_t comparison_operator, + const char *value, + size_t value_len) { tracepoint(librados, rados_read_op_cmpxattr_enter, read_op, name, comparison_operator, value, value_len); bufferlist bl; @@ -3229,43 +3530,47 @@ extern "C" void rados_read_op_cmpxattr(rados_read_op_t read_op, bl); tracepoint(librados, rados_read_op_cmpxattr_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_cmpxattr); -extern "C" void rados_read_op_omap_cmp(rados_read_op_t read_op, - const char *key, - uint8_t comparison_operator, - const char *val, - size_t val_len, - int *prval) +extern "C" void _rados_read_op_omap_cmp(rados_read_op_t read_op, + const char *key, + uint8_t comparison_operator, + const char *val, + size_t val_len, + int *prval) { tracepoint(librados, rados_read_op_omap_cmp_enter, read_op, key, comparison_operator, val, val_len, prval); rados_c_omap_cmp((::ObjectOperation *)read_op, key, comparison_operator, val, strlen(key), val_len, prval); tracepoint(librados, rados_read_op_omap_cmp_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_cmp); -extern "C" void rados_read_op_omap_cmp2(rados_read_op_t read_op, - const char *key, - uint8_t comparison_operator, - const char *val, - size_t key_len, - size_t val_len, - int *prval) +extern "C" void _rados_read_op_omap_cmp2(rados_read_op_t read_op, + const char *key, + uint8_t comparison_operator, + const char *val, + size_t key_len, + size_t val_len, + int *prval) { tracepoint(librados, rados_read_op_omap_cmp_enter, read_op, key, comparison_operator, val, val_len, prval); rados_c_omap_cmp((::ObjectOperation *)read_op, key, comparison_operator, val, key_len, val_len, prval); tracepoint(librados, rados_read_op_omap_cmp_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_cmp2); -extern "C" void rados_read_op_stat(rados_read_op_t read_op, - uint64_t *psize, - time_t *pmtime, - int *prval) +extern "C" void _rados_read_op_stat(rados_read_op_t read_op, + uint64_t *psize, + time_t *pmtime, + int *prval) { tracepoint(librados, rados_read_op_stat_enter, read_op, psize, pmtime, prval); ((::ObjectOperation *)read_op)->stat(psize, pmtime, prval); tracepoint(librados, rados_read_op_stat_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_stat); class C_bl_to_buf : public Context { char *out_buf; @@ -3294,12 +3599,12 @@ public: } }; -extern "C" void rados_read_op_read(rados_read_op_t read_op, - uint64_t offset, - size_t len, - char *buf, - size_t *bytes_read, - int *prval) +extern "C" void _rados_read_op_read(rados_read_op_t read_op, + uint64_t offset, + size_t len, + char *buf, + size_t *bytes_read, + int *prval) { tracepoint(librados, rados_read_op_read_enter, read_op, offset, len, buf, bytes_read, prval); C_bl_to_buf *ctx = new C_bl_to_buf(buf, len, bytes_read, prval); @@ -3307,14 +3612,15 @@ extern "C" void rados_read_op_read(rados_read_op_t read_op, ((::ObjectOperation *)read_op)->read(offset, len, &ctx->out_bl, prval, ctx); tracepoint(librados, rados_read_op_read_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_read); -extern "C" void rados_read_op_checksum(rados_read_op_t read_op, - rados_checksum_type_t type, - const char *init_value, - size_t init_value_len, - uint64_t offset, size_t len, - size_t chunk_size, char *pchecksum, - size_t checksum_len, int *prval) +extern "C" void _rados_read_op_checksum(rados_read_op_t read_op, + rados_checksum_type_t type, + const char *init_value, + size_t init_value_len, + uint64_t offset, size_t len, + size_t chunk_size, char *pchecksum, + size_t checksum_len, int *prval) { tracepoint(librados, rados_read_op_checksum_enter, read_op, type, init_value, init_value_len, offset, len, chunk_size); @@ -3332,6 +3638,7 @@ extern "C" void rados_read_op_checksum(rados_read_op_t read_op, prval, ctx); tracepoint(librados, rados_read_op_checksum_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_checksum); class C_out_buffer : public Context { char **out_buf; @@ -3347,14 +3654,14 @@ public: } }; -extern "C" void rados_read_op_exec(rados_read_op_t read_op, - const char *cls, - const char *method, - const char *in_buf, - size_t in_len, - char **out_buf, - size_t *out_len, - int *prval) +extern "C" void _rados_read_op_exec(rados_read_op_t read_op, + const char *cls, + const char *method, + const char *in_buf, + size_t in_len, + char **out_buf, + size_t *out_len, + int *prval) { tracepoint(librados, rados_read_op_exec_enter, read_op, cls, method, in_buf, in_len, out_buf, out_len, prval); bufferlist inbl; @@ -3364,16 +3671,17 @@ extern "C" void rados_read_op_exec(rados_read_op_t read_op, prval); tracepoint(librados, rados_read_op_exec_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_exec); -extern "C" void rados_read_op_exec_user_buf(rados_read_op_t read_op, - const char *cls, - const char *method, - const char *in_buf, - size_t in_len, - char *out_buf, - size_t out_len, - size_t *used_len, - int *prval) +extern "C" void _rados_read_op_exec_user_buf(rados_read_op_t read_op, + const char *cls, + const char *method, + const char *in_buf, + size_t in_len, + char *out_buf, + size_t out_len, + size_t *used_len, + int *prval) { tracepoint(librados, rados_read_op_exec_user_buf_enter, read_op, cls, method, in_buf, in_len, out_buf, out_len, used_len, prval); C_bl_to_buf *ctx = new C_bl_to_buf(out_buf, out_len, used_len, prval); @@ -3383,6 +3691,7 @@ extern "C" void rados_read_op_exec_user_buf(rados_read_op_t read_op, prval); tracepoint(librados, rados_read_op_exec_user_buf_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_exec_user_buf); struct RadosOmapIter { std::map values; @@ -3407,9 +3716,9 @@ public: } }; -extern "C" void rados_read_op_getxattrs(rados_read_op_t read_op, - rados_xattrs_iter_t *iter, - int *prval) +extern "C" void _rados_read_op_getxattrs(rados_read_op_t read_op, + rados_xattrs_iter_t *iter, + int *prval) { tracepoint(librados, rados_read_op_getxattrs_enter, read_op, prval); librados::RadosXattrsIter *xattrs_iter = new librados::RadosXattrsIter; @@ -3418,13 +3727,14 @@ extern "C" void rados_read_op_getxattrs(rados_read_op_t read_op, *iter = xattrs_iter; tracepoint(librados, rados_read_op_getxattrs_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_getxattrs); -extern "C" void rados_read_op_omap_get_vals(rados_read_op_t read_op, - const char *start_after, - const char *filter_prefix, - uint64_t max_return, - rados_omap_iter_t *iter, - int *prval) +extern "C" void _rados_read_op_omap_get_vals(rados_read_op_t read_op, + const char *start_after, + const char *filter_prefix, + uint64_t max_return, + rados_omap_iter_t *iter, + int *prval) { tracepoint(librados, rados_read_op_omap_get_vals_enter, read_op, start_after, filter_prefix, max_return, prval); RadosOmapIter *omap_iter = new RadosOmapIter; @@ -3441,14 +3751,15 @@ extern "C" void rados_read_op_omap_get_vals(rados_read_op_t read_op, *iter = omap_iter; tracepoint(librados, rados_read_op_omap_get_vals_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_vals); -extern "C" void rados_read_op_omap_get_vals2(rados_read_op_t read_op, - const char *start_after, - const char *filter_prefix, - uint64_t max_return, - rados_omap_iter_t *iter, - unsigned char *pmore, - int *prval) +extern "C" void _rados_read_op_omap_get_vals2(rados_read_op_t read_op, + const char *start_after, + const char *filter_prefix, + uint64_t max_return, + rados_omap_iter_t *iter, + unsigned char *pmore, + int *prval) { tracepoint(librados, rados_read_op_omap_get_vals_enter, read_op, start_after, filter_prefix, max_return, prval); RadosOmapIter *omap_iter = new RadosOmapIter; @@ -3465,6 +3776,7 @@ extern "C" void rados_read_op_omap_get_vals2(rados_read_op_t read_op, *iter = omap_iter; tracepoint(librados, rados_read_op_omap_get_vals_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_vals2); struct C_OmapKeysIter : public Context { RadosOmapIter *iter; @@ -3480,11 +3792,11 @@ struct C_OmapKeysIter : public Context { } }; -extern "C" void rados_read_op_omap_get_keys(rados_read_op_t read_op, - const char *start_after, - uint64_t max_return, - rados_omap_iter_t *iter, - int *prval) +extern "C" void _rados_read_op_omap_get_keys(rados_read_op_t read_op, + const char *start_after, + uint64_t max_return, + rados_omap_iter_t *iter, + int *prval) { tracepoint(librados, rados_read_op_omap_get_keys_enter, read_op, start_after, max_return, prval); RadosOmapIter *omap_iter = new RadosOmapIter; @@ -3496,13 +3808,14 @@ extern "C" void rados_read_op_omap_get_keys(rados_read_op_t read_op, *iter = omap_iter; tracepoint(librados, rados_read_op_omap_get_keys_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_keys); -extern "C" void rados_read_op_omap_get_keys2(rados_read_op_t read_op, - const char *start_after, - uint64_t max_return, - rados_omap_iter_t *iter, - unsigned char *pmore, - int *prval) +extern "C" void _rados_read_op_omap_get_keys2(rados_read_op_t read_op, + const char *start_after, + uint64_t max_return, + rados_omap_iter_t *iter, + unsigned char *pmore, + int *prval) { tracepoint(librados, rados_read_op_omap_get_keys_enter, read_op, start_after, max_return, prval); RadosOmapIter *omap_iter = new RadosOmapIter; @@ -3515,11 +3828,12 @@ extern "C" void rados_read_op_omap_get_keys2(rados_read_op_t read_op, *iter = omap_iter; tracepoint(librados, rados_read_op_omap_get_keys_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_keys2); static void internal_rados_read_op_omap_get_vals_by_keys(rados_read_op_t read_op, - set& to_get, - rados_omap_iter_t *iter, - int *prval) + set& to_get, + rados_omap_iter_t *iter, + int *prval) { RadosOmapIter *omap_iter = new RadosOmapIter; ((::ObjectOperation *)read_op)->omap_get_vals_by_keys(to_get, @@ -3529,24 +3843,25 @@ static void internal_rados_read_op_omap_get_vals_by_keys(rados_read_op_t read_op *iter = omap_iter; } -extern "C" void rados_read_op_omap_get_vals_by_keys(rados_read_op_t read_op, - char const* const* keys, - size_t keys_len, - rados_omap_iter_t *iter, - int *prval) +extern "C" void _rados_read_op_omap_get_vals_by_keys(rados_read_op_t read_op, + char const* const* keys, + size_t keys_len, + rados_omap_iter_t *iter, + int *prval) { tracepoint(librados, rados_read_op_omap_get_vals_by_keys_enter, read_op, keys, keys_len, iter, prval); std::set to_get(keys, keys + keys_len); internal_rados_read_op_omap_get_vals_by_keys(read_op, to_get, iter, prval); tracepoint(librados, rados_read_op_omap_get_vals_by_keys_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_vals_by_keys); -extern "C" void rados_read_op_omap_get_vals_by_keys2(rados_read_op_t read_op, - char const* const* keys, - size_t num_keys, - const size_t* key_lens, - rados_omap_iter_t *iter, - int *prval) +extern "C" void _rados_read_op_omap_get_vals_by_keys2(rados_read_op_t read_op, + char const* const* keys, + size_t num_keys, + const size_t* key_lens, + rados_omap_iter_t *iter, + int *prval) { tracepoint(librados, rados_read_op_omap_get_vals_by_keys_enter, read_op, keys, num_keys, iter, prval); std::set to_get; @@ -3556,20 +3871,13 @@ extern "C" void rados_read_op_omap_get_vals_by_keys2(rados_read_op_t read_op, internal_rados_read_op_omap_get_vals_by_keys(read_op, to_get, iter, prval); tracepoint(librados, rados_read_op_omap_get_vals_by_keys_exit, *iter); } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_omap_get_vals_by_keys2); -extern "C" int rados_omap_get_next(rados_omap_iter_t iter, - char **key, - char **val, - size_t *len) -{ - return rados_omap_get_next2(iter, key, val, nullptr, len); -} - -extern "C" int rados_omap_get_next2(rados_omap_iter_t iter, - char **key, - char **val, - size_t *key_len, - size_t *val_len) +extern "C" int _rados_omap_get_next2(rados_omap_iter_t iter, + char **key, + char **val, + size_t *key_len, + size_t *val_len) { tracepoint(librados, rados_omap_get_next_enter, iter); RadosOmapIter *it = static_cast(iter); @@ -3597,25 +3905,37 @@ extern "C" int rados_omap_get_next2(rados_omap_iter_t iter, tracepoint(librados, rados_omap_get_next_exit, 0, key, val, val_len); return 0; } +LIBRADOS_C_API_BASE_DEFAULT(rados_omap_get_next2); + +extern "C" int _rados_omap_get_next(rados_omap_iter_t iter, + char **key, + char **val, + size_t *len) +{ + return _rados_omap_get_next2(iter, key, val, nullptr, len); +} +LIBRADOS_C_API_BASE_DEFAULT(rados_omap_get_next); -extern "C" unsigned int rados_omap_iter_size(rados_omap_iter_t iter) +extern "C" unsigned int _rados_omap_iter_size(rados_omap_iter_t iter) { RadosOmapIter *it = static_cast(iter); return it->values.size(); } +LIBRADOS_C_API_BASE_DEFAULT(rados_omap_iter_size); -extern "C" void rados_omap_get_end(rados_omap_iter_t iter) +extern "C" void _rados_omap_get_end(rados_omap_iter_t iter) { tracepoint(librados, rados_omap_get_end_enter, iter); RadosOmapIter *it = static_cast(iter); delete it; tracepoint(librados, rados_omap_get_end_exit); } +LIBRADOS_C_API_BASE_DEFAULT(rados_omap_get_end); -extern "C" int rados_read_op_operate(rados_read_op_t read_op, - rados_ioctx_t io, - const char *oid, - int flags) +extern "C" int _rados_read_op_operate(rados_read_op_t read_op, + rados_ioctx_t io, + const char *oid, + int flags) { tracepoint(librados, rados_read_op_operate_enter, read_op, io, oid, flags); object_t obj(oid); @@ -3625,12 +3945,13 @@ extern "C" int rados_read_op_operate(rados_read_op_t read_op, tracepoint(librados, rados_read_op_operate_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_read_op_operate); -extern "C" int rados_aio_read_op_operate(rados_read_op_t read_op, - rados_ioctx_t io, - rados_completion_t completion, - const char *oid, - int flags) +extern "C" int _rados_aio_read_op_operate(rados_read_op_t read_op, + rados_ioctx_t io, + rados_completion_t completion, + const char *oid, + int flags) { tracepoint(librados, rados_aio_read_op_operate_enter, read_op, io, completion, oid, flags); object_t obj(oid); @@ -3641,8 +3962,9 @@ extern "C" int rados_aio_read_op_operate(rados_read_op_t read_op, tracepoint(librados, rados_aio_read_op_operate_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_aio_read_op_operate); -extern "C" int rados_cache_pin(rados_ioctx_t io, const char *o) +extern "C" int _rados_cache_pin(rados_ioctx_t io, const char *o) { tracepoint(librados, rados_cache_pin_enter, io, o); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -3651,8 +3973,9 @@ extern "C" int rados_cache_pin(rados_ioctx_t io, const char *o) tracepoint(librados, rados_cache_pin_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cache_pin); -extern "C" int rados_cache_unpin(rados_ioctx_t io, const char *o) +extern "C" int _rados_cache_unpin(rados_ioctx_t io, const char *o) { tracepoint(librados, rados_cache_unpin_enter, io, o); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -3661,8 +3984,9 @@ extern "C" int rados_cache_unpin(rados_ioctx_t io, const char *o) tracepoint(librados, rados_cache_unpin_exit, retval); return retval; } +LIBRADOS_C_API_BASE_DEFAULT(rados_cache_unpin); -CEPH_RADOS_API void rados_object_list_slice( +extern "C" void _rados_object_list_slice( rados_ioctx_t io, const rados_object_list_cursor start, const rados_object_list_cursor finish, @@ -3690,3 +4014,4 @@ CEPH_RADOS_API void rados_object_list_slice( split_start_hobj, split_finish_hobj); } +LIBRADOS_C_API_BASE_DEFAULT(rados_object_list_slice); diff --git a/src/librados/librados_c.h b/src/librados/librados_c.h new file mode 100644 index 00000000000..33381d51897 --- /dev/null +++ b/src/librados/librados_c.h @@ -0,0 +1,29 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#ifndef LIBRADOS_C_H +#define LIBRADOS_C_H + +#include "include/types.h" +#include "include/rados/librados.h" + +namespace __librados_base { + +struct rados_pool_stat_t { + uint64_t num_bytes; + uint64_t num_kb; + uint64_t num_objects; + uint64_t num_object_clones; + uint64_t num_object_copies; + uint64_t num_objects_missing_on_primary; + uint64_t num_objects_unfound; + uint64_t num_objects_degraded; + uint64_t num_rd; + uint64_t num_rd_kb; + uint64_t num_wr; + uint64_t num_wr_kb; +}; + +} // namespace __librados_base + +#endif // LIBRADOS_C_H