#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
+#
# FS QA Test No. 122
#
# pv#952498
# Keep an eye on some of the xfs type sizes
# Motivation from differing ondisk types for 32 and 64 bit word versions.
#
-#-----------------------------------------------------------------------
-# Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it would be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-#-----------------------------------------------------------------------
-#
-
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
#define _GNU_SOURCE
#include <stdio.h>
EOF
+# Certain headers must be included in a certain order...
+for hdr in xfs.h xfs_types.h xfs_fs.h xfs_arch.h xfs_format.h; do
+ test -e "/usr/include/xfs/$hdr" && echo "#include <xfs/$hdr>" >> $cprog
+done
+# ...but be sure to pull in any new headers that might show up.
for hdr in /usr/include/xfs/xfs*.h; do
echo "#include <$(echo "$hdr" | sed -e 's|/usr/include/||g')>" >> $cprog
done
xfs_growfs_rt_t
xfs_bstime_t
xfs_bstat_t
+struct xfs_bstat
xfs_fsop_bulkreq_t
+struct xfs_fsop_bulkreq
xfs_icsb_cnts_t
xfs_icdinode_t
xfs_ictimestamp_t
xfs_inobt_rec_incore_t
xfs_inogrp_t
+struct xfs_inogrp
xfs_fid2_t
xfs_fsop_handlereq_t
xfs_fsop_setdm_handlereq_t
xfs_dirent_t
xfs_fsop_getparents_handlereq_t
xfs_dinode_core_t
+struct xfs_iext_cursor
+struct xfs_ino_geometry
EOF
echo 'int main(int argc, char *argv[]) {' >>$cprog
awk '
/typedef struct xfs_sb/ { structon = 1; next }
structon && $2 ~ /^sb_/ { sub(/[;,]/,"",$2)
+ sub(/XFSLABEL_MAX/,"12",$2)
printf("printf(\"offsetof(xfs_sb_t, %s) = \\%zu\\n\", offsetof(xfs_sb_t, %s));", $2, $2); next}
structon && /}/ { structon = 0; next}
'>>$cprog