mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 01:21:58 +00:00
xfs: separate out log format definitions
The on-disk format definitions for the log are spread randoms through a couple of header files. Consolidate it all in a single file that can be shared easily with userspace. This means that xfs_log.h and xfs_log_priv.h no longer need to be shared with userspace. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
7a378c9aea
commit
fc06c6d064
4 changed files with 207 additions and 208 deletions
|
@ -18,14 +18,29 @@
|
|||
#ifndef __XFS_LOG_H__
|
||||
#define __XFS_LOG_H__
|
||||
|
||||
/* get lsn fields */
|
||||
#define CYCLE_LSN(lsn) ((uint)((lsn)>>32))
|
||||
#define BLOCK_LSN(lsn) ((uint)(lsn))
|
||||
#include "xfs_log_format.h"
|
||||
|
||||
/* this is used in a spot where we might otherwise double-endian-flip */
|
||||
#define CYCLE_LSN_DISK(lsn) (((__be32 *)&(lsn))[0])
|
||||
struct xfs_log_vec {
|
||||
struct xfs_log_vec *lv_next; /* next lv in build list */
|
||||
int lv_niovecs; /* number of iovecs in lv */
|
||||
struct xfs_log_iovec *lv_iovecp; /* iovec array */
|
||||
struct xfs_log_item *lv_item; /* owner */
|
||||
char *lv_buf; /* formatted buffer */
|
||||
int lv_buf_len; /* size of formatted buffer */
|
||||
};
|
||||
|
||||
#define XFS_LOG_VEC_ORDERED (-1)
|
||||
|
||||
/*
|
||||
* Structure used to pass callback function and the function's argument
|
||||
* to the log manager.
|
||||
*/
|
||||
typedef struct xfs_log_callback {
|
||||
struct xfs_log_callback *cb_next;
|
||||
void (*cb_func)(void *, int);
|
||||
void *cb_arg;
|
||||
} xfs_log_callback_t;
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* By comparing each component, we don't have to worry about extra
|
||||
* endian issues in treating two 32 bit numbers as one 64 bit number
|
||||
|
@ -59,67 +74,6 @@ static inline xfs_lsn_t _lsn_cmp(xfs_lsn_t lsn1, xfs_lsn_t lsn2)
|
|||
*/
|
||||
#define XFS_LOG_SYNC 0x1
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
/* Log Clients */
|
||||
#define XFS_TRANSACTION 0x69
|
||||
#define XFS_VOLUME 0x2
|
||||
#define XFS_LOG 0xaa
|
||||
|
||||
|
||||
/* Region types for iovec's i_type */
|
||||
#define XLOG_REG_TYPE_BFORMAT 1
|
||||
#define XLOG_REG_TYPE_BCHUNK 2
|
||||
#define XLOG_REG_TYPE_EFI_FORMAT 3
|
||||
#define XLOG_REG_TYPE_EFD_FORMAT 4
|
||||
#define XLOG_REG_TYPE_IFORMAT 5
|
||||
#define XLOG_REG_TYPE_ICORE 6
|
||||
#define XLOG_REG_TYPE_IEXT 7
|
||||
#define XLOG_REG_TYPE_IBROOT 8
|
||||
#define XLOG_REG_TYPE_ILOCAL 9
|
||||
#define XLOG_REG_TYPE_IATTR_EXT 10
|
||||
#define XLOG_REG_TYPE_IATTR_BROOT 11
|
||||
#define XLOG_REG_TYPE_IATTR_LOCAL 12
|
||||
#define XLOG_REG_TYPE_QFORMAT 13
|
||||
#define XLOG_REG_TYPE_DQUOT 14
|
||||
#define XLOG_REG_TYPE_QUOTAOFF 15
|
||||
#define XLOG_REG_TYPE_LRHEADER 16
|
||||
#define XLOG_REG_TYPE_UNMOUNT 17
|
||||
#define XLOG_REG_TYPE_COMMIT 18
|
||||
#define XLOG_REG_TYPE_TRANSHDR 19
|
||||
#define XLOG_REG_TYPE_ICREATE 20
|
||||
#define XLOG_REG_TYPE_MAX 20
|
||||
|
||||
typedef struct xfs_log_iovec {
|
||||
void *i_addr; /* beginning address of region */
|
||||
int i_len; /* length in bytes of region */
|
||||
uint i_type; /* type of region */
|
||||
} xfs_log_iovec_t;
|
||||
|
||||
struct xfs_log_vec {
|
||||
struct xfs_log_vec *lv_next; /* next lv in build list */
|
||||
int lv_niovecs; /* number of iovecs in lv */
|
||||
struct xfs_log_iovec *lv_iovecp; /* iovec array */
|
||||
struct xfs_log_item *lv_item; /* owner */
|
||||
char *lv_buf; /* formatted buffer */
|
||||
int lv_buf_len; /* size of formatted buffer */
|
||||
};
|
||||
|
||||
#define XFS_LOG_VEC_ORDERED (-1)
|
||||
|
||||
/*
|
||||
* Structure used to pass callback function and the function's argument
|
||||
* to the log manager.
|
||||
*/
|
||||
typedef struct xfs_log_callback {
|
||||
struct xfs_log_callback *cb_next;
|
||||
void (*cb_func)(void *, int);
|
||||
void *cb_arg;
|
||||
} xfs_log_callback_t;
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* Log manager interfaces */
|
||||
struct xfs_mount;
|
||||
struct xlog_in_core;
|
||||
|
@ -188,5 +142,4 @@ void xfs_log_work_queue(struct xfs_mount *mp);
|
|||
void xfs_log_worker(struct work_struct *work);
|
||||
void xfs_log_quiesce(struct xfs_mount *mp);
|
||||
|
||||
#endif
|
||||
#endif /* __XFS_LOG_H__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue