Re: Subject: [PATCH 12/16] Squashfs: header files
From: Geert Uytterhoeven
Date: Wed Oct 22 2008 - 12:14:29 EST
On Fri, 17 Oct 2008, Phillip Lougher wrote:
> --- /dev/null
> +++ b/fs/squashfs/squashfs.h
> +#ifdef SQUASHFS_TRACE
> +#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args)
> +#else
> +#define TRACE(s, args...) {}
> +#endif
Just use
#define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args)
so we always get printf()-format checking, irrespective of whether DEBUG is
defined or not.
If you really want to keep the KERN_NOTICE (and the SQUASHFS_TRACE), you can
use
#ifdef SQUASHFS_TRACE
#define TRACE(s, args...) pr_notice("SQUASHFS: "s, ## args)
#else
#define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args)
#endif
> +#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args)
^^^^^^^^^^^^^^^^
pr_err(
> +
> +#define SERROR(s, args...) \
> + do { \
> + if (!silent) \
> + printk(KERN_ERR "SQUASHFS error: "s, ## args);\
^^^^^^^^^^^^^^^^
pr_err(
> + } while (0)
(yes, I know SERROR() no longer exists in CVS)
> +
> +#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args)
^^^^^^^^^^^^^^^^
pr_warning(
> --- /dev/null
> +++ b/include/linux/squashfs_fs.h
> +/* Filesystem flags */
> +#define SQUASHFS_NOI 0
> +#define SQUASHFS_NOD 1
> +#define SQUASHFS_NOF 3
> +#define SQUASHFS_NO_FRAG 4
> +#define SQUASHFS_ALWAYS_FRAG 5
> +#define SQUASHFS_DUPLICATE 6
> +#define SQUASHFS_EXPORT 7
> +
> +#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1)
> +
> +#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_NOI)
> +
> +#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_NOD)
> +
> +#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_NOF)
> +
> +#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_NO_FRAG)
> +
> +#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_ALWAYS_FRAG)
> +
> +#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_DUPLICATE)
> +
> +#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \
> + SQUASHFS_EXPORT)
> +
> +#define SQUASHFS_MKFLAGS(noi, nod, nof, no_frag, always_frag, \
> + duplicate_checking, exportable) (noi | (nod << 1) \
^
> + | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \
^ ^ ^
> + (duplicate_checking << 6) | (exportable << 7))
^ ^
For the shifts, you can use the SQUASHFS_* filesystem flags defined above
instead of the hardcoded numbers.
SQUASHFS_MKFLAGS() isn't used by the kernel, only by the tools (mksquashfs)?
> +/* meta index cache */
> +#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int))
^^^^^^^^^^^^
I was wondering whether a meta index is an `unsigned int' or an `__le32', but I
couldn't find it easily.
With kind regards,
Geert Uytterhoeven
Software Architect
Sony Techsoft Centre Europe
The Corporate Village  Da Vincilaan 7-D1  B-1935 Zaventem  Belgium
Phone: +32 (0)2 700 8453
Fax: +32 (0)2 700 8622
E-mail: Geert.Uytterhoeven@xxxxxxxxxxx
Internet: http://www.sony-europe.com/
A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 Â RPR Brussels
Fortis  BIC GEBABEBB  IBAN BE41293037680010