linux/fs/xfs/xfs_linux.h

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2000-2005 Silicon Graphics, Inc.
 * All Rights Reserved.
 */
#ifndef __XFS_LINUX__
#define __XFS_LINUX__

#include <linux/types.h>
#include <linux/uuid.h>

/*
 * Kernel specific type declarations for XFS
 */

xfs_off_t;	/* <file offset> type */
xfs_ino_t;	/* <inode> type */
xfs_daddr_t;	/* <disk address> type */
xfs_dev_t;
xfs_nlink_t;

#include "xfs_types.h"

#include <linux/semaphore.h>
#include <linux/mm.h>
#include <linux/sched/mm.h>
#include <linux/kernel.h>
#include <linux/blkdev.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/crc32c.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/file.h>
#include <linux/filelock.h>
#include <linux/swap.h>
#include <linux/errno.h>
#include <linux/sched/signal.h>
#include <linux/bitops.h>
#include <linux/major.h>
#include <linux/pagemap.h>
#include <linux/vfs.h>
#include <linux/seq_file.h>
#include <linux/init.h>
#include <linux/list.h>
#include <linux/proc_fs.h>
#include <linux/sort.h>
#include <linux/cpu.h>
#include <linux/notifier.h>
#include <linux/delay.h>
#include <linux/log2.h>
#include <linux/rwsem.h>
#include <linux/spinlock.h>
#include <linux/random.h>
#include <linux/ctype.h>
#include <linux/writeback.h>
#include <linux/capability.h>
#include <linux/kthread.h>
#include <linux/freezer.h>
#include <linux/list_sort.h>
#include <linux/ratelimit.h>
#include <linux/rhashtable.h>
#include <linux/xattr.h>
#include <linux/mnt_idmapping.h>
#include <linux/debugfs.h>

#include <asm/page.h>
#include <asm/div64.h>
#include <asm/param.h>
#include <linux/uaccess.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>

#include "xfs_fs.h"
#include "xfs_stats.h"
#include "xfs_sysctl.h"
#include "xfs_iops.h"
#include "xfs_aops.h"
#include "xfs_super.h"
#include "xfs_cksum.h"
#include "xfs_buf.h"
#include "xfs_message.h"
#include "xfs_drain.h"
#include "xfs_hooks.h"

#ifdef __BIG_ENDIAN
#define XFS_NATIVE_HOST
#else
#undef XFS_NATIVE_HOST
#endif

#define irix_sgid_inherit
#define irix_symlink_mode
#define xfs_panic_mask
#define xfs_error_level
#define xfs_syncd_centisecs
#define xfs_stats_clear
#define xfs_inherit_sync
#define xfs_inherit_nodump
#define xfs_inherit_noatime
#define xfs_inherit_nosymlinks
#define xfs_rotorstep
#define xfs_inherit_nodefrag
#define xfs_fstrm_centisecs
#define xfs_blockgc_secs

#define current_cpu()
#define current_set_flags_nested(sp, f)
#define current_restore_flags_nested(sp, f)

#define NBBY

/*
 * Size of block device i/o is parameterized here.
 * Currently the system supports page-sized i/o.
 */
#define BLKDEV_IOSHIFT
#define BLKDEV_IOSIZE
/* number of BB's per block device block */
#define BLKDEV_BB

#define ENOATTR
#define EWRONGFS
#define EFSCORRUPTED
#define EFSBADCRC

#define __return_address

/*
 * Return the address of a label.  Use barrier() so that the optimizer
 * won't reorder code to refactor the error jumpouts into a single
 * return, which throws off the reported address.
 */
#define __this_address

#define howmany(x, y)

static inline void delay(long ticks)
{}

/*
 * XFS wrapper structure for sysfs support. It depends on external data
 * structures and is embedded in various internal data structures to implement
 * the XFS sysfs object heirarchy. Define it here for broad access throughout
 * the codebase.
 */
struct xfs_kobj {};

struct xstats {};

extern struct xstats xfsstats;

static inline dev_t xfs_to_linux_dev_t(xfs_dev_t dev)
{}

static inline xfs_dev_t linux_to_xfs_dev_t(dev_t dev)
{}

/*
 * Various platform dependent calls that don't fit anywhere else
 */
#define xfs_sort(a,n,s,fn)
#define xfs_stack_trace()

static inline uint64_t rounddown_64(uint64_t x, uint32_t y)
{}

static inline uint64_t roundup_64(uint64_t x, uint32_t y)
{}

static inline uint64_t howmany_64(uint64_t x, uint32_t y)
{}

static inline bool isaligned_64(uint64_t x, uint32_t y)
{}

/* If @b is a power of 2, return log2(b).  Else return -1. */
static inline int8_t log2_if_power2(unsigned long b)
{}

/* If @b is a power of 2, return a mask of the lower bits, else return zero. */
static inline unsigned long long mask64_if_power2(unsigned long b)
{}

int xfs_rw_bdev(struct block_device *bdev, sector_t sector, unsigned int count,
		char *data, enum req_op op);

#define ASSERT_ALWAYS(expr)

#ifdef DEBUG
#define ASSERT(expr)

#else	/* !DEBUG */

#ifdef XFS_WARN

#define ASSERT

#else	/* !DEBUG && !XFS_WARN */

#define ASSERT

#endif /* XFS_WARN */
#endif /* DEBUG */

#define XFS_IS_CORRUPT(mp, expr)

#define STATIC

#ifdef CONFIG_XFS_RT

/*
 * make sure we ignore the inode flag if the filesystem doesn't have a
 * configured realtime device.
 */
#define XFS_IS_REALTIME_INODE(ip)
#define XFS_IS_REALTIME_MOUNT(mp)
#else
#define XFS_IS_REALTIME_INODE
#define XFS_IS_REALTIME_MOUNT
#endif

/*
 * Starting in Linux 4.15, the %p (raw pointer value) printk modifier
 * prints a hashed version of the pointer to avoid leaking kernel
 * pointers into dmesg.  If we're trying to debug the kernel we want the
 * raw values, so override this behavior as best we can.
 */
#ifdef DEBUG
#define PTR_FMT
#else
#define PTR_FMT
#endif

/*
 * Helper for IO routines to grab backing pages from allocated kernel memory.
 */
static inline struct page *
kmem_to_page(void *addr)
{}

#endif /* __XFS_LINUX__ */