build: compile API functions with missing deps

We should always build all function that are part of the API, even if
some of the libraries they depend on are missing.  In that case, they
can return an error instead.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I72b450b3a1d62e222bd843e45be547d926414775
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15414
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Konrad Sztyber 2022-11-10 16:32:42 +01:00 committed by Tomasz Zawadzki
parent 5e911c0c06
commit 86ba16c39c
4 changed files with 55 additions and 4 deletions

View File

@ -47,7 +47,6 @@ void spdk_blobfs_bdev_detect(const char *bdev_name,
void spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz, void spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg); spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg);
#ifdef SPDK_CONFIG_FUSE
/** /**
* Mount a blobfs on given device to a host path by FUSE * Mount a blobfs on given device to a host path by FUSE
* *
@ -61,7 +60,6 @@ void spdk_blobfs_bdev_create(const char *bdev_name, uint32_t cluster_sz,
*/ */
void spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint, void spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg); spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -13,12 +13,12 @@ C_SRCS = nvme_ctrlr_cmd.c nvme_ctrlr.c nvme_fabric.c nvme_ns_cmd.c \
nvme_ns.c nvme_pcie_common.c nvme_pcie.c nvme_qpair.c nvme.c \ nvme_ns.c nvme_pcie_common.c nvme_pcie.c nvme_qpair.c nvme.c \
nvme_quirks.c nvme_transport.c nvme_discovery.c \ nvme_quirks.c nvme_transport.c nvme_discovery.c \
nvme_ctrlr_ocssd_cmd.c nvme_ns_ocssd_cmd.c nvme_tcp.c \ nvme_ctrlr_ocssd_cmd.c nvme_ns_ocssd_cmd.c nvme_tcp.c \
nvme_opal.c nvme_io_msg.c nvme_poll_group.c nvme_zns.c nvme_opal.c nvme_io_msg.c nvme_poll_group.c nvme_zns.c \
nvme_cuse.c
ifeq ($(OS),Linux) ifeq ($(OS),Linux)
C_SRCS += nvme_vfio_user.c C_SRCS += nvme_vfio_user.c
endif endif
C_SRCS-$(CONFIG_RDMA) += nvme_rdma.c C_SRCS-$(CONFIG_RDMA) += nvme_rdma.c
C_SRCS-$(CONFIG_NVME_CUSE) += nvme_cuse.c
LIBNAME = nvme LIBNAME = nvme
LOCAL_SYS_LIBS = LOCAL_SYS_LIBS =

View File

@ -2,7 +2,12 @@
* Copyright (C) 2019 Intel Corporation. * Copyright (C) 2019 Intel Corporation.
* All rights reserved. * All rights reserved.
*/ */
#include "spdk/stdinc.h"
#include "spdk/config.h"
#include "spdk/log.h"
#include "spdk/nvme.h"
#ifdef SPDK_CONFIG_NVME_CUSE
#define FUSE_USE_VERSION 31 #define FUSE_USE_VERSION 31
#include <fuse3/cuse_lowlevel.h> #include <fuse3/cuse_lowlevel.h>
@ -1345,3 +1350,41 @@ spdk_nvme_cuse_get_ns_name(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, char *n
} }
SPDK_LOG_REGISTER_COMPONENT(nvme_cuse) SPDK_LOG_REGISTER_COMPONENT(nvme_cuse)
#else /* SPDK_CONFIG_NVME_CUSE */
int
spdk_nvme_cuse_get_ctrlr_name(struct spdk_nvme_ctrlr *ctrlr, char *name, size_t *size)
{
SPDK_ERRLOG("spdk_nvme_cuse_get_ctrlr_name() is unsupported\n");
return -ENOTSUP;
}
int
spdk_nvme_cuse_get_ns_name(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, char *name, size_t *size)
{
SPDK_ERRLOG("spdk_nvme_cuse_get_ns_name() is unsupported\n");
return -ENOTSUP;
}
int
spdk_nvme_cuse_register(struct spdk_nvme_ctrlr *ctrlr)
{
SPDK_ERRLOG("spdk_nvme_cuse_register() is unsupported\n");
return -ENOTSUP;
}
int
spdk_nvme_cuse_unregister(struct spdk_nvme_ctrlr *ctrlr)
{
SPDK_ERRLOG("spdk_nvme_cuse_unregister() is unsupported\n");
return -ENOTSUP;
}
void
spdk_nvme_cuse_update_namespaces(struct spdk_nvme_ctrlr *ctrlr)
{
SPDK_ERRLOG("spdk_nvme_cuse_update_namespaces() is unsupported\n");
}
#endif

View File

@ -297,4 +297,14 @@ invalid:
cb_fn(cb_arg, rc); cb_fn(cb_arg, rc);
} }
#else /* SPDK_CONFIG_FUSE */
void
spdk_blobfs_bdev_mount(const char *bdev_name, const char *mountpoint,
spdk_blobfs_bdev_op_complete cb_fn, void *cb_arg)
{
SPDK_ERRLOG("spdk_blobfs_bdev_mount() is unsupported\n");
cb_fn(cb_arg, -ENOTSUP);
}
#endif #endif