1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_JBD_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_JBD_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include "jfs_compat.h"
16951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_DEBUG
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define jfs_debug jbd_debug
18951a39d68df598db08dfced8b4707755864a0492Ying Wang
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define journal_oom_retry 1
20951a39d68df598db08dfced8b4707755864a0492Ying Wang
21951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef JBD_PARANOID_IOFAIL
22951a39d68df598db08dfced8b4707755864a0492Ying Wang
23951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JBD_DEFAULT_MAX_COMMIT_AGE 5
24951a39d68df598db08dfced8b4707755864a0492Ying Wang
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define jbd_debug(f, a...)
26951a39d68df598db08dfced8b4707755864a0492Ying Wang
27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define jbd_kmalloc(size, flags)   __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry)
28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define jbd_rep_kmalloc(size, flags)   __jbd_kmalloc(__FUNCTION__, (size), (flags), 1)
29951a39d68df598db08dfced8b4707755864a0492Ying Wang
30951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_MIN_JOURNAL_BLOCKS 1024
31951a39d68df598db08dfced8b4707755864a0492Ying Wang
32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_MAGIC_NUMBER 0xc03b3998U
33951a39d68df598db08dfced8b4707755864a0492Ying Wang
34951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_DESCRIPTOR_BLOCK 1
35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_COMMIT_BLOCK 2
36951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_SUPERBLOCK_V1 3
37951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_SUPERBLOCK_V2 4
38951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_REVOKE_BLOCK 5
39951a39d68df598db08dfced8b4707755864a0492Ying Wang
40951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct journal_header_s
41951a39d68df598db08dfced8b4707755864a0492Ying Wang{
42951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 h_magic;
43951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 h_blocktype;
44951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 h_sequence;
45951a39d68df598db08dfced8b4707755864a0492Ying Wang} journal_header_t;
46951a39d68df598db08dfced8b4707755864a0492Ying Wang
47951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct journal_block_tag_s
48951a39d68df598db08dfced8b4707755864a0492Ying Wang{
49951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 t_blocknr;
50951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 t_flags;
51951a39d68df598db08dfced8b4707755864a0492Ying Wang} journal_block_tag_t;
52951a39d68df598db08dfced8b4707755864a0492Ying Wang
53951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct journal_revoke_header_s
54951a39d68df598db08dfced8b4707755864a0492Ying Wang{
55951a39d68df598db08dfced8b4707755864a0492Ying Wang journal_header_t r_header;
56951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 r_count;
57951a39d68df598db08dfced8b4707755864a0492Ying Wang} journal_revoke_header_t;
58951a39d68df598db08dfced8b4707755864a0492Ying Wang
59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_FLAG_ESCAPE 1
60951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_FLAG_SAME_UUID 2
61951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_FLAG_DELETED 4
62951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_FLAG_LAST_TAG 8
63951a39d68df598db08dfced8b4707755864a0492Ying Wang
64951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct journal_superblock_s
65951a39d68df598db08dfced8b4707755864a0492Ying Wang{
66951a39d68df598db08dfced8b4707755864a0492Ying Wang
67951a39d68df598db08dfced8b4707755864a0492Ying Wang journal_header_t s_header;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang
69951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_blocksize;
70951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_maxlen;
71951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_first;
72951a39d68df598db08dfced8b4707755864a0492Ying Wang
73951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_sequence;
74951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_start;
75951a39d68df598db08dfced8b4707755864a0492Ying Wang
76951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_errno;
77951a39d68df598db08dfced8b4707755864a0492Ying Wang
78951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_feature_compat;
79951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_feature_incompat;
80951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_feature_ro_compat;
81951a39d68df598db08dfced8b4707755864a0492Ying Wang
82951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 s_uuid[16];
83951a39d68df598db08dfced8b4707755864a0492Ying Wang
84951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_nr_users;
85951a39d68df598db08dfced8b4707755864a0492Ying Wang
86951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_dynsuper;
87951a39d68df598db08dfced8b4707755864a0492Ying Wang
88951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_max_transaction;
89951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 s_max_trans_data;
90951a39d68df598db08dfced8b4707755864a0492Ying Wang
91951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 s_padding[44];
92951a39d68df598db08dfced8b4707755864a0492Ying Wang
93951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 s_users[16*48];
94951a39d68df598db08dfced8b4707755864a0492Ying Wang
95951a39d68df598db08dfced8b4707755864a0492Ying Wang} journal_superblock_t;
96951a39d68df598db08dfced8b4707755864a0492Ying Wang
97951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_HAS_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
98951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_HAS_RO_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
99951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_HAS_INCOMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
100951a39d68df598db08dfced8b4707755864a0492Ying Wang
101951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_FEATURE_INCOMPAT_REVOKE 0x00000001
102951a39d68df598db08dfced8b4707755864a0492Ying Wang
103951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_KNOWN_COMPAT_FEATURES 0
104951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_KNOWN_ROCOMPAT_FEATURES 0
105951a39d68df598db08dfced8b4707755864a0492Ying Wang#define JFS_KNOWN_INCOMPAT_FEATURES JFS_FEATURE_INCOMPAT_REVOKE
106951a39d68df598db08dfced8b4707755864a0492Ying Wang
107951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_None 0
108951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_SyncData 1
109951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Metadata 2
110951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Forget 3
111951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_IO 4
112951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Shadow 5
113951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_LogCtl 6
114951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Reserved 7
115951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Locked 8
116951a39d68df598db08dfced8b4707755864a0492Ying Wang#define BJ_Types 9
117951a39d68df598db08dfced8b4707755864a0492Ying Wang
118951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
119