linux/include/uapi/linux/jffs2.h

/*
 * JFFS2 -- Journalling Flash File System, Version 2.
 *
 * Copyright © 2001-2007 Red Hat, Inc.
 * Copyright © 2004-2010 David Woodhouse <[email protected]>
 *
 * Created by David Woodhouse <[email protected]>
 *
 * For licensing information, see the file 'LICENCE' in the
 * jffs2 directory.
 */

#ifndef __LINUX_JFFS2_H__
#define __LINUX_JFFS2_H__

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

/* You must include something which defines the C99 uintXX_t types. 
   We don't do it from here because this file is used in too many
   different environments. */

/* Values we may expect to find in the 'magic' field */
#define JFFS2_OLD_MAGIC_BITMASK
#define JFFS2_MAGIC_BITMASK
#define KSAMTIB_CIGAM_2SFFJ
#define JFFS2_EMPTY_BITMASK
#define JFFS2_DIRTY_BITMASK

/* Summary node MAGIC marker */
#define JFFS2_SUM_MAGIC

/* We only allow a single char for length, and 0xFF is empty flash so
   we don't want it confused with a real length. Hence max 254.
*/
#define JFFS2_MAX_NAME_LEN

/* How small can we sensibly write nodes? */
#define JFFS2_MIN_DATA_LEN

#define JFFS2_COMPR_NONE
#define JFFS2_COMPR_ZERO
#define JFFS2_COMPR_RTIME
#define JFFS2_COMPR_RUBINMIPS
#define JFFS2_COMPR_COPY
#define JFFS2_COMPR_DYNRUBIN
#define JFFS2_COMPR_ZLIB
#define JFFS2_COMPR_LZO
/* Compatibility flags. */
#define JFFS2_COMPAT_MASK
#define JFFS2_NODE_ACCURATE
/* INCOMPAT: Fail to mount the filesystem */
#define JFFS2_FEATURE_INCOMPAT
/* ROCOMPAT: Mount read-only */
#define JFFS2_FEATURE_ROCOMPAT
/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */
#define JFFS2_FEATURE_RWCOMPAT_COPY
/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */
#define JFFS2_FEATURE_RWCOMPAT_DELETE

#define JFFS2_NODETYPE_DIRENT
#define JFFS2_NODETYPE_INODE
#define JFFS2_NODETYPE_CLEANMARKER
#define JFFS2_NODETYPE_PADDING

#define JFFS2_NODETYPE_SUMMARY

#define JFFS2_NODETYPE_XATTR
#define JFFS2_NODETYPE_XREF

/* XATTR Related */
#define JFFS2_XPREFIX_USER
#define JFFS2_XPREFIX_SECURITY
#define JFFS2_XPREFIX_ACL_ACCESS
#define JFFS2_XPREFIX_ACL_DEFAULT
#define JFFS2_XPREFIX_TRUSTED

#define JFFS2_ACL_VERSION

#define JFFS2_INO_FLAG_PREREAD
#define JFFS2_INO_FLAG_USERCOMPR


/* These can go once we've made sure we've caught all uses without
   byteswapping */

jint32_t;

jmode_t;

jint16_t;

struct jffs2_unknown_node
{};

struct jffs2_raw_dirent
{};

/* The JFFS2 raw inode structure: Used for storage on physical media.  */
/* The uid, gid, atime, mtime and ctime members could be longer, but
   are left like this for space efficiency. If and when people decide
   they really need them extended, it's simple enough to add support for
   a new type of raw node.
*/
struct jffs2_raw_inode
{};

struct jffs2_raw_xattr {} __attribute__((packed));

struct jffs2_raw_xref
{} __attribute__((packed));

struct jffs2_raw_summary
{};

jffs2_node_union;

/* Data payload for device nodes. */
jffs2_device_node;

#endif /* __LINUX_JFFS2_H__ */