> The first one corrects a condition expression. > - start is LBA but dblk is relative from this partition. > - Numerical comparison makes it easy. > There would have been no impact. This one seems ok for me. Maybe the original one intended to generate smaller code as asm code, but I guess nowadays compiler can handle it better with -Os. > The second one clarifies confusing definitions of sector size. > There are three kind of sector size in this code. DEV_BSIZE > from xxstrategy, media's sector size, and Human68k's sector size. > By this patch, > - For 512 bytes/sector HDD, no changes are intended. > - For CD, corrects the blocksize (%d5) passes to SCSIIOCS. > It has worked previously though the blocksize was incorrect. > Now it works with correct blocksize. > - As a secondary effect, 256 or 1024 bytes/sector media may work but > not well tested. I guess essencial part is "shift op" vs "log2 calculation" for blocksize. The logic seems ok but there are several comments on implementation: - maybe it's better to have function prototypes, even if they are static - is it worth to explicitly specify static inline (or gcc already does?) - I wonder if human2blk(), human2bsd(), and bsd2blk() should be unsigned - if now cdstrategy() is identical with sdstrategy(), maybe it's better to rename current sdstrategy() to sdcdstrategy() and use it both sd and cd in devsw[] in stand/boot/conf.c? --- Izumi Tsutsui