]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
types: remove endian/mmio helpers
authorKlaus Jensen <k.jensen@samsung.com>
Wed, 29 Sep 2021 19:07:41 +0000 (21:07 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Tue, 19 Oct 2021 20:32:54 +0000 (22:32 +0200)
The endian/mmio helpers do not belong in types.h.

Since we are already using ccan and have ccan/endian available, just
include that where needed. The implementation is 100% equivalent, even
with sparse annotations.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
15 files changed:
examples/Makefile
examples/discover-loop.c
examples/meson.build
examples/telemetry-listen.c
src/nvme/fabrics.c
src/nvme/ioctl.c
src/nvme/linux.c
src/nvme/tree.c
src/nvme/types.h
src/nvme/util.c
test/Makefile
test/meson.build
test/register.c
test/test.c
test/zns.c

index 7e3109851d3281fdd99452fe89433d81c2e4b37e..db06f38656fc9b5992b324a08fdef566b51f831d 100644 (file)
@@ -1,5 +1,5 @@
 CFLAGS ?= -g -O2
-override CFLAGS += -Wall -D_GNU_SOURCE -I ../src -L ../src
+override CFLAGS += -Wall -D_GNU_SOURCE -I ../src -L ../src -I../ccan
 
 include ../Makefile.quiet
 
index 599edd205719efa3bb4c1e157452db79007a73d6..c2a2385080e3546fa5e6bd008fdaaefe630c94b4 100644 (file)
@@ -18,6 +18,8 @@
 #include <errno.h>
 #include <libnvme.h>
 
+#include <ccan/endian/endian.h>
+
 static void print_discover_log(struct nvmf_discovery_log *log)
 {
        int i, numrec = le64_to_cpu(log->numrec);
index 0bf911d59753c1b40dd6db349c892ae5ceb839f9..54ebbdac9fef197a9047995c7901abf21945d706 100644 (file)
@@ -7,7 +7,7 @@
 #
 executable(
     'telemetry-listen',
-    ['telemetry-listen.c'],
+    ['telemetry-listen.c', ccan_config_h],
     link_with: libnvme,
     include_directories: incdir)
 
@@ -19,7 +19,7 @@ executable(
 
 executable(
     'discover-loop',
-    ['discover-loop.c'],
+    ['discover-loop.c', ccan_config_h],
     link_with: libnvme,
     include_directories: incdir)
 
index 374ffa4dbb4ab1ce97939d329d0c6deae3cdbd26..d3dcfb0b82c41437c41d67664b7a1c10e385bae0 100644 (file)
@@ -20,6 +20,8 @@
 #include <time.h>
 #include <libnvme.h>
 
+#include <ccan/endian/endian.h>
+
 struct events {
        nvme_ctrl_t c;
        int uevent_fd;
index d96f09e97e9daeb612e1a670d2c1698c970e9ebe..94cecd0614915b8a196c7199838a82cb603a3591 100644 (file)
@@ -25,6 +25,7 @@
 #include <netdb.h>
 #include <net/if.h>
 
+#include <ccan/endian/endian.h>
 #include <ccan/list/list.h>
 #include <ccan/array_size/array_size.h>
 
index 8fbed4402516238410cf1f9678a9c98f11b804ca..5e8066cf91da915c486d9335ec8560f78873f33f 100644 (file)
@@ -18,6 +18,7 @@
 #include <sys/stat.h>
 
 #include <ccan/build_assert/build_assert.h>
+#include <ccan/endian/endian.h>
 
 #include "ioctl.h"
 #include "util.h"
index 90b9b5cef70ec9a6d28e0e40b016123f9840bd03..f7668ac6f87ac1df1e919b1708e015e28877f2dd 100644 (file)
@@ -17,6 +17,8 @@
 #include <fcntl.h>
 #include <unistd.h>
 
+#include <ccan/endian/endian.h>
+
 #include "linux.h"
 #include "tree.h"
 #include "log.h"
index 552496d800d72c30af1a21746b9c5503d833358c..0f72320f17bf9d55aadbd73321d300dce3adea42 100644 (file)
@@ -21,7 +21,9 @@
 #include <arpa/inet.h>
 #include <netdb.h>
 
+#include <ccan/endian/endian.h>
 #include <ccan/list/list.h>
+
 #include "ioctl.h"
 #include "linux.h"
 #include "filters.h"
index 6b0b14716ee6d2bbdc05b163cfde75f367bd5245..5e5936e9f7444dcff0c2eaa1fd61bb77b199fb05 100644 (file)
 #ifndef _LIBNVME_TYPES_H
 #define _LIBNVME_TYPES_H
 
-#include <endian.h>
 #include <stdbool.h>
 #include <stdint.h>
 
 #include <linux/types.h>
 
-#ifdef __CHECKER__
-#define __force       __attribute__((force))
-#else
-#define __force
-#endif
-
 /**
  * NVME_GET() - extract field from complex value
  * @value: The original value of a complex field
 #define NVME_SET(value, name) \
        (((value) & NVME_##name##_MASK) << NVME_##name##_SHIFT)
 
-/**
- * cpu_to_le16() -
- * @x: 16-bit CPU value to turn to little endian.
- */
-static inline __le16 cpu_to_le16(uint16_t x)
-{
-       return (__force __le16)htole16(x);
-}
-
-/**
- * cpu_to_le32() -
- * @x: 32-bit CPU value to turn little endian.
- */
-static inline __le32 cpu_to_le32(uint32_t x)
-{
-       return (__force __le32)htole32(x);
-}
-
-/**
- * cpu_to_le64() -
- * @x: 64-bit CPU value to turn little endian.
- */
-static inline __le64 cpu_to_le64(uint64_t x)
-{
-       return (__force __le64)htole64(x);
-}
-
-/**
- * le16_to_cpu() -
- * @x: 16-bit little endian value to turn to CPU.
- */
-static inline uint16_t le16_to_cpu(__le16 x)
-{
-       return le16toh((__force __u16)x);
-}
-
-/**
- * le32_to_cpu() -
- * @x: 32-bit little endian value to turn to CPU.
- */
-static inline uint32_t le32_to_cpu(__le32 x)
-{
-       return le32toh((__force __u32)x);
-}
-
-/**
- * le64_to_cpu() -
- * @x: 64-bit little endian value to turn to CPU.
- */
-static inline uint64_t le64_to_cpu(__le64 x)
-{
-       return le64toh((__force __u64)x);
-}
-
 /**
  * enum nvme_constants - A place to stash various constant nvme values
  * @NVME_NSID_ALL:             A broadcast value that is used to specify all
@@ -251,24 +190,6 @@ static inline bool nvme_is_64bit_reg(__u32 offset)
        }
 }
 
-static inline uint32_t nvme_mmio_read32(volatile void *addr)
-{
-        uint32_t *p = (__le32 *)addr;
-
-        return le32_to_cpu(*p);
-}
-
-static inline uint64_t nvme_mmio_read64(volatile void *addr)
-{
-        volatile __u32 *p = (__u32 *)addr;
-        uint32_t low, high;
-
-        low = nvme_mmio_read32(p);
-        high = nvme_mmio_read32(p + 1);
-
-        return low + ((uint64_t)high << 32);
-}
-
 enum nvme_cap {
        NVME_CAP_MQES_SHIFT             = 0,
        NVME_CAP_CQR_SHIFT              = 16,
index 3fd78490fa8d1f685dfe76483928a39b61a861ba..dab6c02b2dd673a4eb6744b41ba0ac0861c8a7d7 100644 (file)
@@ -12,6 +12,8 @@
 
 #include <sys/types.h>
 
+#include <ccan/endian/endian.h>
+
 #include "util.h"
 
 static inline __u8 nvme_generic_status_to_errno(__u16 status)
index 0c4eb361b118d9470f1d191980fde4191ca650a6..b7fc2b8bbdd9be1d025999eb80fb27919e6d6ae2 100644 (file)
@@ -1,5 +1,5 @@
 CFLAGS ?= -g -O2
-override CFLAGS += -Wall -D_GNU_SOURCE -L../src/ -I../src/
+override CFLAGS += -Wall -D_GNU_SOURCE -L../src/ -I../src/ -I../ccan
 
 include ../Makefile.quiet
 
index e89d877831826290724514cdf00891d1bc97b0fe..6b776aa4d2bafbf578a65d572438373870613fbd 100644 (file)
@@ -7,7 +7,7 @@
 #
 main = executable(
     'main-test',
-    ['test.c'],
+    ['test.c', ccan_config_h],
     dependencies: libuuid,
     link_with: libnvme,
     include_directories: incdir
@@ -22,14 +22,14 @@ cpp = executable(
 
 register = executable(
     'test-register',
-    ['register.c'],
+    ['register.c', ccan_config_h],
     link_with: libnvme,
     include_directories: incdir
 )
 
 zns = executable(
     'test-zns',
-    ['zns.c'],
+    ['zns.c', ccan_config_h],
     link_with: libnvme,
     include_directories: incdir
 )
index 06244dfd5c2b8b9593f17c5ee0a9b0ece7c6261b..8791083e2baef7a56db3520c2b1b277086eaa0c9 100644 (file)
 
 #include <sys/mman.h>
 
+#include <ccan/endian/endian.h>
+
+static inline uint32_t nvme_mmio_read32(volatile void *addr)
+{
+        uint32_t *p = (__le32 *)addr;
+
+        return le32_to_cpu(*p);
+}
+
+static inline uint64_t nvme_mmio_read64(volatile void *addr)
+{
+        volatile __u32 *p = (__u32 *)addr;
+        uint32_t low, high;
+
+        low = nvme_mmio_read32(p);
+        high = nvme_mmio_read32(p + 1);
+
+        return low + ((uint64_t)high << 32);
+}
+
 void nvme_print_registers(void *regs)
 {
        __u64 cap       = nvme_mmio_read64(regs + NVME_REG_CAP);
index 7c6a5cb8356840c15dfe5834263d04f1cb38bade..34d7c7da595bc049ddb13e2001398f523d4cb80e 100644 (file)
@@ -23,6 +23,8 @@
 #endif
 #include <libnvme.h>
 
+#include <ccan/endian/endian.h>
+
 static char *nqn_match;
 
 static bool nvme_match_subsysnqn_filter(nvme_subsystem_t s)
index 3ca55dfc7502cf976a9dfe7378d7ff532e0cb1f4..54a6779ad98f5f537c29be0578e78bb2f05074cf 100644 (file)
@@ -16,6 +16,8 @@
 #include <libnvme.h>
 #include <inttypes.h>
 
+#include <ccan/endian/endian.h>
+
 static void show_zns_properties(nvme_ns_t n)
 {
        struct nvme_zns_id_ns zns_ns;