Commit Graph

55 Commits

Author SHA1 Message Date
martin
4bc697a5ef PR kern/48852 (which should have been bin/ in retrospect): apply patch
from Thomas Schmitt to fix rockridge encoding of device nodes.
2014-05-30 13:14:47 +00:00
christos
0a77b69ab6 fix unused variable warnings. 2013-10-19 17:16:37 +00:00
reinoud
7da88b2514 `makefs -t cd9660' fix from FreeBSD:
Submitted by:   Thomas Schmitt via marius@freebsd.org
Obtained from:  FreeBSD r253707

- Correctly set the Expiration Time in the Primary Volume Descriptor;
  according to ISO 9660 8.4.26.1 unspecified date and time are denoted by the
  digit 0 in RBP 1 to 16 but the number 0 in RBP 17.

- Rock Ridge TF entries should use a length of 5, because after the 4 bytes of
  generic SUSP header there is one byte of flags. See typedef of ISO_RRIP_TF
  in iso9660_rrip.h.
2013-07-30 16:02:23 +00:00
christos
e4989541fe - use emalloc and friends
- kill a bunch of global variables, more work to be done here
- homogenize option parsing. more work for cd9660
- use the new options parsing code to print an fs-specific usage
2013-01-28 21:03:26 +00:00
joerg
9edf9a0457 Remove many HAVE_GCC || HAVE_PCC conditionals as the options also apply
to Clang. Add a few cases of HAVE_LLVM for -fno-strict-aliasing.
2012-08-10 12:10:27 +00:00
joerg
17770eb834 usage is dead. name_len should be read as unsigned byte. 2012-04-29 13:32:21 +00:00
christos
b825b96b8e WARNS=5 2012-04-19 17:28:25 +00:00
christos
bac18f3659 Pull FreeBSD fix from Andreas Tobbler:
- Write the ISO9660 descriptor after the apm partition entries.
- Fill the needed pmPartStatus flags. At least the OpenBIOS
  implementation relies on these flags.

This commit fixes the panic seen on OS-X when inserting a FreeBSD/ppc disc.
Additionally OpenBIOS recognizes the partition where the boot code is located.
This lets us load a FreeBSD/ppc PowerMac kernel inside qemu.
2012-04-02 19:01:21 +00:00
christos
f1cc09510d Patch from Jung-uk Kim (jkim at FreeBSD dot org) to allow contents of multiple
directories to be merged to the current image.
2012-01-28 02:35:46 +00:00
enami
0b23c5aa3d Move inclusion of sys/endian.h from cd9660_eltorito.c to cd9660.h
since actual user is not cd9660_eltorito.c but iso.h and
cd9660_eltorito.h.

Actually, include order/place of sys/endian.h doesn't matter on
netbsd since it is always included by sys/types.h but it's not
true on other system.  This should fix cross build breakage on
freebsd introduced by rev. 1.16 of cd9660_eltorito.c.
Problem reported and fix suggested on twitter.
2011-06-23 02:35:56 +00:00
mrg
75e42fa7da remove most of the remaining HAVE_GCC tests that are always true in
the modern world.
2011-06-20 07:43:56 +00:00
tsutsui
79fcae9efc Apply fixes for PR bin/44114 (makefs(8) -t cd9660 -o rockridge creates
corrupted cd9660fs):
 - makefs/cd9660.c:
  - cd9660_rrip_move_directory() should also update lenght[0] and
    name_len[0] in dir->isoDirRecord
 - makefs/cd9660/iso9660_rrip.c:
  - cd9660_rrip_finalize_node() should check rr_real_parent in node->parent,
    not in node itself in RRIP_PL case
  - cd9660_rrip_initialize_node() should update only node passed as arg
    so handle RRIP_PL in DOTDOT case

Fixes malformed dotdot entries in deep (more than 8 level) directories
moved into .rr_moved dir.

Should be pulled up to netbsd-5.
(no official ISO has such deep dirs, but cobalt restorecd is affected)
2011-05-29 17:07:57 +00:00
tsutsui
72050b117c - remove unnecessary (pasto?) line on RRIP PL handling for moved dir
- RRIP RE length should be 4, not 0
2011-05-28 11:59:29 +00:00
christos
c419ca3c2c include system headers after config.h 2011-05-23 00:21:50 +00:00
christos
0477909eb4 From Nathan Whitehorn (nwhitehorn at freebsd dot org):
Add code to generate bootable ISOs on Powermac and CHRP systems.
Synthesize some partition maps (APM and MBR, respectively) pointing
to (a) the whole disk, and (b) relevant El Torito boot images that
have been added by other code. These partition maps are a little
bit funny looking, but they seem to work. FreeBSD has been using
this successfully in their release generation on powerpc, as well
as generating all non-SPARC install media. SPARC support could
probably be added as an extension of this patch.
2011-05-22 21:51:39 +00:00
christos
8bd84b0401 Fix typos in character ranges from: Baptiste Daroussin bapt at freebsd dot org 2011-03-23 13:11:51 +00:00
wiz
613c28210d Fix fd leaks in error cases. Found by cppcheck. 2011-01-04 09:48:21 +00:00
christos
2ec6e0f18a Handle > 2GB images. Thanks to Greg Troxel for testing! 2010-10-27 18:51:34 +00:00
christos
203850f0b2 - simple fseek->fseeko conversion. probably needs more work.
- use a constant instead of sprinkling 2048 everywhere.
2010-10-22 00:49:15 +00:00
mbalmer
f0a888ee5f make sense 2009-11-22 18:43:27 +00:00
mbalmer
124961627e s/the the/the/ 2009-11-22 18:40:26 +00:00
ahoka
39c5e1f59f Get rid of the DOS line endings in the file.
No change of the code intended.
2009-07-04 14:31:38 +00:00
pooka
aeac8f5107 Move fs-specific stuff in Makefile to fs/Makefile.inc to clarify
top-level Makefile.
2009-01-16 19:39:52 +00:00
bjh21
f8474b32a7 Add support for encoding RISC OS metadata into ISO 9660 filesystems.
This is done by adding the general ability to stuff non-SUSP data into
the end of the System Use field of a Directory Record, which required
some amount of rewriting of the SUSP support.  I think the result is
at least as good as what came before, and I've fixed at least one bug
along the way.  Tested against RISC OS 3.70 on my Risc PC.

Oh, why do we want it?  It should allow us to make acorn{26,32} CDs that
can be booted directly from RISC OS without mucking around copying the
bootloader to a native filing system.
2009-01-10 22:06:29 +00:00
he
8309b1bdfc Initialize a local variable to get rid of a "may be used uninitialized"
warning (turned into error by -Werror).
2009-01-10 11:04:36 +00:00
bjh21
7dd482c240 Fix another bug in SUSP "CE" handling: when the SUSP records fit into
the System Use field with fewer then 28 bytes to spare, we were
remembering the wrong length for the System Use field and hence
emitting a corrupt directory entry.  This could be triggered by trying
to build a filesystem containing a regular file with a 120-byte name.
Now we're a little more careful.
2009-01-09 00:24:07 +00:00
bjh21
61773f97b8 When splitting a System Use Area between a System Use field and a
Continuation Area, be sure to insert the "CE" record at the correct
point in the chain of SUSP records.  Without this, makefs emits
an invalid image if any file needs a Continuation Area.  The bug
seems to have been introduced with the conversion to TAILQs.
2009-01-08 23:31:33 +00:00
bjh21
a9eb597f96 Typo: debuging -> debugging. 2009-01-08 22:28:45 +00:00
reinoud
01c0b5bf89 Fix typo in cd9660 functionname cd9660_setup_boot_volume_descritpor ->
cd9660_setup_boot_volume_descriptor.

Interestingly the same typo was used in 3 files!
2008-07-27 10:29:32 +00:00
skrll
989d6357d3 Add an option to load a generic boot image into the first 32K of the
cd9660 image.
2008-05-10 19:00:07 +00:00
christos
a516872c5c PR/36006: Takahiro Kambe: makefs(8) create cd9660 file system with wrong time
stamp because localtime(3) and gmtime(3) share the same buffer. Fixed by using
the _r functions.
2007-03-14 14:11:17 +00:00
dogcow
8e180a72c2 emasculate debugging mode for the hosttool version of makefs, to avoid various
hairy endian-decoding macros/inlined functions/etc.
2007-01-30 01:46:33 +00:00
dogcow
f36028509f revert this change, too. 2007-01-28 10:40:19 +00:00
dogcow
f7c54e5b52 Due to recent changes in the cd9660 code, crosscompilation of tools/makefs
now fails due to the use of [be]e{16,32}dec. Add a compat header, and force
the inclusion of <sys/endian.h>.
2007-01-28 09:19:33 +00:00
hubertf
889da1779b * Don't include headers twice
* Remove a few trailing whitespaces
 * Rearrange and join to one #if for some headers

Patch contributed by Slava Semushin <slava.semushin@gmail.com>
in private mail.
2007-01-16 17:32:04 +00:00
christos
9450025adc from Anon Ymous: compile with -Wextra 2006-12-18 21:03:29 +00:00
christos
d9b764e5f1 Coverity CID 548: Fix resource leak. 2006-04-22 17:38:20 +00:00
christos
be722641b9 Coverity CID 550: Resource leak. 2006-04-22 17:33:55 +00:00
riz
a27001b755 Coverity CID 2757: Don't leak memory in error conditions. 2006-03-23 01:27:08 +00:00
dyoung
9d2dd62a57 Stop duplicating the ISO9660 sources in sys/fs/cd9660/ for makefs(8). 2006-02-01 22:19:34 +00:00
perry
ae6ae2c362 Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:56:41 +00:00
dyoung
fec0b664fc Oops, condition another printf on verbose_level > 0. 2005-10-31 23:21:25 +00:00
dyoung
96801f79bb Condition several cd9660 printfs on verbose_level > 0. Silences
makefs -t cd9660.
2005-10-31 23:19:54 +00:00
dyoung
2fa0e02b0b Remove the cd9660_inode hashtable for hard-links support, and re-use
the fsinode for the same purpose, per Luke Mewburn's suggestion on
source-changes@.
2005-10-31 08:29:19 +00:00
dyoung
1da546647c Add hard-link support: keep a hashtable that maps inodes for
regular files on the source filesystem to the offset of the first
data block on the target filesystem.  Don't allocate blocks for a
file a second time (i.e., if it is already present in the hashtable).
Avoid writing the blocks of a file twice (use the FS_WRITTEN flag
in fsinode->flags for this purpose).
2005-10-30 09:27:49 +00:00
dyoung
f334b70aa1 Normalize {err,warn}{,x} uses. 2005-10-30 07:40:45 +00:00
dyoung
4a3fce43c0 Now that I understand what order boot-images and boot-entries are
intended to be kept on the boot-images and -entries lists, keep
them in that order: images grouped and entries grouped by system,
with later images nearer the front of the list.

*Really* apply boot options to the last boot-image specified.
2005-10-30 07:33:57 +00:00
dyoung
3c2cee9d4a Bug fix: record the actual number number of 512-byte "virtual"
sectors in the Sector Count field of the Initial/Default Entry in
the "El Torito" Boot Catalog, instead of blithely writing 1 (!!)
into the Sector Count field.  Ditto the Section Entries.

Remove last remnants of cd9660's unsupported boot-load-size option.

Really use cd9660's boot-load-segment argument.

Change the boot images list from a LIST to a TAILQ.

Re-implement CD9660_BLOCKS() with howmany().

Introduce ELTORITO_DPRINTF and some debug messages.

Zero memory malloc'd in the El Torito code.

Revise some debugging outputs.

Insert a new boot-image on the boot-images list after the last
boot-image for the same architecture.  It makes a (trivial) functional
difference.

Miscellaneous cosmetic changes.  Remove useless variable-assignment.
2005-10-30 06:45:46 +00:00
dyoung
397d1928f2 Cosmetic: add temporary variables for lengthy, repeated clauses
like 'default_entry->entry_data.IE'.  KNF.
2005-10-30 03:50:54 +00:00
dyoung
f112f0b6d9 Remove invisible whitespace at ends of lines that disrupted my
speedy cursor-movement habits in vi.
2005-10-30 03:10:28 +00:00