xref: /haiku/src/add-ons/kernel/file_systems/xfs/xfs.cpp (revision cb837539f5d245cedff238f8894c0ae326c2eaf5)
1 /*
2  * Copyright 2020, Shubham Bhagat, shubhambhagat111@yahoo.com
3  * All rights reserved. Distributed under the terms of the MIT License.
4  */
5 
6 #include "xfs.h"
7 
8 
9 bool
10 XfsSuperBlock::IsValid()
11 {
12 	if (sb_magicnum != XFS_SB_MAGIC) return false;
13 
14 	return true;
15 }
16 
17 
18 uint32
19 XfsSuperBlock::BlockSize()
20 {
21 	return sb_blocksize;
22 }
23 
24 
25 uint32
26 XfsSuperBlock::Size()
27 {
28 	return XFS_SB_MAXSIZE;
29 }
30 
31 
32 char*
33 XfsSuperBlock::Name()
34 {
35 	return sb_fname;
36 }
37 
38 
39 void
40 XfsSuperBlock::SwapEndian()
41 {
42 	sb_magicnum		=	B_BENDIAN_TO_HOST_INT32(sb_magicnum);
43 	sb_blocksize	=	B_BENDIAN_TO_HOST_INT32(sb_blocksize);
44 	sb_dblocks		=	B_BENDIAN_TO_HOST_INT64(sb_dblocks);
45 	sb_rblocks		=	B_BENDIAN_TO_HOST_INT64(sb_rblocks);
46 	sb_rextents		=	B_BENDIAN_TO_HOST_INT64(sb_rextents);
47 	sb_logstart		=	B_BENDIAN_TO_HOST_INT64(sb_logstart);
48 	sb_rootino		=	B_BENDIAN_TO_HOST_INT64(sb_rootino);
49 	sb_rbmino		=	B_BENDIAN_TO_HOST_INT64(sb_rbmino);
50 	sb_rsumino		=	B_BENDIAN_TO_HOST_INT64(sb_rsumino);
51 	sb_rextsize		=	B_BENDIAN_TO_HOST_INT32(sb_rextsize);
52 	sb_agblocks		=	B_BENDIAN_TO_HOST_INT32(sb_agblocks);
53 	sb_agcount		=	B_BENDIAN_TO_HOST_INT32(sb_agcount);
54 	sb_rbmblocks	=	B_BENDIAN_TO_HOST_INT32(sb_rbmblocks);
55 	sb_logblocks	=	B_BENDIAN_TO_HOST_INT32(sb_logblocks);
56 	sb_versionnum	=	B_BENDIAN_TO_HOST_INT16(sb_versionnum);
57 	sb_sectsize		=	B_BENDIAN_TO_HOST_INT16(sb_sectsize);
58 	sb_inodesize	=	B_BENDIAN_TO_HOST_INT16(sb_inodesize);
59 	sb_inopblock	=	B_BENDIAN_TO_HOST_INT16(sb_inopblock);
60 	sb_icount		=	B_BENDIAN_TO_HOST_INT64(sb_icount);
61 	sb_ifree		=	B_BENDIAN_TO_HOST_INT64(sb_ifree);
62 	sb_fdblocks		=	B_BENDIAN_TO_HOST_INT64(sb_fdblocks);
63 	sb_frextents	=	B_BENDIAN_TO_HOST_INT64(sb_frextents);
64 	sb_uquotino		=	B_BENDIAN_TO_HOST_INT64(sb_uquotino);
65 	sb_gquotino		=	B_BENDIAN_TO_HOST_INT64(sb_gquotino);
66 	sb_qflags		=	B_BENDIAN_TO_HOST_INT16(sb_qflags);
67 	sb_inoalignmt	=	B_BENDIAN_TO_HOST_INT32(sb_inoalignmt);
68 	sb_unit			=	B_BENDIAN_TO_HOST_INT32(sb_unit);
69 	sb_width		=	B_BENDIAN_TO_HOST_INT32(sb_width);
70 	sb_logsectsize	=	B_BENDIAN_TO_HOST_INT16(sb_logsectsize);
71 	sb_logsunit		=	B_BENDIAN_TO_HOST_INT32(sb_logsunit);
72 	sb_features2	=	B_BENDIAN_TO_HOST_INT32(sb_features2);
73 }
74