[syslinux] Rock Ridge. Was: Allowed code pages and encodings to write f0.txt through f1.txt?

Thomas Schmitt scdbackup at gmx.net
Thu Mar 28 14:15:26 PDT 2013


Hi,

i began to implement a common lookup function for SUSP and Rock Ridge
entries:

/*  Obtain the payload bytes of all SUSP entries with a given signature.

    @param fs       The data source from which to read CE blocks.
    @param dir_rec  Memory containing the whole ISO 9660 directory record.
    @param sig      Two characters of SUSP signature. E.g. "NM", "ER", ...
    @param data     Returns allocated memory with the found payload.
    @param len_data Returns the number of valid bytes in *data.
                    (Does not include the trailing 0-byte.)
    @return         1= Success.
                       *data and *len_data are valid.
                       A trailing 0-byte was added to *data for convenience.
                    0= Desired signature not found.
                       *data and *len_data are NULL resp. 0.
                   -1= Error.
                       Something is wrong with the ISO 9660 or SUSP data in
                       the image.
*/
static int susp_get_entry(struct fs_info *fs, char *dir_rec, char *sig,
                          char **data, int *len_data);

The function and its subordinates already have more than 300 lines,
i fear. And still some necessary features are missing.


Some open questions:

How do i check for success or failure of  get_cache()  ?

Shall the new code become part of iso9660/iso9660.c
or shall i start a new source file iso9660/susp.c ?

Would it be ok to extend struct iso_sb_info ?
(I should implement non-zero skip length that might be defined by
 the SUSP SP entry. Probably i find more use for global-ish parameters.)


Have a nice day :)

Thomas



More information about the Syslinux mailing list