Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2)  * JFFS2 -- Journalling Flash File System, Version 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * Copyright © 2004  Ferenc Havasi <havasi@inf.u-szeged.hu>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *		     Zoltan Sogor <weth@inf.u-szeged.hu>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *		     Patrik Kluba <pajko@halom.u-szeged.hu>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *		     University of Szeged, Hungary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  * For licensing information, see the file 'LICENCE' in this directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #ifndef JFFS2_SUMMARY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #define JFFS2_SUMMARY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) /* Limit summary size to 64KiB so that we can kmalloc it. If the summary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)    is larger than that, we have to just ditch it and avoid using summary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)    for the eraseblock in question... and it probably doesn't hurt us much
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)    anyway. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #define MAX_SUMMARY_SIZE 65536
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #include <linux/uio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #include <linux/jffs2.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) #define BLK_STATE_ALLFF		0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #define BLK_STATE_CLEAN		1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #define BLK_STATE_PARTDIRTY	2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #define BLK_STATE_CLEANMARKER	3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #define BLK_STATE_ALLDIRTY	4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) #define BLK_STATE_BADBLOCK	5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) #define JFFS2_SUMMARY_NOSUM_SIZE 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) #define JFFS2_SUMMARY_INODE_SIZE (sizeof(struct jffs2_sum_inode_flash))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) #define JFFS2_SUMMARY_DIRENT_SIZE(x) (sizeof(struct jffs2_sum_dirent_flash) + (x))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) #define JFFS2_SUMMARY_XATTR_SIZE (sizeof(struct jffs2_sum_xattr_flash))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) #define JFFS2_SUMMARY_XREF_SIZE (sizeof(struct jffs2_sum_xref_flash))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) /* Summary structures used on flash */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) struct jffs2_sum_unknown_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	jint16_t nodetype;	/* node type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) struct jffs2_sum_inode_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	jint16_t nodetype;	/* node type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	jint32_t inode;		/* inode number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	jint32_t version;	/* inode version */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	jint32_t offset;	/* offset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	jint32_t totlen; 	/* record length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) struct jffs2_sum_dirent_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	jint16_t nodetype;	/* == JFFS_NODETYPE_DIRENT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	jint32_t totlen;	/* record length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	jint32_t offset;	/* offset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	jint32_t pino;		/* parent inode */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	jint32_t version;	/* dirent version */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	jint32_t ino; 		/* == zero for unlink */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	uint8_t nsize;		/* dirent name size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	uint8_t type;		/* dirent type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	uint8_t name[];	/* dirent name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) struct jffs2_sum_xattr_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	jint16_t nodetype;	/* == JFFS2_NODETYPE_XATR */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	jint32_t xid;		/* xattr identifier */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	jint32_t version;	/* version number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	jint32_t offset;	/* offset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	jint32_t totlen;	/* node length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) struct jffs2_sum_xref_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	jint16_t nodetype;	/* == JFFS2_NODETYPE_XREF */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	jint32_t offset;	/* offset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) union jffs2_sum_flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	struct jffs2_sum_unknown_flash u;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	struct jffs2_sum_inode_flash i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	struct jffs2_sum_dirent_flash d;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	struct jffs2_sum_xattr_flash x;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	struct jffs2_sum_xref_flash r;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) /* Summary structures used in the memory */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) struct jffs2_sum_unknown_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	union jffs2_sum_mem *next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	jint16_t nodetype;	/* node type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) struct jffs2_sum_inode_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	union jffs2_sum_mem *next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	jint16_t nodetype;	/* node type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	jint32_t inode;		/* inode number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	jint32_t version;	/* inode version */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	jint32_t offset;	/* offset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	jint32_t totlen; 	/* record length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) struct jffs2_sum_dirent_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	union jffs2_sum_mem *next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	jint16_t nodetype;	/* == JFFS_NODETYPE_DIRENT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	jint32_t totlen;	/* record length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	jint32_t offset;	/* ofset on jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	jint32_t pino;		/* parent inode */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	jint32_t version;	/* dirent version */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	jint32_t ino; 		/* == zero for unlink */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	uint8_t nsize;		/* dirent name size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	uint8_t type;		/* dirent type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	uint8_t name[];	/* dirent name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) struct jffs2_sum_xattr_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	union jffs2_sum_mem *next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	jint16_t nodetype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	jint32_t xid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	jint32_t version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	jint32_t offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	jint32_t totlen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) struct jffs2_sum_xref_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	union jffs2_sum_mem *next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	jint16_t nodetype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	jint32_t offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) } __attribute__((packed));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) union jffs2_sum_mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	struct jffs2_sum_unknown_mem u;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 	struct jffs2_sum_inode_mem i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	struct jffs2_sum_dirent_mem d;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	struct jffs2_sum_xattr_mem x;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	struct jffs2_sum_xref_mem r;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) /* Summary related information stored in superblock */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) struct jffs2_summary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	uint32_t sum_size;      /* collected summary information for nextblock */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	uint32_t sum_num;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	uint32_t sum_padded;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	union jffs2_sum_mem *sum_list_head;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	union jffs2_sum_mem *sum_list_tail;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	jint32_t *sum_buf;	/* buffer for writing out summary */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) /* Summary marker is stored at the end of every sumarized erase block */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) struct jffs2_sum_marker
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	jint32_t offset;	/* offset of the summary node in the jeb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	jint32_t magic; 	/* == JFFS2_SUM_MAGIC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) #define JFFS2_SUMMARY_FRAME_SIZE (sizeof(struct jffs2_raw_summary) + sizeof(struct jffs2_sum_marker))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) #ifdef CONFIG_JFFS2_SUMMARY	/* SUMMARY SUPPORT ENABLED */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) #define jffs2_sum_active() (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) int jffs2_sum_init(struct jffs2_sb_info *c);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) void jffs2_sum_exit(struct jffs2_sb_info *c);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) void jffs2_sum_disable_collecting(struct jffs2_summary *s);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) int jffs2_sum_is_disabled(struct jffs2_summary *s);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) void jffs2_sum_reset_collected(struct jffs2_summary *s);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) void jffs2_sum_move_collected(struct jffs2_sb_info *c, struct jffs2_summary *s);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) int jffs2_sum_add_kvec(struct jffs2_sb_info *c, const struct kvec *invecs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 			unsigned long count,  uint32_t to);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) int jffs2_sum_write_sumnode(struct jffs2_sb_info *c);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) int jffs2_sum_add_padding_mem(struct jffs2_summary *s, uint32_t size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) int jffs2_sum_add_inode_mem(struct jffs2_summary *s, struct jffs2_raw_inode *ri, uint32_t ofs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) int jffs2_sum_add_dirent_mem(struct jffs2_summary *s, struct jffs2_raw_dirent *rd, uint32_t ofs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) int jffs2_sum_add_xattr_mem(struct jffs2_summary *s, struct jffs2_raw_xattr *rx, uint32_t ofs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) int jffs2_sum_add_xref_mem(struct jffs2_summary *s, struct jffs2_raw_xref *rr, uint32_t ofs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) int jffs2_sum_scan_sumnode(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 			   struct jffs2_raw_summary *summary, uint32_t sumlen,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 			   uint32_t *pseudo_random);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #else				/* SUMMARY DISABLED */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) #define jffs2_sum_active() (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) #define jffs2_sum_init(a) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) #define jffs2_sum_exit(a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #define jffs2_sum_disable_collecting(a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) #define jffs2_sum_is_disabled(a) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #define jffs2_sum_reset_collected(a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) #define jffs2_sum_add_kvec(a,b,c,d) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) #define jffs2_sum_move_collected(a,b)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) #define jffs2_sum_write_sumnode(a) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) #define jffs2_sum_add_padding_mem(a,b)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) #define jffs2_sum_add_inode_mem(a,b,c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) #define jffs2_sum_add_dirent_mem(a,b,c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) #define jffs2_sum_add_xattr_mem(a,b,c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) #define jffs2_sum_add_xref_mem(a,b,c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) #endif /* CONFIG_JFFS2_SUMMARY */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) #endif /* JFFS2_SUMMARY_H */