Author: wmb Date: Sat Feb 13 06:50:43 2010 New Revision: 1738 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1738
Log: disk-label package - support unpartitioned disk layout where an ext2/3 filesystem occupies the entire device.
Modified: ofw/disklabel/common.fth ofw/disklabel/methods.fth ofw/fs/cdfs/partition.fth
Modified: ofw/disklabel/common.fth ============================================================================== --- ofw/disklabel/common.fth Sat Feb 13 06:48:48 2010 (r1737) +++ ofw/disklabel/common.fth Sat Feb 13 06:50:43 2010 (r1738) @@ -17,10 +17,17 @@
0 instance value sector-offset
-: read-sector ( sector# -- ) +\ For ISO-9660 CD-ROMs +: read-hw-sector ( sector# -- ) sector-offset + /sector um* " seek" $call-parent abort" Seek failed" sector-buf /sector " read" $call-parent /sector <> abort" Read failed" ; +\ For everything else +: read-sector ( sector# -- ) + sector-offset + h# 200 um* " seek" $call-parent abort" Seek failed" + sector-buf h# 200 " read" $call-parent h# 200 <> abort" Read failed" +; + \ LICENSE_BEGIN \ Copyright (c) 2006 FirmWorks \
Modified: ofw/disklabel/methods.fth ============================================================================== --- ofw/disklabel/methods.fth Sat Feb 13 06:48:48 2010 (r1737) +++ ofw/disklabel/methods.fth Sat Feb 13 06:50:43 2010 (r1738) @@ -98,6 +98,11 @@ then [then]
+ 2 read-sector ext2? if + ext2fs-type to partition-type + get-disk-size exit + then + \ Nothing we tried worked. abort ;
Modified: ofw/fs/cdfs/partition.fth ============================================================================== --- ofw/fs/cdfs/partition.fth Sat Feb 13 06:48:48 2010 (r1737) +++ ofw/fs/cdfs/partition.fth Sat Feb 13 06:50:43 2010 (r1738) @@ -4,7 +4,7 @@ \ Returns true if the disk or partition is an ISO 9660 file \ system volume, as determined by reading the primary volume descriptor. : iso-9660? ( -- flag ) - d# 16 ['] read-sector catch if drop false exit then + d# 16 ['] read-hw-sector catch if drop false exit then sector-buf c@ 1 = sector-buf 1+ 5 " CD001" $= and dup if ( flag ) iso-type to partition-type