1N/A * ISO 9660 filesystem backend for GRUB (GRand Unified Bootloader) 1N/A * including Rock Ridge Extensions support 1N/A * Copyright (C) 1998, 1999 Kousuke Takai <tak@kmc.kyoto-u.ac.jp> 1N/A * This program is free software; you can redistribute it and/or modify 1N/A * it under the terms of the GNU General Public License as published by 1N/A * the Free Software Foundation; either version 2 of the License, or 1N/A * (at your option) any later version. 1N/A * This program is distributed in the hope that it will be useful, 1N/A * but WITHOUT ANY WARRANTY; without even the implied warranty of 1N/A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1N/A * GNU General Public License for more details. 1N/A * You should have received a copy of the GNU General Public License 1N/A * along with this program; if not, write to the Free Software 1N/A * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 1N/A * (all are written by Eric Youngdale) 1N/A * Leonid Lisovskiy <lly@pisem.net> 2003 1N/A/* iso9660 super-block data in memory */ 1N/A/* iso fs inode data in memory */ 1N/Astatic inline unsigned long 1N/A asm volatile (
"bsfl %1,%0" 1N/A * We have to use own devread() function since BIOS return wrong geometry 1N/A asm volatile (
"shl%L0 %1,%0" 1N/A#
endif /* !STAGE1_5 */ 1N/A * Because there is no defined slice type ID for ISO-9660 filesystem, 1N/A * this test will pass only either (1) if entire disk is used, or 1N/A * (2) if current partition is BSD style sub-partition whose ID is 1N/A * Currently, only FIRST session of MultiSession disks are supported !!! 1N/A /* check ISO_VD_PRIMARY and ISO_STANDARD_ID */ 1N/A while (*
dirname ==
'/')
/* skip leading slashes */ 1N/A /* pathlen = strcspn(dirname, "/\n\t "); */ 1N/A * Parse Rock-Ridge extension 1N/A "Non-supported version (%d) RockRidge chunk " 1N/A#
if 0
// RockRidge symlinks are not supported yet 1N/A printf(
"Symlink component flag not implemented (%d)\n",
1N/A * If there is another SL record, and this component 1N/A * record isn't continued, then add a slash. 1N/A * If this component record isn't continued, then append a '/'. 1N/A * There is no more extension we expects... 1N/A /* preserve name before loading new extent. */ 1N/A * DIRNAME is directory component of pathname, 1N/A * or we are to open a file. 1N/A else /* Completion */ 1N/A#
endif /* FSYS_ISO9660 */