Blame gfs2/libgfs2/ondisk.c

Packit Service 360c39
#include "clusterautoconfig.h"
Packit Service 360c39
Packit Service 360c39
#include <stdio.h>
Packit Service 360c39
#include <stdlib.h>
Packit Service 360c39
#include <string.h>
Packit Service 360c39
#include <stdint.h>
Packit Service 360c39
#include <inttypes.h>
Packit Service 360c39
#include <ctype.h>
Packit Service 360c39
#include <linux/types.h>
Packit Service 360c39
#include "libgfs2.h"
Packit Service 360c39
#ifdef GFS2_HAS_UUID
Packit Service 360c39
#include <uuid.h>
Packit Service 360c39
#endif
Packit Service 360c39
Packit Service 360c39
#define pv(struct, member, fmt, fmt2) do {				\
Packit Service 360c39
		print_it("  "#member, fmt, fmt2, struct->member);	\
Packit Service 360c39
	} while (FALSE);
Packit Service 360c39
#define pv2(struct, member, fmt, fmt2) do {				\
Packit Service 360c39
		print_it("  ", fmt, fmt2, struct->member);		\
Packit Service 360c39
	} while (FALSE);
Packit Service 360c39
Packit Service 360c39
Packit Service 360c39
#define CPIN_08(s1, s2, member, count) {memcpy((s1->member), (s2->member), (count));}
Packit Service 360c39
#define CPOUT_08(s1, s2, member, count) {memcpy((s2->member), (s1->member), (count));}
Packit Service 360c39
#define CPIN_16(s1, s2, member) {(s1->member) = be16_to_cpu((s2->member));}
Packit Service 360c39
#define CPOUT_16(s1, s2, member) {(s2->member) = cpu_to_be16((s1->member));}
Packit Service 360c39
#define CPIN_32(s1, s2, member) {(s1->member) = be32_to_cpu((s2->member));}
Packit Service 360c39
#define CPOUT_32(s1, s2, member) {(s2->member) = cpu_to_be32((s1->member));}
Packit Service 360c39
#define CPIN_64(s1, s2, member) {(s1->member) = be64_to_cpu((s2->member));}
Packit Service 360c39
#define CPOUT_64(s1, s2, member) {(s2->member) = cpu_to_be64((s1->member));}
Packit Service 360c39
Packit Service 360c39
/*
Packit Service 360c39
 * gfs2_xxx_in - read in an xxx struct
Packit Service 360c39
 * first arg: the cpu-order structure
Packit Service 360c39
 * buf: the disk-order block data
Packit Service 360c39
 *
Packit Service 360c39
 * gfs2_xxx_out - write out an xxx struct
Packit Service 360c39
 * first arg: the cpu-order structure
Packit Service 360c39
 * buf: the disk-order block data
Packit Service 360c39
 *
Packit Service 360c39
 * gfs2_xxx_print - print out an xxx struct
Packit Service 360c39
 * first arg: the cpu-order structure
Packit Service 360c39
 */
Packit Service 360c39
Packit Service 360c39
void gfs2_inum_in(struct gfs2_inum *no, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_inum *str = (struct gfs2_inum *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_64(no, str, no_formal_ino);
Packit Service 360c39
	CPIN_64(no, str, no_addr);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_inum_out(const struct gfs2_inum *no, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_inum *str = (struct gfs2_inum *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(no, str, no_formal_ino);
Packit Service 360c39
	CPOUT_64(no, str, no_addr);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_inum_print(const struct gfs2_inum *no)
Packit Service 360c39
{
Packit Service 360c39
	pv(no, no_formal_ino, "%llu", "0x%llx");
Packit Service 360c39
	pv(no, no_addr, "%llu", "0x%llx");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_meta_header_in(struct gfs2_meta_header *mh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_meta_header *str = (struct gfs2_meta_header *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_32(mh, str, mh_magic);
Packit Service 360c39
	CPIN_32(mh, str, mh_type);
Packit Service 360c39
	CPIN_32(mh, str, mh_format);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_meta_header_out(const struct gfs2_meta_header *mh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_meta_header *str = (struct gfs2_meta_header *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(mh, str, mh_magic);
Packit Service 360c39
	CPOUT_32(mh, str, mh_type);
Packit Service 360c39
	CPOUT_32(mh, str, mh_format);
Packit Service 360c39
	str->__pad0 = 0;
Packit Service 360c39
	str->__pad1 = 0;
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_meta_header_print(const struct gfs2_meta_header *mh)
Packit Service 360c39
{
Packit Service 360c39
	pv(mh, mh_magic, "0x%08X", NULL);
Packit Service 360c39
	pv(mh, mh_type, "%u", "0x%x");
Packit Service 360c39
	pv(mh, mh_format, "%u", "0x%x");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_sb_in(struct gfs2_sb *sb, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_sb *str = (struct gfs2_sb *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&sb->sb_header, buf);
Packit Service 360c39
Packit Service 360c39
	CPIN_32(sb, str, sb_fs_format);
Packit Service 360c39
	CPIN_32(sb, str, sb_multihost_format);
Packit Service 360c39
	CPIN_32(sb, str, __pad0);                        /* gfs sb_flags */
Packit Service 360c39
Packit Service 360c39
	CPIN_32(sb, str, sb_bsize);
Packit Service 360c39
	CPIN_32(sb, str, sb_bsize_shift);
Packit Service 360c39
	CPIN_32(sb, str, __pad1);                        /* gfs sb_seg_size */
Packit Service 360c39
Packit Service 360c39
	gfs2_inum_in(&sb->sb_master_dir, (char *)&str->sb_master_dir);
Packit Service 360c39
	gfs2_inum_in(&sb->sb_root_dir, (char *)&str->sb_root_dir);
Packit Service 360c39
Packit Service 360c39
	CPIN_08(sb, str, sb_lockproto, GFS2_LOCKNAME_LEN);
Packit Service 360c39
	CPIN_08(sb, str, sb_locktable, GFS2_LOCKNAME_LEN);
Packit Service 360c39
	gfs2_inum_in(&sb->__pad2, (char *)&str->__pad2); /* gfs rindex */
Packit Service 360c39
	gfs2_inum_in(&sb->__pad3, (char *)&str->__pad3); /* gfs quota */
Packit Service 360c39
	gfs2_inum_in(&sb->__pad4, (char *)&str->__pad4); /* gfs license */
Packit Service 360c39
#ifdef GFS2_HAS_UUID
Packit Service 360c39
	CPIN_08(sb, str, sb_uuid, sizeof(sb->sb_uuid));
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_sb_out(const struct gfs2_sb *sb, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_sb *str = (struct gfs2_sb *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&sb->sb_header, buf);
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(sb, str, sb_fs_format);
Packit Service 360c39
	CPOUT_32(sb, str, sb_multihost_format);
Packit Service 360c39
	CPOUT_32(sb, str, __pad0);                        /* gfs sb_flags */
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(sb, str, sb_bsize);
Packit Service 360c39
	CPOUT_32(sb, str, sb_bsize_shift);
Packit Service 360c39
	CPOUT_32(sb, str, __pad1);                        /* gfs sb_seg_size */
Packit Service 360c39
Packit Service 360c39
	gfs2_inum_out(&sb->sb_master_dir, (char *)&str->sb_master_dir);
Packit Service 360c39
	gfs2_inum_out(&sb->sb_root_dir, (char *)&str->sb_root_dir);
Packit Service 360c39
Packit Service 360c39
	CPOUT_08(sb, str, sb_lockproto, GFS2_LOCKNAME_LEN);
Packit Service 360c39
	CPOUT_08(sb, str, sb_locktable, GFS2_LOCKNAME_LEN);
Packit Service 360c39
	gfs2_inum_out(&sb->__pad2, (char *)&str->__pad2); /* gfs rindex */
Packit Service 360c39
	gfs2_inum_out(&sb->__pad3, (char *)&str->__pad3); /* gfs quota */
Packit Service 360c39
	gfs2_inum_out(&sb->__pad4, (char *)&str->__pad4); /* gfs license */
Packit Service 360c39
#ifdef GFS2_HAS_UUID
Packit Service 360c39
	memcpy(str->sb_uuid, sb->sb_uuid, 16);
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_sb_print(const struct gfs2_sb *sb)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&sb->sb_header);
Packit Service 360c39
Packit Service 360c39
	pv(sb, sb_fs_format, "%u", "0x%x");
Packit Service 360c39
	pv(sb, sb_multihost_format, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	pv(sb, sb_bsize, "%u", "0x%x");
Packit Service 360c39
	pv(sb, sb_bsize_shift, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	gfs2_inum_print(&sb->sb_master_dir);
Packit Service 360c39
	gfs2_inum_print(&sb->sb_root_dir);
Packit Service 360c39
Packit Service 360c39
	pv(sb, sb_lockproto, "%s", NULL);
Packit Service 360c39
	pv(sb, sb_locktable, "%s", NULL);
Packit Service 360c39
Packit Service 360c39
#ifdef GFS2_HAS_UUID
Packit Service 360c39
	{
Packit Service 360c39
	char readable_uuid[36+1];
Packit Service 360c39
Packit Service 360c39
	uuid_unparse(sb->sb_uuid, readable_uuid);
Packit Service 360c39
	print_it("  uuid", "%36s", NULL, readable_uuid);
Packit Service 360c39
	}
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rindex_in(struct gfs2_rindex *ri, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_rindex *str = (struct gfs2_rindex *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_64(ri, str, ri_addr);
Packit Service 360c39
	CPIN_32(ri, str, ri_length);
Packit Service 360c39
	CPIN_32(ri, str, __pad);
Packit Service 360c39
	CPIN_64(ri, str, ri_data0);
Packit Service 360c39
	CPIN_32(ri, str, ri_data);
Packit Service 360c39
	CPIN_32(ri, str, ri_bitbytes);
Packit Service 360c39
	CPIN_08(ri, str, ri_reserved, sizeof(ri->ri_reserved));
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rindex_out(const struct gfs2_rindex *ri, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_rindex *str = (struct gfs2_rindex *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(ri, str, ri_addr);
Packit Service 360c39
	CPOUT_32(ri, str, ri_length);
Packit Service 360c39
	str->__pad = 0;
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(ri, str, ri_data0);
Packit Service 360c39
	CPOUT_32(ri, str, ri_data);
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(ri, str, ri_bitbytes);
Packit Service 360c39
Packit Service 360c39
	CPOUT_08(ri, str, ri_reserved, sizeof(ri->ri_reserved));
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rindex_print(const struct gfs2_rindex *ri)
Packit Service 360c39
{
Packit Service 360c39
	pv(ri, ri_addr, "%llu", "0x%llx");
Packit Service 360c39
	pv(ri, ri_length, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	pv(ri, ri_data0, "%llu", "0x%llx");
Packit Service 360c39
	pv(ri, ri_data, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	pv(ri, ri_bitbytes, "%u", "0x%x");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rgrp_in(struct gfs2_rgrp *rg, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_rgrp *str = (struct gfs2_rgrp *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&rg->rg_header, buf);
Packit Service 360c39
	CPIN_32(rg, str, rg_flags);
Packit Service 360c39
	CPIN_32(rg, str, rg_free);
Packit Service 360c39
	CPIN_32(rg, str, rg_dinodes);
Packit Service 360c39
#ifdef GFS2_HAS_RG_SKIP
Packit Service 360c39
	CPIN_32(rg, str, rg_skip);
Packit Service 360c39
#else
Packit Service 360c39
	CPIN_32(rg, str, __pad);
Packit Service 360c39
#endif
Packit Service 360c39
	CPIN_64(rg, str, rg_igeneration);
Packit Service 360c39
#ifdef GFS2_HAS_RG_RI_FIELDS
Packit Service 360c39
	CPIN_64(rg, str, rg_data0);
Packit Service 360c39
	CPIN_32(rg, str, rg_data);
Packit Service 360c39
	CPIN_32(rg, str, rg_bitbytes);
Packit Service 360c39
	CPIN_32(rg, str, rg_crc);
Packit Service 360c39
#endif
Packit Service 360c39
	CPIN_08(rg, str, rg_reserved, sizeof(rg->rg_reserved));
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rgrp_out(const struct gfs2_rgrp *rg, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_rgrp *str = (struct gfs2_rgrp *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&rg->rg_header, buf);
Packit Service 360c39
	CPOUT_32(rg, str, rg_flags);
Packit Service 360c39
	CPOUT_32(rg, str, rg_free);
Packit Service 360c39
	CPOUT_32(rg, str, rg_dinodes);
Packit Service 360c39
#ifdef GFS2_HAS_RG_SKIP
Packit Service 360c39
	CPOUT_32(rg, str, rg_skip);
Packit Service 360c39
#else
Packit Service 360c39
	CPOUT_32(rg, str, __pad);
Packit Service 360c39
#endif
Packit Service 360c39
	CPOUT_64(rg, str, rg_igeneration);
Packit Service 360c39
#ifdef GFS2_HAS_RG_RI_FIELDS
Packit Service 360c39
	CPOUT_64(rg, str, rg_data0);
Packit Service 360c39
	CPOUT_32(rg, str, rg_data);
Packit Service 360c39
	CPOUT_32(rg, str, rg_bitbytes);
Packit Service 360c39
	CPOUT_08(rg, str, rg_reserved, sizeof(rg->rg_reserved));
Packit Service 360c39
	lgfs2_rgrp_crc_set(buf);
Packit Service 360c39
#else
Packit Service 360c39
	CPOUT_08(rg, str, rg_reserved, sizeof(rg->rg_reserved));
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_rgrp_print(const struct gfs2_rgrp *rg)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&rg->rg_header);
Packit Service 360c39
	pv(rg, rg_flags, "%u", "0x%x");
Packit Service 360c39
	pv(rg, rg_free, "%u", "0x%x");
Packit Service 360c39
	pv(rg, rg_dinodes, "%u", "0x%x");
Packit Service 360c39
#ifdef GFS2_HAS_RG_SKIP
Packit Service 360c39
	pv(rg, rg_skip, "%u", "0x%x");
Packit Service 360c39
#else
Packit Service 360c39
	pv(rg, __pad, "%u", "0x%x");
Packit Service 360c39
#endif
Packit Service 360c39
	pv(rg, rg_igeneration, "%llu", "0x%llx");
Packit Service 360c39
#ifdef GFS2_HAS_RG_RI_FIELDS
Packit Service 360c39
	pv(rg, rg_data0, "%llu", "0x%llx");
Packit Service 360c39
	pv(rg, rg_data, "%u", "0x%x");
Packit Service 360c39
	pv(rg, rg_bitbytes, "%u", "0x%x");
Packit Service 360c39
	pv(rg, rg_crc, "%u", "0x%x");
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_in(struct gfs2_quota *qu, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_quota *str = (struct gfs2_quota *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_64(qu, str, qu_limit);
Packit Service 360c39
	CPIN_64(qu, str, qu_warn);
Packit Service 360c39
	CPIN_64(qu, str, qu_value);
Packit Service 360c39
	CPIN_08(qu, str, qu_reserved, sizeof(qu->qu_reserved));
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_out(struct gfs2_quota *qu, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_quota *str = (struct gfs2_quota *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(qu, str, qu_limit);
Packit Service 360c39
	CPOUT_64(qu, str, qu_warn);
Packit Service 360c39
	CPOUT_64(qu, str, qu_value);
Packit Service 360c39
	memset(qu->qu_reserved, 0, sizeof(qu->qu_reserved));
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_print(const struct gfs2_quota *qu)
Packit Service 360c39
{
Packit Service 360c39
	pv(qu, qu_limit, "%llu", "0x%llx");
Packit Service 360c39
	pv(qu, qu_warn, "%llu", "0x%llx");
Packit Service 360c39
	pv(qu, qu_value, "%lld", "0x%llx");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_dinode_in(struct gfs2_dinode *di, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_dinode *str = (struct gfs2_dinode *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&di->di_header, buf);
Packit Service 360c39
	gfs2_inum_in(&di->di_num, (char *)&str->di_num);
Packit Service 360c39
Packit Service 360c39
	CPIN_32(di, str, di_mode);
Packit Service 360c39
	CPIN_32(di, str, di_uid);
Packit Service 360c39
	CPIN_32(di, str, di_gid);
Packit Service 360c39
	CPIN_32(di, str, di_nlink);
Packit Service 360c39
	CPIN_64(di, str, di_size);
Packit Service 360c39
	CPIN_64(di, str, di_blocks);
Packit Service 360c39
	CPIN_64(di, str, di_atime);
Packit Service 360c39
	CPIN_64(di, str, di_mtime);
Packit Service 360c39
	CPIN_64(di, str, di_ctime);
Packit Service 360c39
	CPIN_32(di, str, di_major);
Packit Service 360c39
	CPIN_32(di, str, di_minor);
Packit Service 360c39
Packit Service 360c39
	CPIN_64(di, str, di_goal_meta);
Packit Service 360c39
	CPIN_64(di, str, di_goal_data);
Packit Service 360c39
Packit Service 360c39
	CPIN_32(di, str, di_flags);
Packit Service 360c39
	CPIN_32(di, str, di_payload_format);
Packit Service 360c39
	CPIN_16(di, str, __pad1);
Packit Service 360c39
	CPIN_16(di, str, di_height);
Packit Service 360c39
Packit Service 360c39
	CPIN_16(di, str, di_depth);
Packit Service 360c39
	CPIN_32(di, str, di_entries);
Packit Service 360c39
Packit Service 360c39
	CPIN_64(di, str, di_eattr);
Packit Service 360c39
Packit Service 360c39
	CPIN_08(di, str, di_reserved, 32);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_dinode_out(struct gfs2_dinode *di, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_dinode *str = (struct gfs2_dinode *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&di->di_header, buf);
Packit Service 360c39
	gfs2_inum_out(&di->di_num, (char *)&str->di_num);
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(di, str, di_mode);
Packit Service 360c39
	CPOUT_32(di, str, di_uid);
Packit Service 360c39
	CPOUT_32(di, str, di_gid);
Packit Service 360c39
	CPOUT_32(di, str, di_nlink);
Packit Service 360c39
	CPOUT_64(di, str, di_size);
Packit Service 360c39
	CPOUT_64(di, str, di_blocks);
Packit Service 360c39
	CPOUT_64(di, str, di_atime);
Packit Service 360c39
	CPOUT_64(di, str, di_mtime);
Packit Service 360c39
	CPOUT_64(di, str, di_ctime);
Packit Service 360c39
	CPOUT_32(di, str, di_major);
Packit Service 360c39
	CPOUT_32(di, str, di_minor);
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(di, str, di_goal_meta);
Packit Service 360c39
	CPOUT_64(di, str, di_goal_data);
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(di, str, di_flags);
Packit Service 360c39
	CPOUT_32(di, str, di_payload_format);
Packit Service 360c39
	CPOUT_16(di, str, __pad1);
Packit Service 360c39
	CPOUT_16(di, str, di_height);
Packit Service 360c39
Packit Service 360c39
	CPOUT_16(di, str, di_depth);
Packit Service 360c39
	CPOUT_32(di, str, di_entries);
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(di, str, di_eattr);
Packit Service 360c39
Packit Service 360c39
	CPOUT_08(di, str, di_reserved, 32);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_dinode_print(const struct gfs2_dinode *di)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&di->di_header);
Packit Service 360c39
	gfs2_inum_print(&di->di_num);
Packit Service 360c39
Packit Service 360c39
	pv(di, di_mode, "0%o", NULL);
Packit Service 360c39
	pv(di, di_uid, "%u", "0x%x");
Packit Service 360c39
	pv(di, di_gid, "%u", "0x%x");
Packit Service 360c39
	pv(di, di_nlink, "%u", "0x%x");
Packit Service 360c39
	pv(di, di_size, "%llu", "0x%llx");
Packit Service 360c39
	pv(di, di_blocks, "%llu", "0x%llx");
Packit Service 360c39
	pv(di, di_atime, "%lld", "0x%llx");
Packit Service 360c39
	pv(di, di_mtime, "%lld", "0x%llx");
Packit Service 360c39
	pv(di, di_ctime, "%lld", "0x%llx");
Packit Service 360c39
	pv(di, di_major, "%u", "0x%llx");
Packit Service 360c39
	pv(di, di_minor, "%u", "0x%llx");
Packit Service 360c39
Packit Service 360c39
	pv(di, di_goal_meta, "%llu", "0x%llx");
Packit Service 360c39
	pv(di, di_goal_data, "%llu", "0x%llx");
Packit Service 360c39
Packit Service 360c39
	pv(di, di_flags, "0x%.8X", NULL);
Packit Service 360c39
	pv(di, di_payload_format, "%u", "0x%x");
Packit Service 360c39
	pv(di, di_height, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	pv(di, di_depth, "%u", "0x%x");
Packit Service 360c39
	pv(di, di_entries, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	pv(di, di_eattr, "%llu", "0x%llx");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_dirent_in(struct gfs2_dirent *de, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_dirent *str = (struct gfs2_dirent *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_inum_in(&de->de_inum, buf);
Packit Service 360c39
	CPIN_32(de, str, de_hash);
Packit Service 360c39
	CPIN_16(de, str, de_rec_len);
Packit Service 360c39
	CPIN_16(de, str, de_name_len);
Packit Service 360c39
	CPIN_16(de, str, de_type);
Packit Service 360c39
#ifdef GFS2_HAS_DE_RAHEAD
Packit Service 360c39
	CPIN_16(de, str, de_rahead);
Packit Service 360c39
#ifdef GFS2_HAS_DE_COOKIE
Packit Service 360c39
	CPIN_32(de, str, de_cookie);
Packit Service 360c39
	CPIN_08(de, str, pad3, 8);
Packit Service 360c39
#else
Packit Service 360c39
	CPIN_08(de, str, pad2, 12);
Packit Service 360c39
#endif /* GFS2_HAS_DE_COOKIE */
Packit Service 360c39
#else
Packit Service 360c39
	CPIN_08(de, str, __pad, 14);
Packit Service 360c39
#endif /* GFS2_HAS_DE_RAHEAD */
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_dirent_out(struct gfs2_dirent *de, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_dirent *str = (struct gfs2_dirent *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_inum_out(&de->de_inum, buf);
Packit Service 360c39
	CPOUT_32(de, str, de_hash);
Packit Service 360c39
	CPOUT_16(de, str, de_rec_len);
Packit Service 360c39
	CPOUT_16(de, str, de_name_len);
Packit Service 360c39
	CPOUT_16(de, str, de_type);
Packit Service 360c39
#ifdef GFS2_HAS_DE_RAHEAD
Packit Service 360c39
	CPOUT_16(de, str, de_rahead);
Packit Service 360c39
#ifdef GFS2_HAS_DE_COOKIE
Packit Service 360c39
	CPOUT_32(de, str, de_cookie);
Packit Service 360c39
	CPOUT_08(de, str, pad3, 8);
Packit Service 360c39
#else
Packit Service 360c39
	CPOUT_08(de, str, pad2, 12);
Packit Service 360c39
#endif /* GFS2_HAS_DE_COOKIE */
Packit Service 360c39
#else
Packit Service 360c39
	CPOUT_08(de, str, __pad, 14);
Packit Service 360c39
#endif /* GFS2_HAS_DE_RAHEAD */
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_leaf_in(struct gfs2_leaf *lf, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_leaf *str = (struct gfs2_leaf *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&lf->lf_header, buf);
Packit Service 360c39
	CPIN_16(lf, str, lf_depth);
Packit Service 360c39
	CPIN_16(lf, str, lf_entries);
Packit Service 360c39
	CPIN_32(lf, str, lf_dirent_format);
Packit Service 360c39
	CPIN_64(lf, str, lf_next);
Packit Service 360c39
#ifdef GFS2_HAS_LEAF_HINTS
Packit Service 360c39
	CPIN_64(lf, str, lf_inode);
Packit Service 360c39
	CPIN_32(lf, str, lf_dist);
Packit Service 360c39
	CPIN_32(lf, str, lf_nsec);
Packit Service 360c39
	CPIN_64(lf, str, lf_sec);
Packit Service 360c39
	CPIN_08(lf, str, lf_reserved2, 40);
Packit Service 360c39
#else
Packit Service 360c39
	CPIN_08(lf, str, lf_reserved, 32);
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_leaf_out(struct gfs2_leaf *lf, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_leaf *str = (struct gfs2_leaf *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&lf->lf_header, buf);
Packit Service 360c39
	CPOUT_16(lf, str, lf_depth);
Packit Service 360c39
	CPOUT_16(lf, str, lf_entries);
Packit Service 360c39
	CPOUT_32(lf, str, lf_dirent_format);
Packit Service 360c39
	CPOUT_64(lf, str, lf_next);
Packit Service 360c39
#ifdef GFS2_HAS_LEAF_HINTS
Packit Service 360c39
	CPOUT_64(lf, str, lf_inode);
Packit Service 360c39
	CPOUT_32(lf, str, lf_dist);
Packit Service 360c39
	CPOUT_32(lf, str, lf_nsec);
Packit Service 360c39
	CPOUT_64(lf, str, lf_sec);
Packit Service 360c39
	CPOUT_08(lf, str, lf_reserved2, 40);
Packit Service 360c39
#else
Packit Service 360c39
	CPOUT_08(lf, str, lf_reserved, 64);
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_leaf_print(const struct gfs2_leaf *lf)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&lf->lf_header);
Packit Service 360c39
	pv(lf, lf_depth, "%u", "0x%x");
Packit Service 360c39
	pv(lf, lf_entries, "%u", "0x%x");
Packit Service 360c39
	pv(lf, lf_dirent_format, "%u", "0x%x");
Packit Service 360c39
	pv(lf, lf_next, "%llu", "0x%llx");
Packit Service 360c39
#ifdef GFS2_HAS_LEAF_HINTS
Packit Service 360c39
	pv(lf, lf_inode, "%llu", "0x%llx");
Packit Service 360c39
	pv(lf, lf_dist, "%u", "0x%x");
Packit Service 360c39
	pv(lf, lf_nsec, "%u", "0x%x");
Packit Service 360c39
	pv(lf, lf_sec, "%llu", "0x%llx");
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_ea_header_in(struct gfs2_ea_header *ea, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_ea_header *str = (struct gfs2_ea_header *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_32(ea, str, ea_rec_len);
Packit Service 360c39
	CPIN_32(ea, str, ea_data_len);
Packit Service 360c39
	ea->ea_name_len = str->ea_name_len;
Packit Service 360c39
	ea->ea_type = str->ea_type;
Packit Service 360c39
	ea->ea_flags = str->ea_flags;
Packit Service 360c39
	ea->ea_num_ptrs = str->ea_num_ptrs;
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_ea_header_print(const struct gfs2_ea_header *ea, char *name)
Packit Service 360c39
{
Packit Service 360c39
	char buf[GFS2_EA_MAX_NAME_LEN + 1];
Packit Service 360c39
Packit Service 360c39
	pv(ea, ea_rec_len, "%u", "0x%x");
Packit Service 360c39
	pv(ea, ea_data_len, "%u", "0x%x");
Packit Service 360c39
	pv(ea, ea_name_len, "%u", "0x%x");
Packit Service 360c39
	pv(ea, ea_type, "%u", "0x%x");
Packit Service 360c39
	pv(ea, ea_flags, "%u", "0x%x");
Packit Service 360c39
	pv(ea, ea_num_ptrs, "%u", "0x%x");
Packit Service 360c39
Packit Service 360c39
	memset(buf, 0, GFS2_EA_MAX_NAME_LEN + 1);
Packit Service 360c39
	memcpy(buf, name, ea->ea_name_len);
Packit Service 360c39
	print_it("  name", "%s", NULL, buf);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_v1_in(struct gfs2_log_header *lh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_log_header *str = (struct gfs2_log_header *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&lh->lh_header, buf);
Packit Service 360c39
	CPIN_64(lh, str, lh_sequence);
Packit Service 360c39
	CPIN_32(lh, str, lh_flags);
Packit Service 360c39
	CPIN_32(lh, str, lh_tail);
Packit Service 360c39
	CPIN_32(lh, str, lh_blkno);
Packit Service 360c39
	CPIN_32(lh, str, lh_hash);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_in(struct gfs2_log_header *lh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_log_header_v1_in(lh, buf);
Packit Service 360c39
#ifdef GFS2_HAS_LH_V2
Packit Service 360c39
	{
Packit Service 360c39
	struct gfs2_log_header *str = (struct gfs2_log_header *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_32(lh, str, lh_crc);
Packit Service 360c39
	CPIN_32(lh, str, lh_nsec);
Packit Service 360c39
	CPIN_64(lh, str, lh_sec);
Packit Service 360c39
	CPIN_64(lh, str, lh_addr);
Packit Service 360c39
	CPIN_64(lh, str, lh_jinode);
Packit Service 360c39
	CPIN_64(lh, str, lh_statfs_addr);
Packit Service 360c39
	CPIN_64(lh, str, lh_quota_addr);
Packit Service 360c39
	CPIN_64(lh, str, lh_local_total);
Packit Service 360c39
	CPIN_64(lh, str, lh_local_free);
Packit Service 360c39
	CPIN_64(lh, str, lh_local_dinodes);
Packit Service 360c39
	}
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_v1_out(struct gfs2_log_header *lh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_log_header *str = (struct gfs2_log_header *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&lh->lh_header, buf);
Packit Service 360c39
	CPOUT_64(lh, str, lh_sequence);
Packit Service 360c39
	CPOUT_32(lh, str, lh_flags);
Packit Service 360c39
	CPOUT_32(lh, str, lh_tail);
Packit Service 360c39
	CPOUT_32(lh, str, lh_blkno);
Packit Service 360c39
	CPOUT_32(lh, str, lh_hash);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_out(struct gfs2_log_header *lh, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_log_header_v1_out(lh, buf);
Packit Service 360c39
#ifdef GFS2_HAS_LH_V2
Packit Service 360c39
	{
Packit Service 360c39
	struct gfs2_log_header *str = (struct gfs2_log_header *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_32(lh, str, lh_crc);
Packit Service 360c39
	CPOUT_32(lh, str, lh_nsec);
Packit Service 360c39
	CPOUT_64(lh, str, lh_sec);
Packit Service 360c39
	CPOUT_64(lh, str, lh_addr);
Packit Service 360c39
	CPOUT_64(lh, str, lh_jinode);
Packit Service 360c39
	CPOUT_64(lh, str, lh_statfs_addr);
Packit Service 360c39
	CPOUT_64(lh, str, lh_quota_addr);
Packit Service 360c39
	CPOUT_64(lh, str, lh_local_total);
Packit Service 360c39
	CPOUT_64(lh, str, lh_local_free);
Packit Service 360c39
	CPOUT_64(lh, str, lh_local_dinodes);
Packit Service 360c39
	}
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_v1_print(const struct gfs2_log_header *lh)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&lh->lh_header);
Packit Service 360c39
	pv(lh, lh_sequence, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_flags, "0x%.8X", NULL);
Packit Service 360c39
	pv(lh, lh_tail, "%u", "0x%x");
Packit Service 360c39
	pv(lh, lh_blkno, "%u", "0x%x");
Packit Service 360c39
	pv(lh, lh_hash, "0x%.8X", NULL);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_header_print(const struct gfs2_log_header *lh)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_log_header_v1_print(lh);
Packit Service 360c39
#ifdef GFS2_HAS_LH_V2
Packit Service 360c39
	pv(lh, lh_crc, "0x%.8X", NULL);
Packit Service 360c39
	pv(lh, lh_nsec, "%u", "0x%x");
Packit Service 360c39
	pv(lh, lh_sec, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_addr, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_jinode, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_statfs_addr, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_quota_addr, "%llu", "0x%llx");
Packit Service 360c39
	pv(lh, lh_local_total, "%lld", "0x%llx");
Packit Service 360c39
	pv(lh, lh_local_free, "%lld", "0x%llx");
Packit Service 360c39
	pv(lh, lh_local_dinodes, "%lld", "0x%llx");
Packit Service 360c39
#endif
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_descriptor_in(struct gfs2_log_descriptor *ld, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_log_descriptor *str = (struct gfs2_log_descriptor *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_in(&ld->ld_header, buf);
Packit Service 360c39
	CPIN_32(ld, str, ld_type);
Packit Service 360c39
	CPIN_32(ld, str, ld_length);
Packit Service 360c39
	CPIN_32(ld, str, ld_data1);
Packit Service 360c39
	CPIN_32(ld, str, ld_data2);
Packit Service 360c39
Packit Service 360c39
	CPIN_08(ld, str, ld_reserved, 32);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_descriptor_out(struct gfs2_log_descriptor *ld, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_log_descriptor *str = (struct gfs2_log_descriptor *)buf;
Packit Service 360c39
Packit Service 360c39
	gfs2_meta_header_out(&ld->ld_header, buf);
Packit Service 360c39
	CPOUT_32(ld, str, ld_type);
Packit Service 360c39
	CPOUT_32(ld, str, ld_length);
Packit Service 360c39
	CPOUT_32(ld, str, ld_data1);
Packit Service 360c39
	CPOUT_32(ld, str, ld_data2);
Packit Service 360c39
Packit Service 360c39
	CPOUT_08(ld, str, ld_reserved, 32);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_log_descriptor_print(const struct gfs2_log_descriptor *ld)
Packit Service 360c39
{
Packit Service 360c39
	gfs2_meta_header_print(&ld->ld_header);
Packit Service 360c39
	pv(ld, ld_type, "%u", "0x%x");
Packit Service 360c39
	pv(ld, ld_length, "%u", "0x%x");
Packit Service 360c39
	pv(ld, ld_data1, "%u", "0x%x");
Packit Service 360c39
	pv(ld, ld_data2, "%u", "0x%x");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_statfs_change_in(struct gfs2_statfs_change *sc, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_statfs_change *str = (struct gfs2_statfs_change *)buf;
Packit Service 360c39
Packit Service 360c39
	CPIN_64(sc, str, sc_total);
Packit Service 360c39
	CPIN_64(sc, str, sc_free);
Packit Service 360c39
	CPIN_64(sc, str, sc_dinodes);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_statfs_change_out(struct gfs2_statfs_change *sc, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_statfs_change *str = (struct gfs2_statfs_change *)buf;
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(sc, str, sc_total);
Packit Service 360c39
	CPOUT_64(sc, str, sc_free);
Packit Service 360c39
	CPOUT_64(sc, str, sc_dinodes);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_statfs_change_print(const struct gfs2_statfs_change *sc)
Packit Service 360c39
{
Packit Service 360c39
	pv(sc, sc_total, "%lld", "0x%llx");
Packit Service 360c39
	pv(sc, sc_free, "%lld", "0x%llx");
Packit Service 360c39
	pv(sc, sc_dinodes, "%lld", "0x%llx");
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_change_in(struct gfs2_quota_change *qc, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_quota_change *str = (struct gfs2_quota_change *)(buf +
Packit Service 360c39
	                                 sizeof(struct gfs2_meta_header));
Packit Service 360c39
Packit Service 360c39
	CPIN_64(qc, str, qc_change);
Packit Service 360c39
	CPIN_32(qc, str, qc_flags);
Packit Service 360c39
	CPIN_32(qc, str, qc_id);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_change_out(struct gfs2_quota_change *qc, char *buf)
Packit Service 360c39
{
Packit Service 360c39
	struct gfs2_quota_change *str = (struct gfs2_quota_change *)(buf +
Packit Service 360c39
	                                 sizeof(struct gfs2_meta_header));
Packit Service 360c39
Packit Service 360c39
	CPOUT_64(qc, str, qc_change);
Packit Service 360c39
	CPOUT_32(qc, str, qc_flags);
Packit Service 360c39
	CPOUT_32(qc, str, qc_id);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
void gfs2_quota_change_print(const struct gfs2_quota_change *qc)
Packit Service 360c39
{
Packit Service 360c39
	pv(qc, qc_change, "%lld", "0x%llx");
Packit Service 360c39
	pv(qc, qc_flags, "0x%.8X", NULL);
Packit Service 360c39
	pv(qc, qc_id, "%u", "0x%x");
Packit Service 360c39
}
Packit Service 360c39