nkeynes@1107 | 1 | /**
|
nkeynes@1107 | 2 | * $Id$
|
nkeynes@1107 | 3 | *
|
nkeynes@1107 | 4 | * libisofs adapter
|
nkeynes@1107 | 5 | *
|
nkeynes@1107 | 6 | * Copyright (c) 2010 Nathan Keynes.
|
nkeynes@1107 | 7 | *
|
nkeynes@1107 | 8 | * This program is free software; you can redistribute it and/or modify
|
nkeynes@1107 | 9 | * it under the terms of the GNU General Public License as published by
|
nkeynes@1107 | 10 | * the Free Software Foundation; either version 2 of the License, or
|
nkeynes@1107 | 11 | * (at your option) any later version.
|
nkeynes@1107 | 12 | *
|
nkeynes@1107 | 13 | * This program is distributed in the hope that it will be useful,
|
nkeynes@1107 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
nkeynes@1107 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
nkeynes@1107 | 16 | * GNU General Public License for more details.
|
nkeynes@1107 | 17 | */
|
nkeynes@1107 | 18 |
|
nkeynes@1107 | 19 | #ifndef cdrom_isofs_H
|
nkeynes@1107 | 20 | #define cdrom_isofs_H 1
|
nkeynes@1107 | 21 |
|
nkeynes@1179 | 22 | #include <stdint.h>
|
nkeynes@1111 | 23 | #include <libisofs.h>
|
nkeynes@1107 | 24 | #include "drivers/cdrom/sector.h"
|
nkeynes@1107 | 25 |
|
nkeynes@1107 | 26 | /**
|
nkeynes@1107 | 27 | * Construct an IsoFilesystem from an existing sector source
|
nkeynes@1107 | 28 | */
|
nkeynes@1107 | 29 | IsoImageFilesystem *iso_filesystem_new_from_source( sector_source_t track, cdrom_lba_t start, ERROR *err );
|
nkeynes@1107 | 30 | IsoImageFilesystem *iso_filesystem_new_from_disc( cdrom_disc_t disc, cdrom_lba_t start, ERROR *err );
|
nkeynes@1107 | 31 | IsoImageFilesystem *iso_filesystem_new_from_track( cdrom_disc_t disc, cdrom_track_t track, ERROR *err );
|
nkeynes@1107 | 32 |
|
nkeynes@1107 | 33 |
|
nkeynes@1107 | 34 | /**
|
nkeynes@1107 | 35 | * Convenience function to read an entire IsoFileSource
|
nkeynes@1107 | 36 | */
|
nkeynes@1107 | 37 | int iso_source_file_read_all( IsoFileSource *file, unsigned char *buf, size_t max_size );
|
nkeynes@1107 | 38 |
|
nkeynes@1107 | 39 | /**
|
nkeynes@1107 | 40 | * Construct an IsoImage image from an existing sector source, for use in
|
nkeynes@1107 | 41 | * creating a modified image
|
nkeynes@1107 | 42 | */
|
nkeynes@1107 | 43 | IsoImage *iso_image_new_from_source( sector_source_t track, cdrom_lba_t start, ERROR *err );
|
nkeynes@1107 | 44 |
|
nkeynes@1107 | 45 | /**
|
nkeynes@1107 | 46 | * Construct an IsoImage from a cdrom disc and sector position.
|
nkeynes@1107 | 47 | * @return a new isofs_reader, or NULL on an error.
|
nkeynes@1107 | 48 | */
|
nkeynes@1107 | 49 | IsoImage *iso_image_new_from_disc( cdrom_disc_t disc, cdrom_lba_t start_sector, ERROR *err );
|
nkeynes@1107 | 50 |
|
nkeynes@1107 | 51 | IsoImage *iso_image_new_from_track( cdrom_disc_t disc, cdrom_track_t track, ERROR *err );
|
nkeynes@1107 | 52 |
|
nkeynes@1107 | 53 | /**
|
nkeynes@1107 | 54 | * Construct a sector source from a given IsoImage.
|
nkeynes@1107 | 55 | */
|
nkeynes@1107 | 56 | sector_source_t iso_sector_source_new( IsoImage *image, sector_mode_t mode, cdrom_lba_t start_sector,
|
nkeynes@1107 | 57 | const char *bootstrap, ERROR *err );
|
nkeynes@1107 | 58 |
|
nkeynes@1108 | 59 |
|
nkeynes@1108 | 60 | /** Prototypes for "Internal" Libisofs functions */
|
nkeynes@1152 | 61 | int iso_mem_stream_new(unsigned char *buf, size_t size, IsoStream **stream);
|
nkeynes@1108 | 62 |
|
nkeynes@1107 | 63 | #endif /* !cdrom_isofs_H */
|