From: Tomas Bzatek Date: Tue, 10 Oct 2023 16:16:24 +0000 (+0200) Subject: util: Introduce alloc helper with alignment support X-Git-Tag: v1.7~57 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a2b8e52e46cfd888ac5a48d8ce632bd70a5caa93;p=users%2Fsagi%2Flibnvme.git util: Introduce alloc helper with alignment support Similar to nvme-cli an alloc helper is needed for a couple of ioctls sent out during tree scan. Signed-off-by: Tomas Bzatek --- diff --git a/src/nvme/private.h b/src/nvme/private.h index 6fb9784a..ee9d738b 100644 --- a/src/nvme/private.h +++ b/src/nvme/private.h @@ -182,6 +182,8 @@ nvme_ctrl_t __nvme_lookup_ctrl(nvme_subsystem_t s, const char *transport, const char *host_iface, const char *trsvcid, const char *subsysnqn, nvme_ctrl_t p); +void *__nvme_alloc(size_t len); + #if (LOG_FUNCNAME == 1) #define __nvme_log_func __func__ #else diff --git a/src/nvme/util.c b/src/nvme/util.c index 8fe094d5..20679685 100644 --- a/src/nvme/util.c +++ b/src/nvme/util.c @@ -7,6 +7,7 @@ * Chaitanya Kulkarni */ +#include #include #include #include @@ -1058,3 +1059,15 @@ bool nvme_iface_primary_addr_matches(const struct ifaddrs *iface_list, const cha } #endif /* HAVE_NETDB */ + +void *__nvme_alloc(size_t len) +{ + size_t _len = round_up(len, 0x1000); + void *p; + + if (posix_memalign((void *)&p, getpagesize(), _len)) + return NULL; + + memset(p, 0, _len); + return p; +}