Move the separate ISO9660 handler into a new /packages/iso9660-files package in preparation for some future work. Based heavily

on Laurent's original patch posted to the list.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@809 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Mark Cave-Ayland
2010-07-03 14:39:49 +00:00
committed by Mark Cave-Ayland
parent 6e3c34c7b5
commit 5ed6ff34fc
10 changed files with 248 additions and 153 deletions

View File

@@ -33,6 +33,7 @@ typedef struct {
ucell offs_hi, offs_lo;
ucell size_hi, size_lo;
int type;
phandle_t filesystem_ph;
} sunparts_info_t;
DECLARE_NODE( sunparts, INSTALL_OPEN, sizeof(sunparts_info_t), "+/packages/sun-parts" );
@@ -152,6 +153,7 @@ sunparts_open( sunparts_info_t *di )
DPRINTF("parstr: %s argstr: %s parnum: %d\n", parstr, argstr, parnum);
di->filesystem_ph = 0;
di->read_xt = find_parent_method("read");
di->seek_xt = find_parent_method("seek");
@@ -205,10 +207,16 @@ sunparts_open( sunparts_info_t *di )
ph = POP_ph();
if( ph ) {
DPRINTF("sun-parts: filesystem found with ph " FMT_ucellx " and args %s\n", ph, str);
push_str( argstr );
PUSH_ph( ph );
fword("interpose");
DPRINTF("sun-parts: filesystem found with ph " FMT_ucellx " and args %s\n", ph, argstr);
di->filesystem_ph = ph;
/* If we have been asked to open a particular file, interpose the filesystem package with
the passed filename as an argument */
if (strlen(argstr)) {
push_str( argstr );
PUSH_ph( ph );
fword("interpose");
}
} else {
DPRINTF("sun-parts: no filesystem found; bypassing misc-files interpose\n");
}