[Concept,01/19] linux: Add ktime.h header with time functions

Message ID 20260117011448.3007171-2-sjg@u-boot.org
State New
Headers
Series ext4l: Reduce ext4_uboot.h size by moving code to include/linux |

Commit Message

Simon Glass Jan. 17, 2026, 1:14 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

The ext4l filesystem uses several ktime functions which are currently
defined inline in ext4_uboot.h.

Create a new linux/ktime.h header file with these stub implementations
to better match the Linux kernel structure. This reduces duplication
and makes ext4_uboot.h smaller.

Functions moved:
- ktime_get()
- ktime_to_ns()
- ktime_sub()
- ktime_add_ns()
- ktime_get_ns()

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 fs/ext4l/ext4_uboot.h | 25 ++--------------
 include/linux/ktime.h | 70 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+), 22 deletions(-)
 create mode 100644 include/linux/ktime.h
  

Patch

diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h
index 91e0ce95467..04872c0a34e 100644
--- a/fs/ext4l/ext4_uboot.h
+++ b/fs/ext4l/ext4_uboot.h
@@ -1032,26 +1032,8 @@  static inline void shrinker_free(struct shrinker *s)
 {
 }
 
-/* ktime functions */
-static inline ktime_t ktime_get(void)
-{
-	return 0;
-}
-
-static inline s64 ktime_to_ns(ktime_t kt)
-{
-	return kt;
-}
-
-static inline ktime_t ktime_sub(ktime_t a, ktime_t b)
-{
-	return a - b;
-}
-
-static inline ktime_t ktime_add_ns(ktime_t kt, s64 ns)
-{
-	return kt + ns;
-}
+/* ktime functions - use linux/ktime.h */
+#include <linux/ktime.h>
 
 /* hrtimer stubs */
 #define HRTIMER_MODE_ABS		0
@@ -1983,8 +1965,7 @@  int IOPRIO_PRIO_VALUE(int class, int data);
 void *kvzalloc(size_t size, gfp_t flags);
 #define kvmalloc(size, flags)	kvzalloc(size, flags)
 
-/* Time operations */
-#define ktime_get_ns()			(0ULL)
+/* Time operations - ktime_get_ns is in linux/ktime.h */
 /* nsecs_to_jiffies is in linux/jiffies.h */
 
 /* Superblock write operations */
diff --git a/include/linux/ktime.h b/include/linux/ktime.h
new file mode 100644
index 00000000000..c853e694823
--- /dev/null
+++ b/include/linux/ktime.h
@@ -0,0 +1,70 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * ktime_t - nanosecond-resolution time format.
+ *
+ * Stub implementation for U-Boot.
+ */
+#ifndef _LINUX_KTIME_H
+#define _LINUX_KTIME_H
+
+#include <linux/types.h>
+
+/* ktime_t is defined in linux/types.h */
+
+/**
+ * ktime_get() - get current time
+ *
+ * U-Boot stub - returns 0 as we don't track real time during operations.
+ *
+ * Return: current time as ktime_t (always 0)
+ */
+static inline ktime_t ktime_get(void)
+{
+	return 0;
+}
+
+/**
+ * ktime_to_ns() - convert ktime_t to nanoseconds
+ * @kt: the ktime_t value to convert
+ *
+ * Return: the nanosecond value
+ */
+static inline s64 ktime_to_ns(ktime_t kt)
+{
+	return kt;
+}
+
+/**
+ * ktime_sub() - subtract two ktime_t values
+ * @a: first ktime_t value
+ * @b: second ktime_t value
+ *
+ * Return: a - b
+ */
+static inline ktime_t ktime_sub(ktime_t a, ktime_t b)
+{
+	return a - b;
+}
+
+/**
+ * ktime_add_ns() - add nanoseconds to a ktime_t value
+ * @kt: base ktime_t value
+ * @ns: nanoseconds to add
+ *
+ * Return: kt + ns
+ */
+static inline ktime_t ktime_add_ns(ktime_t kt, s64 ns)
+{
+	return kt + ns;
+}
+
+/**
+ * ktime_get_ns() - get current time in nanoseconds
+ *
+ * U-Boot stub - returns 0.
+ *
+ * Return: current time in nanoseconds (always 0)
+ */
+#define ktime_get_ns()		(0ULL)
+
+#endif /* _LINUX_KTIME_H */