diff options
Diffstat (limited to 'src/kernel/iso9660.c')
-rw-r--r-- | src/kernel/iso9660.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/kernel/iso9660.c b/src/kernel/iso9660.c deleted file mode 100644 index ef09116..0000000 --- a/src/kernel/iso9660.c +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2019 Benji Dial - -Permission to use, copy, modify, and/or distribute this -software for any purpose with or without fee is hereby -granted, provided that the above copyright notice and this -permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS SOFTWARE. -*/ - -#include "iso9660.h" -#include "diskio.h" -#include "files.h" -#include "mem.h" - -bool iso_9660_parse_ph(uint8_t dn, uint8_t pn, uint32_t sector, uint8_t *buffer) { - uint32_t s = sector + 64; - read_sectors_t rsf = get_read_sectors_function(dn); - do { - rsf(drives[dn].number, s, 4, buffer); - if ((*buffer == 255) || (*(uint32_t *)&buffer[1] != 0x30304443) || - (buffer[5] != (uint8_t)'1')) - return false; - s += 4; - } while (*buffer != PRIM_VOLUME); - part_info[dn].partition_types[pn] = ISO_9660; - part_info[dn].partition_offsets[pn] = sector; - struct iso_9660_cache *cache = allocate_block(sizeof(struct iso_9660_cache), KERNEL); - struct iso_9660_primary_vd *as_vd = (struct iso_9660_primary_vd *)buffer; - part_info[dn].partition_cache[pn] = cache; - if ((cache->block_size = as_vd->block_size) & ~0x01ff) { - part_info[dn].partition_sizes[pn] = - (as_vd->block_size >> 9) * as_vd->size; - cache->path_table_sector = - (as_vd->block_size >> 9) * as_vd->path_table_block; - cache->optional_path_table_sector = - (as_vd->block_size >> 9) * as_vd->optional_path_table_block; - } - else { - part_info[dn].partition_sizes[pn] = - (as_vd->block_size * as_vd->size) >> 9; - cache->path_table_sector = - (as_vd->block_size * as_vd->path_table_block) >> 9; - cache->optional_path_table_sector = - (as_vd->block_size * as_vd->optional_path_table_block) >> 9; - } - cache->path_table_size = as_vd->path_table_size; - return true; -}
\ No newline at end of file |