Merge branch 'for-next/linux-headers'
This commit is contained in:
commit
79606b51ed
|
@ -3,4 +3,6 @@
|
|||
|
||||
#include <asm/int-ll64.h>
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -41,6 +41,8 @@ typedef unsigned int u32;
|
|||
typedef signed long long s64;
|
||||
typedef unsigned long long u64;
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
#include <asm-generic/bitsperlong.h>
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#include <common.h>
|
||||
#include <malloc.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/concat.h>
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#define __DENALI_H__
|
||||
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
#define DEVICE_RESET 0x0
|
||||
#define DEVICE_RESET__BANK0 0x0001
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <common.h>
|
||||
#include <usb/cdc.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <usb/composite.h>
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <notifier.h>
|
||||
#include <usb/usb.h>
|
||||
#include <usb/phy.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct musb;
|
||||
struct musb_hw_ep;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <init.h>
|
||||
#include <io.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct phy_control {
|
||||
void (*phy_power)(struct phy_control *phy_ctrl, u32 id, bool on);
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
#include <fb.h>
|
||||
#include <video/vpl.h>
|
||||
#include <video/fourcc.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct ipu_soc;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <clock.h>
|
||||
#include <driver.h>
|
||||
#include <init.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <mach/generic.h>
|
||||
#include <mach/imx6-regs.h>
|
||||
#include <mach/imx53-regs.h>
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/stat.h>
|
||||
#include <linux/magic.h>
|
||||
#include <cramfs/cramfs_fs.h>
|
||||
|
||||
/* These two macros may change in future, to provide better st_ino
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <malloc.h>
|
||||
#include <linux/stat.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/magic.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <dma.h>
|
||||
|
||||
|
@ -499,7 +500,7 @@ int ext4fs_mount(struct ext_filesystem *fs)
|
|||
goto fail;
|
||||
|
||||
/* Make sure this is an ext2 filesystem. */
|
||||
if (__le16_to_cpu(data->sblock.magic) != EXT2_MAGIC) {
|
||||
if (__le16_to_cpu(data->sblock.magic) != EXT2_SUPER_MAGIC) {
|
||||
ret = -EINVAL;
|
||||
goto fail;
|
||||
}
|
||||
|
|
|
@ -33,8 +33,6 @@
|
|||
#define SECTOR_SIZE 0x200
|
||||
#define SECTOR_BITS 9
|
||||
|
||||
/* Magic value used to identify an ext2 filesystem. */
|
||||
#define EXT2_MAGIC 0xEF53
|
||||
/* Amount of indirect blocks in an inode. */
|
||||
#define INDIRECT_BLOCKS 12
|
||||
/* Maximum lenght of a pathname. */
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#include <linux/pstore.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <malloc.h>
|
||||
#include <printk.h>
|
||||
#include <module.h>
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <malloc.h>
|
||||
#include <printk.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -88,7 +88,7 @@ struct inode *iget_locked(struct super_block *sb, unsigned long ino)
|
|||
inode->i_ino = ino;
|
||||
inode->i_sb = sb;
|
||||
list_add(&inode->i_sb_list, &sb->s_inodes);
|
||||
inode->i_state = I_LOCK | I_NEW;
|
||||
inode->i_state = I_SYNC | I_NEW;
|
||||
}
|
||||
|
||||
return inode;
|
||||
|
@ -225,7 +225,7 @@ struct inode *ubifs_iget(struct super_block *sb, unsigned long inum)
|
|||
}
|
||||
|
||||
kfree(ino);
|
||||
inode->i_state &= ~(I_LOCK | I_NEW);
|
||||
inode->i_state &= ~(I_SYNC | I_NEW);
|
||||
return inode;
|
||||
|
||||
out_invalid:
|
||||
|
|
372
fs/ubifs/ubifs.h
372
fs/ubifs/ubifs.h
|
@ -34,8 +34,16 @@
|
|||
#include <common.h>
|
||||
#include <malloc.h>
|
||||
#include <lzo.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/stat.h>
|
||||
#include <linux/dcache.h>
|
||||
#include <linux/mount.h>
|
||||
#include <linux/path.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/math64.h>
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -56,8 +64,6 @@ extern unsigned int ubifs_msg_flags;
|
|||
extern unsigned int ubifs_chk_flags;
|
||||
extern unsigned int ubifs_tst_flags;
|
||||
|
||||
#define pgoff_t unsigned long
|
||||
|
||||
/*
|
||||
* We "simulate" the Linux page struct much simpler here
|
||||
*/
|
||||
|
@ -77,371 +83,11 @@ void iput(struct inode *inode);
|
|||
#define atomic_long_dec(a)
|
||||
#define atomic_long_sub(a, b)
|
||||
|
||||
/* linux/include/time.h */
|
||||
|
||||
struct timespec {
|
||||
time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
|
||||
/* linux/include/dcache.h */
|
||||
|
||||
/*
|
||||
* "quick string" -- eases parameter passing, but more importantly
|
||||
* saves "metadata" about the string (ie length and the hash).
|
||||
*
|
||||
* hash comes first so it snuggles against d_parent in the
|
||||
* dentry.
|
||||
*/
|
||||
struct qstr {
|
||||
unsigned int hash;
|
||||
unsigned int len;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct inode {
|
||||
struct hlist_node i_hash;
|
||||
struct list_head i_list;
|
||||
struct list_head i_sb_list;
|
||||
struct list_head i_dentry;
|
||||
unsigned long i_ino;
|
||||
unsigned int i_nlink;
|
||||
uid_t i_uid;
|
||||
gid_t i_gid;
|
||||
dev_t i_rdev;
|
||||
u64 i_version;
|
||||
loff_t i_size;
|
||||
#ifdef __NEED_I_SIZE_ORDERED
|
||||
seqcount_t i_size_seqcount;
|
||||
#endif
|
||||
struct timespec i_atime;
|
||||
struct timespec i_mtime;
|
||||
struct timespec i_ctime;
|
||||
unsigned int i_blkbits;
|
||||
unsigned short i_bytes;
|
||||
umode_t i_mode;
|
||||
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
|
||||
struct mutex i_mutex;
|
||||
struct rw_semaphore i_alloc_sem;
|
||||
const struct inode_operations *i_op;
|
||||
const struct file_operations *i_fop; /* former ->i_op->default_file_ops */
|
||||
struct super_block *i_sb;
|
||||
struct file_lock *i_flock;
|
||||
#ifdef CONFIG_QUOTA
|
||||
struct dquot *i_dquot[MAXQUOTAS];
|
||||
#endif
|
||||
struct list_head i_devices;
|
||||
int i_cindex;
|
||||
|
||||
__u32 i_generation;
|
||||
|
||||
#ifdef CONFIG_DNOTIFY
|
||||
unsigned long i_dnotify_mask; /* Directory notify events */
|
||||
struct dnotify_struct *i_dnotify; /* for directory notifications */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INOTIFY
|
||||
struct list_head inotify_watches; /* watches on this inode */
|
||||
struct mutex inotify_mutex; /* protects the watches list */
|
||||
#endif
|
||||
|
||||
unsigned long i_state;
|
||||
unsigned long dirtied_when; /* jiffies of first dirtying */
|
||||
|
||||
unsigned int i_flags;
|
||||
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *i_security;
|
||||
#endif
|
||||
void *i_private; /* fs or device private pointer */
|
||||
};
|
||||
|
||||
struct super_block {
|
||||
struct list_head s_list; /* Keep this first */
|
||||
dev_t s_dev; /* search index; _not_ kdev_t */
|
||||
unsigned long s_blocksize;
|
||||
unsigned char s_blocksize_bits;
|
||||
unsigned char s_dirt;
|
||||
unsigned long long s_maxbytes; /* Max file size */
|
||||
struct file_system_type *s_type;
|
||||
const struct super_operations *s_op;
|
||||
struct dquot_operations *dq_op;
|
||||
struct quotactl_ops *s_qcop;
|
||||
const struct export_operations *s_export_op;
|
||||
unsigned long s_flags;
|
||||
unsigned long s_magic;
|
||||
struct dentry *s_root;
|
||||
struct rw_semaphore s_umount;
|
||||
struct mutex s_lock;
|
||||
int s_count;
|
||||
int s_syncing;
|
||||
int s_need_sync_fs;
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *s_security;
|
||||
#endif
|
||||
struct xattr_handler **s_xattr;
|
||||
|
||||
struct list_head s_inodes; /* all inodes */
|
||||
struct list_head s_dirty; /* dirty inodes */
|
||||
struct list_head s_io; /* parked for writeback */
|
||||
struct list_head s_more_io; /* parked for more writeback */
|
||||
struct hlist_head s_anon; /* anonymous dentries for (nfs) exporting */
|
||||
struct list_head s_files;
|
||||
/* s_dentry_lru and s_nr_dentry_unused are protected by dcache_lock */
|
||||
struct list_head s_dentry_lru; /* unused dentry lru */
|
||||
int s_nr_dentry_unused; /* # of dentry on lru */
|
||||
|
||||
struct block_device *s_bdev;
|
||||
struct mtd_info *s_mtd;
|
||||
struct list_head s_instances;
|
||||
|
||||
int s_frozen;
|
||||
wait_queue_head_t s_wait_unfrozen;
|
||||
|
||||
char s_id[32]; /* Informational name */
|
||||
|
||||
void *s_fs_info; /* Filesystem private info */
|
||||
|
||||
/*
|
||||
* The next field is for VFS *only*. No filesystems have any business
|
||||
* even looking at it. You had been warned.
|
||||
*/
|
||||
struct mutex s_vfs_rename_mutex; /* Kludge */
|
||||
|
||||
/* Granularity of c/m/atime in ns.
|
||||
Cannot be worse than a second */
|
||||
u32 s_time_gran;
|
||||
|
||||
/*
|
||||
* Filesystem subtype. If non-empty the filesystem type field
|
||||
* in /proc/mounts will be "type.subtype"
|
||||
*/
|
||||
char *s_subtype;
|
||||
|
||||
/*
|
||||
* Saved mount options for lazy filesystems using
|
||||
* generic_show_options()
|
||||
*/
|
||||
char *s_options;
|
||||
};
|
||||
|
||||
struct file_system_type {
|
||||
const char *name;
|
||||
int fs_flags;
|
||||
int (*get_sb) (struct file_system_type *, int,
|
||||
const char *, void *, struct vfsmount *);
|
||||
void (*kill_sb) (struct super_block *);
|
||||
struct module *owner;
|
||||
struct file_system_type * next;
|
||||
struct list_head fs_supers;
|
||||
};
|
||||
|
||||
struct vfsmount {
|
||||
struct list_head mnt_hash;
|
||||
struct vfsmount *mnt_parent; /* fs we are mounted on */
|
||||
struct dentry *mnt_mountpoint; /* dentry of mountpoint */
|
||||
struct dentry *mnt_root; /* root of the mounted tree */
|
||||
struct super_block *mnt_sb; /* pointer to superblock */
|
||||
struct list_head mnt_mounts; /* list of children, anchored here */
|
||||
struct list_head mnt_child; /* and going through their mnt_child */
|
||||
int mnt_flags;
|
||||
/* 4 bytes hole on 64bits arches */
|
||||
const char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */
|
||||
struct list_head mnt_list;
|
||||
struct list_head mnt_expire; /* link in fs-specific expiry list */
|
||||
struct list_head mnt_share; /* circular list of shared mounts */
|
||||
struct list_head mnt_slave_list;/* list of slave mounts */
|
||||
struct list_head mnt_slave; /* slave list entry */
|
||||
struct vfsmount *mnt_master; /* slave is on master->mnt_slave_list */
|
||||
struct mnt_namespace *mnt_ns; /* containing namespace */
|
||||
int mnt_id; /* mount identifier */
|
||||
int mnt_group_id; /* peer group identifier */
|
||||
/*
|
||||
* We put mnt_count & mnt_expiry_mark at the end of struct vfsmount
|
||||
* to let these frequently modified fields in a separate cache line
|
||||
* (so that reads of mnt_flags wont ping-pong on SMP machines)
|
||||
*/
|
||||
int mnt_expiry_mark; /* true if marked for expiry */
|
||||
int mnt_pinned;
|
||||
int mnt_ghosts;
|
||||
/*
|
||||
* This value is not stable unless all of the mnt_writers[] spinlocks
|
||||
* are held, and all mnt_writer[]s on this mount have 0 as their ->count
|
||||
*/
|
||||
};
|
||||
|
||||
struct path {
|
||||
struct vfsmount *mnt;
|
||||
struct dentry *dentry;
|
||||
};
|
||||
|
||||
struct file {
|
||||
struct path f_path;
|
||||
#define f_dentry f_path.dentry
|
||||
#define f_vfsmnt f_path.mnt
|
||||
const struct file_operations *f_op;
|
||||
unsigned int f_flags;
|
||||
loff_t f_pos;
|
||||
unsigned int f_uid, f_gid;
|
||||
|
||||
u64 f_version;
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *f_security;
|
||||
#endif
|
||||
/* needed for tty driver, and maybe others */
|
||||
void *private_data;
|
||||
|
||||
#ifdef CONFIG_EPOLL
|
||||
/* Used by fs/eventpoll.c to link all the hooks to this file */
|
||||
struct list_head f_ep_links;
|
||||
spinlock_t f_ep_lock;
|
||||
#endif /* #ifdef CONFIG_EPOLL */
|
||||
#ifdef CONFIG_DEBUG_WRITECOUNT
|
||||
unsigned long f_mnt_write_state;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* get_seconds() not really needed in the read-only implmentation
|
||||
*/
|
||||
#define get_seconds() 0
|
||||
|
||||
/* 4k page size */
|
||||
#define PAGE_CACHE_SHIFT 12
|
||||
#define PAGE_CACHE_SIZE (1 << PAGE_CACHE_SHIFT)
|
||||
|
||||
/* Page cache limit. The filesystems should put that into their s_maxbytes
|
||||
limits, otherwise bad things can happen in VM. */
|
||||
#if BITS_PER_LONG==32
|
||||
#define MAX_LFS_FILESIZE (((u64)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1)
|
||||
#elif BITS_PER_LONG==64
|
||||
#define MAX_LFS_FILESIZE 0x7fffffffffffffffUL
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These are the fs-independent mount-flags: up to 32 flags are supported
|
||||
*/
|
||||
#define MS_RDONLY 1 /* Mount read-only */
|
||||
#define MS_NOSUID 2 /* Ignore suid and sgid bits */
|
||||
#define MS_NODEV 4 /* Disallow access to device special files */
|
||||
#define MS_NOEXEC 8 /* Disallow program execution */
|
||||
#define MS_SYNCHRONOUS 16 /* Writes are synced at once */
|
||||
#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
|
||||
#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
|
||||
#define MS_DIRSYNC 128 /* Directory modifications are synchronous */
|
||||
#define MS_NOATIME 1024 /* Do not update access times. */
|
||||
#define MS_NODIRATIME 2048 /* Do not update directory access times */
|
||||
#define MS_BIND 4096
|
||||
#define MS_MOVE 8192
|
||||
#define MS_REC 16384
|
||||
#define MS_VERBOSE 32768 /* War is peace. Verbosity is silence.
|
||||
MS_VERBOSE is deprecated. */
|
||||
#define MS_SILENT 32768
|
||||
#define MS_POSIXACL (1<<16) /* VFS does not apply the umask */
|
||||
#define MS_UNBINDABLE (1<<17) /* change to unbindable */
|
||||
#define MS_PRIVATE (1<<18) /* change to private */
|
||||
#define MS_SLAVE (1<<19) /* change to slave */
|
||||
#define MS_SHARED (1<<20) /* change to shared */
|
||||
#define MS_RELATIME (1<<21) /* Update atime relative to mtime/ctime. */
|
||||
#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
|
||||
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
|
||||
#define MS_ACTIVE (1<<30)
|
||||
#define MS_NOUSER (1<<31)
|
||||
|
||||
#define I_NEW 8
|
||||
|
||||
/* Inode flags - they have nothing to superblock flags now */
|
||||
|
||||
#define S_SYNC 1 /* Writes are synced at once */
|
||||
#define S_NOATIME 2 /* Do not update access times */
|
||||
#define S_APPEND 4 /* Append-only file */
|
||||
#define S_IMMUTABLE 8 /* Immutable file */
|
||||
#define S_DEAD 16 /* removed, but still open directory */
|
||||
#define S_NOQUOTA 32 /* Inode is not counted to quota */
|
||||
#define S_DIRSYNC 64 /* Directory modifications are synchronous */
|
||||
#define S_NOCMTIME 128 /* Do not update file c/mtime */
|
||||
#define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */
|
||||
#define S_PRIVATE 512 /* Inode is fs-internal */
|
||||
|
||||
/* include/linux/stat.h */
|
||||
|
||||
#define S_IFMT 00170000
|
||||
#define S_IFSOCK 0140000
|
||||
#define S_IFLNK 0120000
|
||||
#define S_IFREG 0100000
|
||||
#define S_IFBLK 0060000
|
||||
#define S_IFDIR 0040000
|
||||
#define S_IFCHR 0020000
|
||||
#define S_IFIFO 0010000
|
||||
#define S_ISUID 0004000
|
||||
#define S_ISGID 0002000
|
||||
#define S_ISVTX 0001000
|
||||
|
||||
/* include/linux/fs.h */
|
||||
|
||||
/*
|
||||
* File types
|
||||
*
|
||||
* NOTE! These match bits 12..15 of stat.st_mode
|
||||
* (ie "(i_mode >> 12) & 15").
|
||||
*/
|
||||
#define DT_UNKNOWN 0
|
||||
#define DT_FIFO 1
|
||||
#define DT_CHR 2
|
||||
#define DT_DIR 4
|
||||
#define DT_BLK 6
|
||||
#define DT_REG 8
|
||||
#define DT_LNK 10
|
||||
#define DT_SOCK 12
|
||||
#define DT_WHT 14
|
||||
|
||||
#define I_DIRTY_SYNC 1
|
||||
#define I_DIRTY_DATASYNC 2
|
||||
#define I_DIRTY_PAGES 4
|
||||
#define I_NEW 8
|
||||
#define I_WILL_FREE 16
|
||||
#define I_FREEING 32
|
||||
#define I_CLEAR 64
|
||||
#define __I_LOCK 7
|
||||
#define I_LOCK (1 << __I_LOCK)
|
||||
#define __I_SYNC 8
|
||||
#define I_SYNC (1 << __I_SYNC)
|
||||
|
||||
#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)
|
||||
|
||||
/* linux/include/dcache.h */
|
||||
|
||||
#define DNAME_INLINE_LEN_MIN 36
|
||||
|
||||
struct dentry {
|
||||
unsigned int d_flags; /* protected by d_lock */
|
||||
spinlock_t d_lock; /* per dentry lock */
|
||||
struct inode *d_inode; /* Where the name belongs to - NULL is
|
||||
* negative */
|
||||
/*
|
||||
* The next three fields are touched by __d_lookup. Place them here
|
||||
* so they all fit in a cache line.
|
||||
*/
|
||||
struct hlist_node d_hash; /* lookup hash list */
|
||||
struct dentry *d_parent; /* parent directory */
|
||||
struct qstr d_name;
|
||||
|
||||
struct list_head d_lru; /* LRU list */
|
||||
/*
|
||||
* d_child and d_rcu can share memory
|
||||
*/
|
||||
struct list_head d_subdirs; /* our children */
|
||||
struct list_head d_alias; /* inode alias list */
|
||||
unsigned long d_time; /* used by d_revalidate */
|
||||
struct super_block *d_sb; /* The root of the dentry tree */
|
||||
void *d_fsdata; /* fs-specific data */
|
||||
#ifdef CONFIG_PROFILING
|
||||
struct dcookie_struct *d_cookie; /* cookie, if any */
|
||||
#endif
|
||||
int d_mounted;
|
||||
unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
|
||||
};
|
||||
|
||||
static inline ino_t parent_ino(struct dentry *dentry)
|
||||
{
|
||||
ino_t res;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef __CRAMFS_H
|
||||
#define __CRAMFS_H
|
||||
|
||||
#define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
|
||||
#define CRAMFS_SIGNATURE "Compressed ROMFS"
|
||||
|
||||
/*
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <driver.h>
|
||||
#include <filetype.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#define PATH_MAX 1024 /* include/linux/limits.h */
|
||||
|
||||
|
@ -122,10 +123,6 @@ int ioctl(int fd, int request, void *buf);
|
|||
ssize_t write(int fd, const void *buf, size_t count);
|
||||
ssize_t pwrite(int fd, const void *buf, size_t count, loff_t offset);
|
||||
|
||||
#define SEEK_SET 1
|
||||
#define SEEK_CUR 2
|
||||
#define SEEK_END 3
|
||||
|
||||
loff_t lseek(int fildes, loff_t offset, int whence);
|
||||
int mkdir (const char *pathname, mode_t mode);
|
||||
|
||||
|
|
|
@ -35,40 +35,14 @@ typedef int gfp_t;
|
|||
#define MODULE_LICENSE(x)
|
||||
#define MODULE_ALIAS(x)
|
||||
|
||||
typedef int spinlock_t;
|
||||
#define spin_lock_init(...)
|
||||
#define spin_lock(...)
|
||||
#define spin_unlock(...)
|
||||
#define spin_lock_irqsave(lock, flags) do { flags = 0; } while (0)
|
||||
#define spin_unlock_irqrestore(lock, flags) do { flags = flags; } while (0)
|
||||
|
||||
#define mutex_init(...)
|
||||
#define mutex_lock(...)
|
||||
#define mutex_unlock(...)
|
||||
struct mutex { int i; };
|
||||
|
||||
struct rw_semaphore { int i; };
|
||||
|
||||
#define __user
|
||||
#define __init
|
||||
#define __exit
|
||||
|
||||
#define init_rwsem(...) do { } while (0)
|
||||
#define down_read(...) do { } while (0)
|
||||
#define down_write(...) do { } while (0)
|
||||
#define down_write_trylock(...) 1
|
||||
#define up_read(...) do { } while (0)
|
||||
#define up_write(...) do { } while (0)
|
||||
#define kthread_create(...) __builtin_return_address(0)
|
||||
#define kthread_stop(...) do { } while (0)
|
||||
#define wake_up_process(...) do { } while (0)
|
||||
|
||||
typedef int wait_queue_head_t;
|
||||
|
||||
#define cond_resched() do { } while (0)
|
||||
|
||||
#define init_waitqueue_head(...) do { } while (0)
|
||||
|
||||
typedef int irqreturn_t;
|
||||
#define IRQ_NONE 0
|
||||
#define IRQ_HANDLED 0
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
#ifndef __LINUX_DCACHE_H
|
||||
#define __LINUX_DCACHE_H
|
||||
|
||||
/*
|
||||
* linux/include/linux/dcache.h
|
||||
*
|
||||
* Dirent cache data structures
|
||||
*
|
||||
* (C) Copyright 1997 Thomas Schoebel-Theuer,
|
||||
* with heavy changes by Linus Torvalds
|
||||
*/
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
#define IS_ROOT(x) ((x) == (x)->d_parent)
|
||||
|
||||
/* The hash is always the low bits of hash_len */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
#define HASH_LEN_DECLARE u32 hash; u32 len
|
||||
#define bytemask_from_count(cnt) (~(~0ul << (cnt)*8))
|
||||
#else
|
||||
#define HASH_LEN_DECLARE u32 len; u32 hash
|
||||
#define bytemask_from_count(cnt) (~(~0ul >> (cnt)*8))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* "quick string" -- eases parameter passing, but more importantly
|
||||
* saves "metadata" about the string (ie length and the hash).
|
||||
*
|
||||
* hash comes first so it snuggles against d_parent in the
|
||||
* dentry.
|
||||
*/
|
||||
struct qstr {
|
||||
union {
|
||||
struct {
|
||||
HASH_LEN_DECLARE;
|
||||
};
|
||||
u64 hash_len;
|
||||
};
|
||||
const unsigned char *name;
|
||||
};
|
||||
|
||||
#define QSTR_INIT(n,l) { { { .len = l } }, .name = n }
|
||||
#define hashlen_hash(hashlen) ((u32) (hashlen))
|
||||
#define hashlen_len(hashlen) ((u32)((hashlen) >> 32))
|
||||
#define hashlen_create(hash,len) (((u64)(len)<<32)|(u32)(hash))
|
||||
|
||||
#define DNAME_INLINE_LEN_MIN 36
|
||||
|
||||
struct dentry {
|
||||
unsigned int d_flags; /* protected by d_lock */
|
||||
spinlock_t d_lock; /* per dentry lock */
|
||||
struct inode *d_inode; /* Where the name belongs to - NULL is
|
||||
* negative */
|
||||
/*
|
||||
* The next three fields are touched by __d_lookup. Place them here
|
||||
* so they all fit in a cache line.
|
||||
*/
|
||||
struct hlist_node d_hash; /* lookup hash list */
|
||||
struct dentry *d_parent; /* parent directory */
|
||||
struct qstr d_name;
|
||||
|
||||
struct list_head d_lru; /* LRU list */
|
||||
/*
|
||||
* d_child and d_rcu can share memory
|
||||
*/
|
||||
struct list_head d_subdirs; /* our children */
|
||||
struct list_head d_alias; /* inode alias list */
|
||||
unsigned long d_time; /* used by d_revalidate */
|
||||
struct super_block *d_sb; /* The root of the dentry tree */
|
||||
void *d_fsdata; /* fs-specific data */
|
||||
#ifdef CONFIG_PROFILING
|
||||
struct dcookie_struct *d_cookie; /* cookie, if any */
|
||||
#endif
|
||||
int d_mounted;
|
||||
unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
|
||||
};
|
||||
|
||||
#endif /* __LINUX_DCACHE_H */
|
|
@ -0,0 +1,364 @@
|
|||
#ifndef _LINUX_FS_H
|
||||
#define _LINUX_FS_H
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/mount.h>
|
||||
#include <linux/path.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/rwsem.h>
|
||||
|
||||
/* Page cache limit. The filesystems should put that into their s_maxbytes
|
||||
limits, otherwise bad things can happen in VM. */
|
||||
#if BITS_PER_LONG==32
|
||||
#define MAX_LFS_FILESIZE (((loff_t)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1)
|
||||
#elif BITS_PER_LONG==64
|
||||
#define MAX_LFS_FILESIZE ((loff_t)0x7fffffffffffffffLL)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These are the fs-independent mount-flags: up to 32 flags are supported
|
||||
*/
|
||||
#define MS_RDONLY 1 /* Mount read-only */
|
||||
#define MS_NOSUID 2 /* Ignore suid and sgid bits */
|
||||
#define MS_NODEV 4 /* Disallow access to device special files */
|
||||
#define MS_NOEXEC 8 /* Disallow program execution */
|
||||
#define MS_SYNCHRONOUS 16 /* Writes are synced at once */
|
||||
#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
|
||||
#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
|
||||
#define MS_DIRSYNC 128 /* Directory modifications are synchronous */
|
||||
#define MS_NOATIME 1024 /* Do not update access times. */
|
||||
#define MS_NODIRATIME 2048 /* Do not update directory access times */
|
||||
#define MS_BIND 4096
|
||||
#define MS_MOVE 8192
|
||||
#define MS_REC 16384
|
||||
#define MS_VERBOSE 32768 /* War is peace. Verbosity is silence.
|
||||
MS_VERBOSE is deprecated. */
|
||||
#define MS_SILENT 32768
|
||||
#define MS_POSIXACL (1<<16) /* VFS does not apply the umask */
|
||||
#define MS_UNBINDABLE (1<<17) /* change to unbindable */
|
||||
#define MS_PRIVATE (1<<18) /* change to private */
|
||||
#define MS_SLAVE (1<<19) /* change to slave */
|
||||
#define MS_SHARED (1<<20) /* change to shared */
|
||||
#define MS_RELATIME (1<<21) /* Update atime relative to mtime/ctime. */
|
||||
#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
|
||||
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
|
||||
#define MS_ACTIVE (1<<30)
|
||||
#define MS_NOUSER (1<<31)
|
||||
|
||||
#define SEEK_SET 0 /* seek relative to beginning of file */
|
||||
#define SEEK_CUR 1 /* seek relative to current file position */
|
||||
#define SEEK_END 2 /* seek relative to end of file */
|
||||
#define SEEK_DATA 3 /* seek to the next data */
|
||||
#define SEEK_HOLE 4 /* seek to the next hole */
|
||||
#define SEEK_MAX SEEK_HOLE
|
||||
|
||||
struct inode {
|
||||
struct hlist_node i_hash;
|
||||
struct list_head i_list;
|
||||
struct list_head i_sb_list;
|
||||
struct list_head i_dentry;
|
||||
unsigned long i_ino;
|
||||
unsigned int i_nlink;
|
||||
uid_t i_uid;
|
||||
gid_t i_gid;
|
||||
dev_t i_rdev;
|
||||
u64 i_version;
|
||||
loff_t i_size;
|
||||
#ifdef __NEED_I_SIZE_ORDERED
|
||||
seqcount_t i_size_seqcount;
|
||||
#endif
|
||||
struct timespec i_atime;
|
||||
struct timespec i_mtime;
|
||||
struct timespec i_ctime;
|
||||
unsigned int i_blkbits;
|
||||
unsigned short i_bytes;
|
||||
umode_t i_mode;
|
||||
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
|
||||
struct mutex i_mutex;
|
||||
struct rw_semaphore i_alloc_sem;
|
||||
const struct inode_operations *i_op;
|
||||
const struct file_operations *i_fop; /* former ->i_op->default_file_ops */
|
||||
struct super_block *i_sb;
|
||||
struct file_lock *i_flock;
|
||||
#ifdef CONFIG_QUOTA
|
||||
struct dquot *i_dquot[MAXQUOTAS];
|
||||
#endif
|
||||
struct list_head i_devices;
|
||||
int i_cindex;
|
||||
|
||||
__u32 i_generation;
|
||||
|
||||
#ifdef CONFIG_DNOTIFY
|
||||
unsigned long i_dnotify_mask; /* Directory notify events */
|
||||
struct dnotify_struct *i_dnotify; /* for directory notifications */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INOTIFY
|
||||
struct list_head inotify_watches; /* watches on this inode */
|
||||
struct mutex inotify_mutex; /* protects the watches list */
|
||||
#endif
|
||||
|
||||
unsigned long i_state;
|
||||
unsigned long dirtied_when; /* jiffies of first dirtying */
|
||||
|
||||
unsigned int i_flags;
|
||||
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *i_security;
|
||||
#endif
|
||||
void *i_private; /* fs or device private pointer */
|
||||
};
|
||||
|
||||
struct super_block {
|
||||
struct list_head s_list; /* Keep this first */
|
||||
dev_t s_dev; /* search index; _not_ kdev_t */
|
||||
unsigned long s_blocksize;
|
||||
unsigned char s_blocksize_bits;
|
||||
unsigned char s_dirt;
|
||||
unsigned long long s_maxbytes; /* Max file size */
|
||||
struct file_system_type *s_type;
|
||||
const struct super_operations *s_op;
|
||||
struct dquot_operations *dq_op;
|
||||
struct quotactl_ops *s_qcop;
|
||||
const struct export_operations *s_export_op;
|
||||
unsigned long s_flags;
|
||||
unsigned long s_magic;
|
||||
struct dentry *s_root;
|
||||
struct rw_semaphore s_umount;
|
||||
struct mutex s_lock;
|
||||
int s_count;
|
||||
int s_syncing;
|
||||
int s_need_sync_fs;
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *s_security;
|
||||
#endif
|
||||
struct xattr_handler **s_xattr;
|
||||
|
||||
struct list_head s_inodes; /* all inodes */
|
||||
struct list_head s_dirty; /* dirty inodes */
|
||||
struct list_head s_io; /* parked for writeback */
|
||||
struct list_head s_more_io; /* parked for more writeback */
|
||||
struct hlist_head s_anon; /* anonymous dentries for (nfs) exporting */
|
||||
struct list_head s_files;
|
||||
/* s_dentry_lru and s_nr_dentry_unused are protected by dcache_lock */
|
||||
struct list_head s_dentry_lru; /* unused dentry lru */
|
||||
int s_nr_dentry_unused; /* # of dentry on lru */
|
||||
|
||||
struct block_device *s_bdev;
|
||||
struct mtd_info *s_mtd;
|
||||
struct list_head s_instances;
|
||||
|
||||
int s_frozen;
|
||||
wait_queue_head_t s_wait_unfrozen;
|
||||
|
||||
char s_id[32]; /* Informational name */
|
||||
|
||||
void *s_fs_info; /* Filesystem private info */
|
||||
|
||||
/*
|
||||
* The next field is for VFS *only*. No filesystems have any business
|
||||
* even looking at it. You had been warned.
|
||||
*/
|
||||
struct mutex s_vfs_rename_mutex; /* Kludge */
|
||||
|
||||
/* Granularity of c/m/atime in ns.
|
||||
Cannot be worse than a second */
|
||||
u32 s_time_gran;
|
||||
|
||||
/*
|
||||
* Filesystem subtype. If non-empty the filesystem type field
|
||||
* in /proc/mounts will be "type.subtype"
|
||||
*/
|
||||
char *s_subtype;
|
||||
|
||||
/*
|
||||
* Saved mount options for lazy filesystems using
|
||||
* generic_show_options()
|
||||
*/
|
||||
char *s_options;
|
||||
};
|
||||
|
||||
struct file_system_type {
|
||||
const char *name;
|
||||
int fs_flags;
|
||||
int (*get_sb) (struct file_system_type *, int,
|
||||
const char *, void *, struct vfsmount *);
|
||||
void (*kill_sb) (struct super_block *);
|
||||
struct module *owner;
|
||||
struct file_system_type * next;
|
||||
struct list_head fs_supers;
|
||||
};
|
||||
|
||||
struct file {
|
||||
struct path f_path;
|
||||
#define f_dentry f_path.dentry
|
||||
#define f_vfsmnt f_path.mnt
|
||||
const struct file_operations *f_op;
|
||||
unsigned int f_flags;
|
||||
loff_t f_pos;
|
||||
unsigned int f_uid, f_gid;
|
||||
|
||||
u64 f_version;
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *f_security;
|
||||
#endif
|
||||
/* needed for tty driver, and maybe others */
|
||||
void *private_data;
|
||||
|
||||
#ifdef CONFIG_EPOLL
|
||||
/* Used by fs/eventpoll.c to link all the hooks to this file */
|
||||
struct list_head f_ep_links;
|
||||
spinlock_t f_ep_lock;
|
||||
#endif /* #ifdef CONFIG_EPOLL */
|
||||
#ifdef CONFIG_DEBUG_WRITECOUNT
|
||||
unsigned long f_mnt_write_state;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* Inode flags - they have no relation to superblock flags now
|
||||
*/
|
||||
#define S_SYNC 1 /* Writes are synced at once */
|
||||
#define S_NOATIME 2 /* Do not update access times */
|
||||
#define S_APPEND 4 /* Append-only file */
|
||||
#define S_IMMUTABLE 8 /* Immutable file */
|
||||
#define S_DEAD 16 /* removed, but still open directory */
|
||||
#define S_NOQUOTA 32 /* Inode is not counted to quota */
|
||||
#define S_DIRSYNC 64 /* Directory modifications are synchronous */
|
||||
#define S_NOCMTIME 128 /* Do not update file c/mtime */
|
||||
#define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */
|
||||
#define S_PRIVATE 512 /* Inode is fs-internal */
|
||||
#define S_IMA 1024 /* Inode has an associated IMA struct */
|
||||
#define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */
|
||||
#define S_NOSEC 4096 /* no suid or xattr security attributes */
|
||||
#ifdef CONFIG_FS_DAX
|
||||
#define S_DAX 8192 /* Direct Access, avoiding the page cache */
|
||||
#else
|
||||
#define S_DAX 0 /* Make all the DAX code disappear */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Note that nosuid etc flags are inode-specific: setting some file-system
|
||||
* flags just means all the inodes inherit those flags by default. It might be
|
||||
* possible to override it selectively if you really wanted to with some
|
||||
* ioctl() that is not currently implemented.
|
||||
*
|
||||
* Exception: MS_RDONLY is always applied to the entire file system.
|
||||
*
|
||||
* Unfortunately, it is possible to change a filesystems flags with it mounted
|
||||
* with files in use. This means that all of the inodes will not have their
|
||||
* i_flags updated. Hence, i_flags no longer inherit the superblock mount
|
||||
* flags, so these have to be checked separately. -- rmk@arm.uk.linux.org
|
||||
*/
|
||||
#define __IS_FLG(inode, flg) ((inode)->i_sb->s_flags & (flg))
|
||||
|
||||
#define IS_RDONLY(inode) ((inode)->i_sb->s_flags & MS_RDONLY)
|
||||
#define IS_SYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS) || \
|
||||
((inode)->i_flags & S_SYNC))
|
||||
#define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \
|
||||
((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
|
||||
#define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
|
||||
#define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
|
||||
#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
|
||||
|
||||
#define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
|
||||
#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
|
||||
#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
|
||||
#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
|
||||
|
||||
#define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
|
||||
#define IS_NOCMTIME(inode) ((inode)->i_flags & S_NOCMTIME)
|
||||
#define IS_SWAPFILE(inode) ((inode)->i_flags & S_SWAPFILE)
|
||||
#define IS_PRIVATE(inode) ((inode)->i_flags & S_PRIVATE)
|
||||
#define IS_IMA(inode) ((inode)->i_flags & S_IMA)
|
||||
#define IS_AUTOMOUNT(inode) ((inode)->i_flags & S_AUTOMOUNT)
|
||||
#define IS_NOSEC(inode) ((inode)->i_flags & S_NOSEC)
|
||||
#define IS_DAX(inode) ((inode)->i_flags & S_DAX)
|
||||
|
||||
#define IS_WHITEOUT(inode) (S_ISCHR(inode->i_mode) && \
|
||||
(inode)->i_rdev == WHITEOUT_DEV)
|
||||
|
||||
/*
|
||||
* Inode state bits. Protected by inode->i_lock
|
||||
*
|
||||
* Three bits determine the dirty state of the inode, I_DIRTY_SYNC,
|
||||
* I_DIRTY_DATASYNC and I_DIRTY_PAGES.
|
||||
*
|
||||
* Four bits define the lifetime of an inode. Initially, inodes are I_NEW,
|
||||
* until that flag is cleared. I_WILL_FREE, I_FREEING and I_CLEAR are set at
|
||||
* various stages of removing an inode.
|
||||
*
|
||||
* Two bits are used for locking and completion notification, I_NEW and I_SYNC.
|
||||
*
|
||||
* I_DIRTY_SYNC Inode is dirty, but doesn't have to be written on
|
||||
* fdatasync(). i_atime is the usual cause.
|
||||
* I_DIRTY_DATASYNC Data-related inode changes pending. We keep track of
|
||||
* these changes separately from I_DIRTY_SYNC so that we
|
||||
* don't have to write inode on fdatasync() when only
|
||||
* mtime has changed in it.
|
||||
* I_DIRTY_PAGES Inode has dirty pages. Inode itself may be clean.
|
||||
* I_NEW Serves as both a mutex and completion notification.
|
||||
* New inodes set I_NEW. If two processes both create
|
||||
* the same inode, one of them will release its inode and
|
||||
* wait for I_NEW to be released before returning.
|
||||
* Inodes in I_WILL_FREE, I_FREEING or I_CLEAR state can
|
||||
* also cause waiting on I_NEW, without I_NEW actually
|
||||
* being set. find_inode() uses this to prevent returning
|
||||
* nearly-dead inodes.
|
||||
* I_WILL_FREE Must be set when calling write_inode_now() if i_count
|
||||
* is zero. I_FREEING must be set when I_WILL_FREE is
|
||||
* cleared.
|
||||
* I_FREEING Set when inode is about to be freed but still has dirty
|
||||
* pages or buffers attached or the inode itself is still
|
||||
* dirty.
|
||||
* I_CLEAR Added by clear_inode(). In this state the inode is
|
||||
* clean and can be destroyed. Inode keeps I_FREEING.
|
||||
*
|
||||
* Inodes that are I_WILL_FREE, I_FREEING or I_CLEAR are
|
||||
* prohibited for many purposes. iget() must wait for
|
||||
* the inode to be completely released, then create it
|
||||
* anew. Other functions will just ignore such inodes,
|
||||
* if appropriate. I_NEW is used for waiting.
|
||||
*
|
||||
* I_SYNC Writeback of inode is running. The bit is set during
|
||||
* data writeback, and cleared with a wakeup on the bit
|
||||
* address once it is done. The bit is also used to pin
|
||||
* the inode in memory for flusher thread.
|
||||
*
|
||||
* I_REFERENCED Marks the inode as recently references on the LRU list.
|
||||
*
|
||||
* I_DIO_WAKEUP Never set. Only used as a key for wait_on_bit().
|
||||
*
|
||||
* I_WB_SWITCH Cgroup bdi_writeback switching in progress. Used to
|
||||
* synchronize competing switching instances and to tell
|
||||
* wb stat updates to grab mapping->tree_lock. See
|
||||
* inode_switch_wb_work_fn() for details.
|
||||
*
|
||||
* Q: What is the difference between I_WILL_FREE and I_FREEING?
|
||||
*/
|
||||
#define I_DIRTY_SYNC (1 << 0)
|
||||
#define I_DIRTY_DATASYNC (1 << 1)
|
||||
#define I_DIRTY_PAGES (1 << 2)
|
||||
#define __I_NEW 3
|
||||
#define I_NEW (1 << __I_NEW)
|
||||
#define I_WILL_FREE (1 << 4)
|
||||
#define I_FREEING (1 << 5)
|
||||
#define I_CLEAR (1 << 6)
|
||||
#define __I_SYNC 7
|
||||
#define I_SYNC (1 << __I_SYNC)
|
||||
#define I_REFERENCED (1 << 8)
|
||||
#define __I_DIO_WAKEUP 9
|
||||
#define I_DIO_WAKEUP (1 << __I_DIO_WAKEUP)
|
||||
#define I_LINKABLE (1 << 10)
|
||||
#define I_DIRTY_TIME (1 << 11)
|
||||
#define __I_DIRTY_TIME_EXPIRED 12
|
||||
#define I_DIRTY_TIME_EXPIRED (1 << __I_DIRTY_TIME_EXPIRED)
|
||||
#define I_WB_SWITCH (1 << 13)
|
||||
|
||||
#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)
|
||||
#define I_DIRTY_ALL (I_DIRTY | I_DIRTY_TIME)
|
||||
|
||||
#endif /* _LINUX_FS_H */
|
|
@ -0,0 +1,82 @@
|
|||
#ifndef __LINUX_MAGIC_H__
|
||||
#define __LINUX_MAGIC_H__
|
||||
|
||||
#define ADFS_SUPER_MAGIC 0xadf5
|
||||
#define AFFS_SUPER_MAGIC 0xadff
|
||||
#define AFS_SUPER_MAGIC 0x5346414F
|
||||
#define AUTOFS_SUPER_MAGIC 0x0187
|
||||
#define CODA_SUPER_MAGIC 0x73757245
|
||||
#define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
|
||||
#define CRAMFS_MAGIC_WEND 0x453dcd28 /* magic number with the wrong endianess */
|
||||
#define DEBUGFS_MAGIC 0x64626720
|
||||
#define SECURITYFS_MAGIC 0x73636673
|
||||
#define SELINUX_MAGIC 0xf97cff8c
|
||||
#define SMACK_MAGIC 0x43415d53 /* "SMAC" */
|
||||
#define RAMFS_MAGIC 0x858458f6 /* some random number */
|
||||
#define TMPFS_MAGIC 0x01021994
|
||||
#define HUGETLBFS_MAGIC 0x958458f6 /* some random number */
|
||||
#define SQUASHFS_MAGIC 0x73717368
|
||||
#define ECRYPTFS_SUPER_MAGIC 0xf15f
|
||||
#define EFS_SUPER_MAGIC 0x414A53
|
||||
#define EXT2_SUPER_MAGIC 0xEF53
|
||||
#define EXT3_SUPER_MAGIC 0xEF53
|
||||
#define XENFS_SUPER_MAGIC 0xabba1974
|
||||
#define EXT4_SUPER_MAGIC 0xEF53
|
||||
#define BTRFS_SUPER_MAGIC 0x9123683E
|
||||
#define NILFS_SUPER_MAGIC 0x3434
|
||||
#define F2FS_SUPER_MAGIC 0xF2F52010
|
||||
#define HPFS_SUPER_MAGIC 0xf995e849
|
||||
#define ISOFS_SUPER_MAGIC 0x9660
|
||||
#define JFFS2_SUPER_MAGIC 0x72b6
|
||||
#define PSTOREFS_MAGIC 0x6165676C
|
||||
#define EFIVARFS_MAGIC 0xde5e81e4
|
||||
#define HOSTFS_SUPER_MAGIC 0x00c0ffee
|
||||
#define OVERLAYFS_SUPER_MAGIC 0x794c7630
|
||||
|
||||
#define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
|
||||
#define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
|
||||
#define MINIX2_SUPER_MAGIC 0x2468 /* minix v2 fs, 14 char names */
|
||||
#define MINIX2_SUPER_MAGIC2 0x2478 /* minix v2 fs, 30 char names */
|
||||
#define MINIX3_SUPER_MAGIC 0x4d5a /* minix v3 fs, 60 char names */
|
||||
|
||||
#define MSDOS_SUPER_MAGIC 0x4d44 /* MD */
|
||||
#define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */
|
||||
#define NFS_SUPER_MAGIC 0x6969
|
||||
#define OPENPROM_SUPER_MAGIC 0x9fa1
|
||||
#define QNX4_SUPER_MAGIC 0x002f /* qnx4 fs detection */
|
||||
#define QNX6_SUPER_MAGIC 0x68191122 /* qnx6 fs detection */
|
||||
|
||||
#define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */
|
||||
/* used by file system utilities that
|
||||
look at the superblock, etc. */
|
||||
#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"
|
||||
#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
|
||||
#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
|
||||
|
||||
#define SMB_SUPER_MAGIC 0x517B
|
||||
#define CGROUP_SUPER_MAGIC 0x27e0eb
|
||||
#define CGROUP2_SUPER_MAGIC 0x63677270
|
||||
|
||||
|
||||
#define STACK_END_MAGIC 0x57AC6E9D
|
||||
|
||||
#define TRACEFS_MAGIC 0x74726163
|
||||
|
||||
#define V9FS_MAGIC 0x01021997
|
||||
|
||||
#define BDEVFS_MAGIC 0x62646576
|
||||
#define BINFMTFS_MAGIC 0x42494e4d
|
||||
#define DEVPTS_SUPER_MAGIC 0x1cd1
|
||||
#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
|
||||
#define PIPEFS_MAGIC 0x50495045
|
||||
#define PROC_SUPER_MAGIC 0x9fa0
|
||||
#define SOCKFS_MAGIC 0x534F434B
|
||||
#define SYSFS_MAGIC 0x62656572
|
||||
#define USBDEVICE_SUPER_MAGIC 0x9fa2
|
||||
#define MTD_INODE_FS_MAGIC 0x11307854
|
||||
#define ANON_INODE_FS_MAGIC 0x09041934
|
||||
#define BTRFS_TEST_MAGIC 0x73727279
|
||||
#define NSFS_MAGIC 0x6e736673
|
||||
#define BPF_FS_MAGIC 0xcafe4a11
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
*
|
||||
* Definitions for mount interface. This describes the in the kernel build
|
||||
* linkedlist with mounted filesystems.
|
||||
*
|
||||
* Author: Marco van Wieringen <mvw@planets.elm.net>
|
||||
*
|
||||
*/
|
||||
#ifndef _LINUX_MOUNT_H
|
||||
#define _LINUX_MOUNT_H
|
||||
|
||||
#include <linux/dcache.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
struct vfsmount {
|
||||
struct dentry *mnt_root; /* root of the mounted tree */
|
||||
struct super_block *mnt_sb; /* pointer to superblock */
|
||||
int mnt_flags;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_MOUNT_H */
|
|
@ -10,6 +10,8 @@
|
|||
#ifndef __LINUX_MTD_SPI_NOR_H
|
||||
#define __LINUX_MTD_SPI_NOR_H
|
||||
|
||||
#include <linux/mutex.h>
|
||||
|
||||
/*
|
||||
* Note on opcode nomenclature: some opcodes have a format like
|
||||
* SPINOR_OP_FUNCTION{4,}_x_y_z. The numbers x, y, and z stand for the number
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Mutexes: blocking mutual exclusion locks
|
||||
*
|
||||
* started by Ingo Molnar:
|
||||
*
|
||||
* Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
|
||||
*
|
||||
* This file contains the main data structure and API definitions.
|
||||
*/
|
||||
#ifndef __LINUX_MUTEX_H
|
||||
#define __LINUX_MUTEX_H
|
||||
|
||||
#define mutex_init(...)
|
||||
#define mutex_lock(...)
|
||||
#define mutex_unlock(...)
|
||||
struct mutex { int i; };
|
||||
|
||||
#endif /* __LINUX_MUTEX_H */
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef _LINUX_PAGEMAP_H
|
||||
#define _LINUX_PAGEMAP_H
|
||||
|
||||
/*
|
||||
* Copyright 1995 Linus Torvalds
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
||||
#define PAGE_CACHE_SHIFT PAGE_SHIFT
|
||||
#define PAGE_CACHE_SIZE PAGE_SIZE
|
||||
#define PAGE_CACHE_MASK PAGE_MASK
|
||||
|
||||
#endif /* _LINUX_PAGEMAP_H */
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _LINUX_PATH_H
|
||||
#define _LINUX_PATH_H
|
||||
|
||||
struct dentry;
|
||||
struct vfsmount;
|
||||
|
||||
struct path {
|
||||
struct vfsmount *mnt;
|
||||
struct dentry *dentry;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_PATH_H */
|
|
@ -0,0 +1,19 @@
|
|||
/* rwsem.h: R/W semaphores, public interface
|
||||
*
|
||||
* Written by David Howells (dhowells@redhat.com).
|
||||
* Derived from asm-i386/semaphore.h
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_RWSEM_H
|
||||
#define _LINUX_RWSEM_H
|
||||
|
||||
struct rw_semaphore { int i; };
|
||||
|
||||
#define init_rwsem(...) do { } while (0)
|
||||
#define down_read(...) do { } while (0)
|
||||
#define down_write(...) do { } while (0)
|
||||
#define down_write_trylock(...) 1
|
||||
#define up_read(...) do { } while (0)
|
||||
#define up_write(...) do { } while (0)
|
||||
|
||||
#endif /* _LINUX_RWSEM_H */
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef _LINUX_SCHED_H
|
||||
#define _LINUX_SCHED_H
|
||||
|
||||
#define cond_resched() do { } while (0)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef __LINUX_SPINLOCK_H
|
||||
#define __LINUX_SPINLOCK_H
|
||||
|
||||
typedef int spinlock_t;
|
||||
#define spin_lock_init(...)
|
||||
#define spin_lock(...)
|
||||
#define spin_unlock(...)
|
||||
#define spin_lock_irqsave(lock, flags) do { flags = 0; } while (0)
|
||||
#define spin_unlock_irqrestore(lock, flags) do { flags = flags; } while (0)
|
||||
|
||||
#endif /* __LINUX_SPINLOCK_H */
|
|
@ -5,4 +5,9 @@
|
|||
|
||||
#define NSEC_PER_SEC 1000000000L
|
||||
|
||||
struct timespec {
|
||||
time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -157,6 +157,11 @@ typedef __u32 __bitwise __wsum;
|
|||
#define __aligned_be64 __be64 __attribute__((aligned(8)))
|
||||
#define __aligned_le64 __le64 __attribute__((aligned(8)))
|
||||
|
||||
/*
|
||||
* The type of an index into the pagecache.
|
||||
*/
|
||||
#define pgoff_t unsigned long
|
||||
|
||||
/* A dma_addr_t can hold any valid DMA or bus address for the platform */
|
||||
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
|
||||
typedef u64 dma_addr_t;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef _LINUX_WAIT_H
|
||||
#define _LINUX_WAIT_H
|
||||
/*
|
||||
* Linux wait queue related types and methods
|
||||
*/
|
||||
|
||||
typedef int wait_queue_head_t;
|
||||
|
||||
#define init_waitqueue_head(...) do { } while (0)
|
||||
|
||||
#endif /* _LINUX_WAIT_H */
|
|
@ -38,6 +38,7 @@
|
|||
#include <usb/gadget.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
/*
|
||||
* USB function drivers should return USB_GADGET_DELAYED_STATUS if they
|
||||
|
|
Loading…
Reference in New Issue