grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] Split ufs.mod into ufs1.mod and ufs2.mod


From: Robert Millan
Subject: Re: [PATCH 1/2] Split ufs.mod into ufs1.mod and ufs2.mod
Date: Thu, 13 Aug 2009 22:00:14 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

On Thu, Aug 13, 2009 at 06:03:44PM +0200, Vladimir 'phcoder' Serbinenko wrote:
> ufs1 and ufs2 mainly differ by some structure definitions. Putting
> them into the same module and checking on runtime creates continuous
> if ( ... == UFS1) { ... }
> By using preprocessor it's possible to avoid most of such ifs
> Additionally user needs only one FS in core so we save some space
> core.img with ufs.mod: 23793
> core.img with ufs1.mod: 23078
> core.img with ufs2.mod: 23322

Very nice.

> +#ifdef MODE_UFS2
> +#define INODE_BLKSZ 8
> +#else
> +#define INODE_BLKSZ 4
> +#endif
> +#ifndef MODE_UFS2
> +#define UFS_INODE_PER_BLOCK 4
> +#else
> +#define UFS_INODE_PER_BLOCK 2
> +#endif

When you commit this, could you please follow logical order with
ifdef/else/endif?  The negation is less intuitive to read.

> +#ifdef MODE_UFS2
> +      grub_uint64_t indir[UFS_BLKSZ (sblock) / sizeof (grub_uint64_t)];
> +#else
> +      grub_uint32_t indir[UFS_BLKSZ (sblock) / sizeof (grub_uint32_t)];
> +#endif

Can this be made simpler by using typeof() ?  (same for the other one below)

> -      return (data->ufs_type == UFS1) ? indir[blk] : indir[blk << 1];
> +      return indir[blk];

The blk bitshift was accounted for elsewhere?  (Btw I assume you've tested
on both filesystem types).

> -     ? dirent.namelen_bsd : grub_le_to_cpu16 (dirent.namelen);
> +#ifdef MODE_UFS2
> +      namelen = dirent.namelen_bsd;
> +#else
> +      namelen = grub_le_to_cpu16 (dirent.namelen);
> +#endif

I wonder if there was a bug here (native endianess assumed for namelen_bsd?)

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]