Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 May 1995 10:56:30 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        ohki@gssm.otsuka.tsukuba.ac.jp
Cc:        freebsd-bugs@FreeBSD.org
Subject:   Re: problem for reading old CD-ROM
Message-ID:  <199505111756.KAA10636@gndrsh.aac.dev.com>
In-Reply-To: <199505111045.TAA00285@smri01.gssm.otsuka.tsukuba.ac.jp> from "ohki@gssm.otsuka.tsukuba.ac.jp" at May 11, 95 07:45:26 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> Dear folks
> 
>  I have a problem to read my old DOS CD-ROMs with FreeBSD 2.0.
> 
>  My CD-ROMs are 512-byte logical block size,
>  and this causes sys/scsi/cd.c to fail reading 512-byte blocks
>  which are not aligned on 2KB boundaries.
>  Beside this, routines in sys/isofs/cd9660 do not work correctly,
>  since my CD-ROMs has directory entries which cross 512-byte block boundaries.
> 
>  I hacked
>   i)  sys/scsi/cd.c to allow unalinged 512-byte block I/O,
>   ii) sys/isofs/cd9660 routines to allow directory entries which
>       cross 512-byte block boundaries if its logical block size is not 2048.
>       This is done mainly with iso_blkatoff() routine.
>       I.e. if its logical block size is not 2048,
>       iso_blkatoff() always read one logical block with
>       the next 512-byte block.
> 
>  Following context diffs are patches I make.
...

I am not sure, I need to go check my iso 9660 spec, but it seems to me
that 512 byte logical blocks are a violation of of the spec.  Changing
the cd9660 code to read non-conformat cd-roms, IMHO, is an ugly hack
at best.

Changing block device code to do unaligned block transfers is even
worse :-(.

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                   Custom computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199505111756.KAA10636>