All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: linux-xfs@vger.kernel.org
Subject: [PATCH 12/15] xfsprogs: kill EXTERN macro
Date: Thu,  4 Oct 2018 23:03:13 -0500	[thread overview]
Message-ID: <1538712196-13625-13-git-send-email-sandeen@sandeen.net> (raw)
In-Reply-To: <1538712196-13625-1-git-send-email-sandeen@sandeen.net>

From: Eric Sandeen <sandeen@redhat.com>

The EXTERN macro was a too-clever hack to allow a header file to both
declare global variables and export them.  Get rid of the hack and do
things the predictable way.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
 repair/globals.c  | 123 ++++++++++++++++++++++++++++++++++++++++++++++--
 repair/globals.h  | 136 +++++++++++++++++++++++++++---------------------------
 repair/versions.c |  23 +++++++--
 repair/versions.h |  16 +++----
 4 files changed, 214 insertions(+), 84 deletions(-)

diff --git a/repair/globals.c b/repair/globals.c
index d00e964..e963edb 100644
--- a/repair/globals.c
+++ b/repair/globals.c
@@ -1,10 +1,125 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
+ * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc.
  * All Rights Reserved.
  */
 
-#include "libxfs.h"
-
-#define EXTERN
 #include "globals.h"
+
+/* global variables for xfs_repair */
+
+/* arguments and argument flag variables */
+
+char	*fs_name;		/* name of filesystem */
+int	verbose;		/* verbose flag, mostly for debugging */
+
+
+/* for reading stuff in manually (bypassing libsim) */
+
+char	*iobuf;			/* large buffer */
+int	iobuf_size;
+char	*smallbuf;		/* small (1-4 page) buffer */
+int	smallbuf_size;
+int	sbbuf_size;
+
+/* direct I/O info */
+
+int	minio_align;		/* min I/O size and alignment */
+int	mem_align;		/* memory alignment */
+int	max_iosize;		/* max I/O size */
+
+/* file descriptors */
+
+int	fs_fd;			/* filesystem fd */
+
+/* command-line flags */
+
+int	verbose;
+int	no_modify;
+int	dangerously;		/* live dangerously ... fix ro mount */
+int	isa_file;
+int	zap_log;
+int	dumpcore;		/* abort, not exit on fatal errs */
+int	force_geo;		/* can set geo on low confidence info */
+int	assume_xfs;		/* assume we have an xfs fs */
+char	*log_name;		/* Name of log device */
+int	log_spec;		/* Log dev specified as option */
+char	*rt_name;		/* Name of realtime device */
+int	rt_spec;		/* Realtime dev specified as option */
+int	convert_lazy_count;	/* Convert lazy-count mode on/off */
+int	lazy_count;		/* What to set if to if converting */
+
+/* misc status variables */
+
+int	primary_sb_modified;
+int	bad_ino_btree;
+int	copied_sunit;
+int	fs_is_dirty;
+
+/* for hunting down the root inode */
+
+int	need_root_inode;
+int	need_root_dotdot;
+
+int	need_rbmino;
+int	need_rsumino;
+
+int	lost_quotas;
+int	have_uquotino;
+int	have_gquotino;
+int	have_pquotino;
+int	lost_uquotino;
+int	lost_gquotino;
+int	lost_pquotino;
+
+xfs_agino_t	first_prealloc_ino;
+xfs_agino_t	last_prealloc_ino;
+xfs_agblock_t	bnobt_root;
+xfs_agblock_t	bcntbt_root;
+xfs_agblock_t	inobt_root;
+
+/* configuration vars -- fs geometry dependent */
+
+int		inodes_per_block;
+int		inodes_per_cluster;
+unsigned int	glob_agcount;
+int		chunks_pblock;	/* # of 64-ino chunks per allocation */
+int		max_symlink_blocks;
+int64_t		fs_max_file_offset;
+
+/* realtime info */
+
+xfs_rtword_t	*btmcompute;
+xfs_suminfo_t	*sumcompute;
+
+/* inode tree records have full or partial backptr fields ? */
+
+int	full_ino_ex_data;	/*
+				 * if 1, use ino_ex_data_t component
+				 * of ino_un union, if 0, use
+				 * parent_list_t component.  see
+				 * incore.h for more details
+				 */
+
+#define ORPHANAGE	"lost+found"
+
+/* superblock counters */
+
+uint64_t	sb_icount;	/* allocated (made) inodes */
+uint64_t	sb_ifree;	/* free inodes */
+uint64_t	sb_fdblocks;	/* free data blocks */
+uint64_t	sb_frextents;	/* free realtime extents */
+
+/* superblock geometry info */
+
+xfs_extlen_t	sb_inoalignmt;
+uint32_t	sb_unit;
+uint32_t	sb_width;
+
+struct aglock	*ag_locks;
+
+int		report_interval;
+uint64_t	*prog_rpt_done;
+
+int		ag_stride;
+int		thread_count;
diff --git a/repair/globals.h b/repair/globals.h
index 9a9465f..05121d4 100644
--- a/repair/globals.h
+++ b/repair/globals.h
@@ -7,9 +7,7 @@
 #ifndef _XFS_REPAIR_GLOBAL_H
 #define _XFS_REPAIR_GLOBAL_H
 
-#ifndef EXTERN
-#define EXTERN extern
-#endif
+#include "libxfs.h"
 
 /* useful macros */
 
@@ -53,91 +51,91 @@
 
 /* arguments and argument flag variables */
 
-EXTERN char	*fs_name;		/* name of filesystem */
-EXTERN int	verbose;		/* verbose flag, mostly for debugging */
+extern char	*fs_name;		/* name of filesystem */
+extern int	verbose;		/* verbose flag, mostly for debugging */
 
 
 /* for reading stuff in manually (bypassing libsim) */
 
-EXTERN char	*iobuf;			/* large buffer */
-EXTERN int	iobuf_size;
-EXTERN char	*smallbuf;		/* small (1-4 page) buffer */
-EXTERN int	smallbuf_size;
-EXTERN int	sbbuf_size;
+extern char	*iobuf;			/* large buffer */
+extern int	iobuf_size;
+extern char	*smallbuf;		/* small (1-4 page) buffer */
+extern int	smallbuf_size;
+extern int	sbbuf_size;
 
 /* direct I/O info */
 
-EXTERN int	minio_align;		/* min I/O size and alignment */
-EXTERN int	mem_align;		/* memory alignment */
-EXTERN int	max_iosize;		/* max I/O size */
+extern int	minio_align;		/* min I/O size and alignment */
+extern int	mem_align;		/* memory alignment */
+extern int	max_iosize;		/* max I/O size */
 
 /* file descriptors */
 
-EXTERN int	fs_fd;			/* filesystem fd */
+extern int	fs_fd;			/* filesystem fd */
 
 /* command-line flags */
 
-EXTERN int	verbose;
-EXTERN int	no_modify;
-EXTERN int	dangerously;		/* live dangerously ... fix ro mount */
-EXTERN int	isa_file;
-EXTERN int	zap_log;
-EXTERN int	dumpcore;		/* abort, not exit on fatal errs */
-EXTERN int	force_geo;		/* can set geo on low confidence info */
-EXTERN int	assume_xfs;		/* assume we have an xfs fs */
-EXTERN char	*log_name;		/* Name of log device */
-EXTERN int	log_spec;		/* Log dev specified as option */
-EXTERN char	*rt_name;		/* Name of realtime device */
-EXTERN int	rt_spec;		/* Realtime dev specified as option */
-EXTERN int	convert_lazy_count;	/* Convert lazy-count mode on/off */
-EXTERN int	lazy_count;		/* What to set if to if converting */
+extern int	verbose;
+extern int	no_modify;
+extern int	dangerously;		/* live dangerously ... fix ro mount */
+extern int	isa_file;
+extern int	zap_log;
+extern int	dumpcore;		/* abort, not exit on fatal errs */
+extern int	force_geo;		/* can set geo on low confidence info */
+extern int	assume_xfs;		/* assume we have an xfs fs */
+extern char	*log_name;		/* Name of log device */
+extern int	log_spec;		/* Log dev specified as option */
+extern char	*rt_name;		/* Name of realtime device */
+extern int	rt_spec;		/* Realtime dev specified as option */
+extern int	convert_lazy_count;	/* Convert lazy-count mode on/off */
+extern int	lazy_count;		/* What to set if to if converting */
 
 /* misc status variables */
 
-EXTERN int		primary_sb_modified;
-EXTERN int		bad_ino_btree;
-EXTERN int		copied_sunit;
-EXTERN int		fs_is_dirty;
+extern int		primary_sb_modified;
+extern int		bad_ino_btree;
+extern int		copied_sunit;
+extern int		fs_is_dirty;
 
 /* for hunting down the root inode */
 
-EXTERN int		need_root_inode;
-EXTERN int		need_root_dotdot;
+extern int		need_root_inode;
+extern int		need_root_dotdot;
 
-EXTERN int		need_rbmino;
-EXTERN int		need_rsumino;
+extern int		need_rbmino;
+extern int		need_rsumino;
 
-EXTERN int		lost_quotas;
-EXTERN int		have_uquotino;
-EXTERN int		have_gquotino;
-EXTERN int		have_pquotino;
-EXTERN int		lost_uquotino;
-EXTERN int		lost_gquotino;
-EXTERN int		lost_pquotino;
+extern int		lost_quotas;
+extern int		have_uquotino;
+extern int		have_gquotino;
+extern int		have_pquotino;
+extern int		lost_uquotino;
+extern int		lost_gquotino;
+extern int		lost_pquotino;
 
-EXTERN xfs_agino_t	first_prealloc_ino;
-EXTERN xfs_agino_t	last_prealloc_ino;
-EXTERN xfs_agblock_t	bnobt_root;
-EXTERN xfs_agblock_t	bcntbt_root;
-EXTERN xfs_agblock_t	inobt_root;
+extern xfs_agino_t	first_prealloc_ino;
+extern xfs_agino_t	last_prealloc_ino;
+extern xfs_agblock_t	bnobt_root;
+extern xfs_agblock_t	bcntbt_root;
+extern xfs_agblock_t	inobt_root;
 
 /* configuration vars -- fs geometry dependent */
 
-EXTERN int		inodes_per_block;
-EXTERN int		inodes_per_cluster;
-EXTERN unsigned int	glob_agcount;
-EXTERN int		chunks_pblock;	/* # of 64-ino chunks per allocation */
-EXTERN int		max_symlink_blocks;
-EXTERN int64_t		fs_max_file_offset;
+extern int		inodes_per_block;
+extern int		inodes_per_cluster;
+extern unsigned int	glob_agcount;
+extern int		chunks_pblock;	/* # of 64-ino chunks per allocation */
+extern int		max_symlink_blocks;
+extern int64_t		fs_max_file_offset;
 
 /* realtime info */
 
-EXTERN xfs_rtword_t	*btmcompute;
-EXTERN xfs_suminfo_t	*sumcompute;
+extern xfs_rtword_t	*btmcompute;
+extern xfs_suminfo_t	*sumcompute;
 
 /* inode tree records have full or partial backptr fields ? */
 
-EXTERN int		full_ino_ex_data;/*
+extern int		full_ino_ex_data;/*
 					  * if 1, use ino_ex_data_t component
 					  * of ino_un union, if 0, use
 					  * parent_list_t component.  see
@@ -148,26 +146,26 @@ EXTERN int		full_ino_ex_data;/*
 
 /* superblock counters */
 
-EXTERN uint64_t	sb_icount;	/* allocated (made) inodes */
-EXTERN uint64_t	sb_ifree;	/* free inodes */
-EXTERN uint64_t	sb_fdblocks;	/* free data blocks */
-EXTERN uint64_t	sb_frextents;	/* free realtime extents */
+extern uint64_t	sb_icount;	/* allocated (made) inodes */
+extern uint64_t	sb_ifree;	/* free inodes */
+extern uint64_t	sb_fdblocks;	/* free data blocks */
+extern uint64_t	sb_frextents;	/* free realtime extents */
 
 /* superblock geometry info */
 
-EXTERN xfs_extlen_t	sb_inoalignmt;
-EXTERN uint32_t	sb_unit;
-EXTERN uint32_t	sb_width;
+extern xfs_extlen_t	sb_inoalignmt;
+extern uint32_t	sb_unit;
+extern uint32_t	sb_width;
 
 struct aglock {
 	pthread_mutex_t	lock __attribute__((__aligned__(64)));
 };
-EXTERN struct aglock	*ag_locks;
+extern struct aglock	*ag_locks;
 
-EXTERN int		report_interval;
-EXTERN uint64_t		*prog_rpt_done;
+extern int		report_interval;
+extern uint64_t		*prog_rpt_done;
 
-EXTERN int		ag_stride;
-EXTERN int		thread_count;
+extern int		ag_stride;
+extern int		thread_count;
 
 #endif /* _XFS_REPAIR_GLOBAL_H */
diff --git a/repair/versions.c b/repair/versions.c
index 9766e92..8fad41f 100644
--- a/repair/versions.c
+++ b/repair/versions.c
@@ -6,11 +6,28 @@
 
 #include "libxfs.h"
 
-#define EXTERN
-#include "versions.h"
-#undef EXTERN
 #include "err_protos.h"
 #include "globals.h"
+#include "versions.h"
+
+/*
+ * filesystem feature global vars, set to 1 if the feature
+ * is on, 0 otherwise
+ */
+
+int fs_attributes;
+int fs_attributes2;
+int fs_inode_nlink;
+int fs_quotas;
+int fs_aligned_inodes;
+int fs_sb_feature_bits;
+int fs_has_extflgbit;
+
+/*
+ * inode chunk alignment, fsblocks
+ */
+
+xfs_extlen_t	fs_ino_alignment;
 
 void
 update_sb_version(xfs_mount_t *mp)
diff --git a/repair/versions.h b/repair/versions.h
index 0cecf16..e1e2521 100644
--- a/repair/versions.h
+++ b/repair/versions.h
@@ -16,19 +16,19 @@
  * is on, 0 otherwise
  */
 
-EXTERN int		fs_attributes;
-EXTERN int		fs_attributes2;
-EXTERN int		fs_inode_nlink;
-EXTERN int		fs_quotas;
-EXTERN int		fs_aligned_inodes;
-EXTERN int		fs_sb_feature_bits;
-EXTERN int		fs_has_extflgbit;
+extern int		fs_attributes;
+extern int		fs_attributes2;
+extern int		fs_inode_nlink;
+extern int		fs_quotas;
+extern int		fs_aligned_inodes;
+extern int		fs_sb_feature_bits;
+extern int		fs_has_extflgbit;
 
 /*
  * inode chunk alignment, fsblocks
  */
 
-EXTERN xfs_extlen_t	fs_ino_alignment;
+extern xfs_extlen_t	fs_ino_alignment;
 
 /*
  * modify superblock to reflect current state of global fs
-- 
1.8.3.1

  parent reply	other threads:[~2018-10-05 11:00 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-05  4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
2018-10-05  4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
2018-10-06 10:07   ` Christoph Hellwig
2018-10-08 14:58     ` Eric Sandeen
2018-10-05  4:03 ` [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions Eric Sandeen
2018-10-06 10:07   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition Eric Sandeen
2018-10-06 10:08   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 04/15] xfs_db: single-bit bitfields are unsigned Eric Sandeen
2018-10-06 10:08   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 05/15] xfsprogs: don't use 0 as pointer Eric Sandeen
2018-10-06 10:08   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 06/15] xfsprogs: minor endian annotation fixes Eric Sandeen
2018-10-06 10:11   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h Eric Sandeen
2018-10-06 10:12   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 08/15] xfsprogs: avoid redefinition of NBBY Eric Sandeen
2018-10-06 10:12   ` Christoph Hellwig
2018-10-08 14:59     ` Eric Sandeen
2018-10-05  4:03 ` [PATCH 09/15] xfsprogs: remove write-only variables Eric Sandeen
2018-10-06 10:13   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 10/15] xfsprogs: make static things static Eric Sandeen
2018-10-06 10:13   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 11/15] xfsprogs: include headers for extern variables Eric Sandeen
2018-10-06 10:14   ` Christoph Hellwig
2018-10-08 17:08     ` Eric Sandeen
2018-10-05  4:03 ` Eric Sandeen [this message]
2018-10-06 10:15   ` [PATCH 12/15] xfsprogs: kill EXTERN macro Christoph Hellwig
2018-10-05  4:03 ` [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers Eric Sandeen
2018-10-06 10:15   ` Christoph Hellwig
2018-10-05  4:03 ` [PATCH 14/15] xfsprogs: eliminate shadow variables Eric Sandeen
2018-10-06 10:16   ` Christoph Hellwig
2018-10-08 15:48     ` Eric Sandeen
2018-10-05  4:03 ` [PATCH 15/15] libfrog: change project entity variable scope Eric Sandeen
2018-10-06 10:18   ` Christoph Hellwig
2018-10-08 15:50     ` Eric Sandeen
2018-10-05 15:41 ` [PATCH 0/15] xfsprogs: sparse fixes Darrick J. Wong
2018-10-05 15:52   ` Eric Sandeen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1538712196-13625-13-git-send-email-sandeen@sandeen.net \
    --to=sandeen@sandeen.net \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.