Add super.c to the ext4l Makefile and provide the infrastructure needed to compile it: - Add stubs for block device operations (bdev_file_open_by_dev, bdev_fput, bdev_getblk, submit_bh, trylock_buffer) - Add stubs for NFS export helpers (generic_fh_to_dentry/parent) - Add stubs for filesystem operations (sync_filesystem, dquot_suspend) - Add stubs for string operations (strreplace, strtomem_pad) - Add stubs for memory allocation (alloc_inode_sb, kvzalloc) - Add stubs for ratelimit, workqueue, and trace functions - Add fs_context and fs_parameter structures for mount options - Add blk_holder_ops structure for block device holder operations - Add pragma to suppress unused function/variable warnings - Add __maybe_unused to __init/__exit macros in init.h The only change to super.c itself is replacing the Linux kernel includes with the U-Boot compatibility header ext4_uboot.h. Series-to: concept Cover-letter: ext4l: Add more ext4 files to the build (part D) This series continues the ext4l port by adding super.c to the build. The super.c file contains the superblock operations and filesystem registration code from the kernel's ext4 driver. To support this effort compilation, this series adds numerous stubs and compatibility shims for Linux kernel interfaces not available in U-Boot, including block device operations, filesystem context handling, NFS export helpers, and various utility functions. In particular, fs/ext4l/ext4_uboot.h contains a lot of U-Boot specific declarations and stubs, with fs/ext4l/stub.c containing various others. The goal is to eventually have a fully functional ext4 implementation ported from Linux that can be used for both reading and writing ext4 filesystems in U-Boot. END Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com>
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Stub definitions for Linux kernel timer support.
|
|
* U-Boot doesn't use kernel timers.
|
|
*/
|
|
#ifndef _LINUX_TIMER_H
|
|
#define _LINUX_TIMER_H
|
|
|
|
struct timer_list {
|
|
unsigned long expires;
|
|
void (*function)(struct timer_list *);
|
|
unsigned long data;
|
|
};
|
|
|
|
#define DEFINE_TIMER(name, func) \
|
|
struct timer_list name = { .function = func }
|
|
|
|
#define setup_timer(timer, func, data) do { (void)(func); } while (0)
|
|
#define timer_setup(timer, func, flags) do { (void)(func); } while (0)
|
|
#define init_timer(timer) do { } while (0)
|
|
#define add_timer(timer) do { } while (0)
|
|
#define del_timer(timer) ({ (void)(timer); 0; })
|
|
#define del_timer_sync(timer) do { (void)(timer); } while (0)
|
|
#define mod_timer(timer, expires) do { (void)(timer); (void)(expires); } while (0)
|
|
#define timer_pending(timer) ({ (void)(timer); 0; })
|
|
|
|
#define from_timer(var, callback_timer, timer_fieldname) \
|
|
container_of(callback_timer, typeof(*var), timer_fieldname)
|
|
|
|
#define timer_container_of(var, callback_timer, timer_fieldname) \
|
|
container_of(callback_timer, typeof(*var), timer_fieldname)
|
|
|
|
#define timer_shutdown_sync(timer) do { } while (0)
|
|
#define timer_delete_sync(timer) do { (void)(timer); } while (0)
|
|
|
|
#endif /* _LINUX_TIMER_H */
|