diff options
Diffstat (limited to 'qemu/roms/openbios/fs/grubfs/filesys.h')
-rw-r--r-- | qemu/roms/openbios/fs/grubfs/filesys.h | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/qemu/roms/openbios/fs/grubfs/filesys.h b/qemu/roms/openbios/fs/grubfs/filesys.h deleted file mode 100644 index 6b6f97603..000000000 --- a/qemu/roms/openbios/fs/grubfs/filesys.h +++ /dev/null @@ -1,303 +0,0 @@ -/* GRUB compatibility header - * - * taken from filo and grub. - */ - -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 1999,2000,2001,2003 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - * MA 02110-1301, USA. - */ - -/* This disables some portion of code */ -#define STAGE1_5 1 - -#if defined CONFIG_X86 -/* - * ffz = Find First Zero in word. Undefined if no zero exists, - * so code should check against ~0UL first.. - */ -static __inline__ unsigned int -ffz (unsigned int word) -{ - __asm__ ("bsfl %1,%0" - : "=r" (word) - : "r" (~word)); - return word; -} - -static __inline__ unsigned int -log2 (unsigned int word) -{ - __asm__ ("bsfl %1,%0" - : "=r" (word) - : "r" (word)); - return word; -} - -#elif defined (CONFIG_PPC) -static __inline__ unsigned long - __ilog2(unsigned long x) -{ - unsigned long lz; - - asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x)); - return 31 - lz; -} - -static __inline__ unsigned long -ffz(unsigned long x) -{ - if ((x = ~x) == 0) - return 32; - - return __ilog2(x & -x); -} - -#define log2(n) ffz(~(n)) - -#else - -static __inline__ unsigned int log2(unsigned int word) -{ - /* assume 8 bits per byte. */ - unsigned int i = 1 << (sizeof(word)*8 - 1); - unsigned int pow = sizeof(word) * 8 - 1; - - if (! word) { - /* invalid parameter */ - return -1; - } - for(; i > word; i >>= 1, pow--) ; - - return pow; -} - -#define ffz(n) log2(~(n)) - -#endif - -static inline int -substring (const char *s1, const char *s2) -{ - while (*s1 == *s2) - { - /* The strings match exactly. */ - if (! *(s1++)) - return 0; - s2 ++; - } - - /* S1 is a substring of S2. */ - if (*s1 == 0) - return -1; - - /* S1 isn't a substring. */ - return 1; -} - -#define grub_memmove memmove -#define grub_strcmp strcmp - -#define MAXINT 0x7fffffff - -/* This is only used by fsys_* to determine if it's hard disk. If it is, - * they try to guess filesystem type by partition type. I guess it is - * not necessory, so hardcoded to 0 (first floppy) --ts1 */ -#define current_drive 0 -#define current_slice 0 -#define current_partition 0 - -/* we fake this for now, assuming that the filesystem is not corrupt */ -#define part_length -1 -extern int filepos; -extern int filemax; -extern int fsmax; - -/* Error codes (descriptions are in common.c) */ -typedef enum -{ - ERR_NONE = 0, - ERR_BAD_FILENAME, - ERR_BAD_FILETYPE, - ERR_BAD_GZIP_DATA, - ERR_BAD_GZIP_HEADER, - ERR_BAD_PART_TABLE, - ERR_BAD_VERSION, - ERR_BELOW_1MB, - ERR_BOOT_COMMAND, - ERR_BOOT_FAILURE, - ERR_BOOT_FEATURES, - ERR_DEV_FORMAT, - ERR_DEV_VALUES, - ERR_EXEC_FORMAT, - ERR_FILELENGTH, - ERR_FILE_NOT_FOUND, - ERR_FSYS_CORRUPT, - ERR_FSYS_MOUNT, - ERR_GEOM, - ERR_NEED_LX_KERNEL, - ERR_NEED_MB_KERNEL, - ERR_NO_DISK, - ERR_NO_PART, - ERR_NUMBER_PARSING, - ERR_OUTSIDE_PART, - ERR_READ, - ERR_SYMLINK_LOOP, - ERR_UNRECOGNIZED, - ERR_WONT_FIT, - ERR_WRITE, - ERR_BAD_ARGUMENT, - ERR_UNALIGNED, - ERR_PRIVILEGED, - ERR_DEV_NEED_INIT, - ERR_NO_DISK_SPACE, - ERR_NUMBER_OVERFLOW, - - MAX_ERR_NUM -} grub_error_t; - -extern grub_error_t errnum; - -#define grub_open file_open -#define grub_read file_read -#define grub_seek file_seek -#define grub_close file_close - -/* instrumentation variables */ -/* (Not used in FILO) */ -extern void (*disk_read_hook) (int, int, int); -extern void (*disk_read_func) (int, int, int); - -#define FSYS_BUFLEN 0x8000 -extern char FSYS_BUF[FSYS_BUFLEN]; - -#define print_possibilities 0 - -#define SECTOR_SIZE 512 -#define SECTOR_BITS 9 - -#ifdef CONFIG_FSYS_FAT -int fat_mount (void); -int fat_read (char *buf, int len); -int fat_dir (char *dirname); -#endif - -#ifdef CONFIG_FSYS_EXT2FS -int ext2fs_mount (void); -int ext2fs_read (char *buf, int len); -int ext2fs_dir (char *dirname); -#endif - -#ifdef CONFIG_FSYS_MINIX -int minix_mount (void); -int minix_read (char *buf, int len); -int minix_dir (char *dirname); -#endif - -#ifdef CONFIG_FSYS_REISERFS -int reiserfs_mount (void); -int reiserfs_read (char *buf, int len); -int reiserfs_dir (char *dirname); -int reiserfs_embed (int *start_sector, int needed_sectors); -#endif - -#ifdef CONFIG_FSYS_JFS -int jfs_mount (void); -int jfs_read (char *buf, int len); -int jfs_dir (char *dirname); -int jfs_embed (int *start_sector, int needed_sectors); -#endif - -#ifdef CONFIG_FSYS_XFS -int xfs_mount (void); -int xfs_read (char *buf, int len); -int xfs_dir (char *dirname); -#endif - -#ifdef CONFIG_FSYS_UFS -int ufs_mount (void); -int ufs_read (char *buf, int len); -int ufs_dir (char *dirname); -int ufs_embed (int *start_sector, int needed_sectors); -#endif - -#ifdef CONFIG_FSYS_ISO9660 -int iso9660_mount (void); -int iso9660_read (char *buf, int len); -int iso9660_dir (char *dirname); -#endif - -/* This is not a flag actually, but used as if it were a flag. */ -#define PC_SLICE_TYPE_HIDDEN_FLAG 0x10 - -#define PC_SLICE_TYPE_NONE 0 -#define PC_SLICE_TYPE_FAT12 1 -#define PC_SLICE_TYPE_FAT16_LT32M 4 -#define PC_SLICE_TYPE_EXTENDED 5 -#define PC_SLICE_TYPE_FAT16_GT32M 6 -#define PC_SLICE_TYPE_FAT32 0xb -#define PC_SLICE_TYPE_FAT32_LBA 0xc -#define PC_SLICE_TYPE_FAT16_LBA 0xe -#define PC_SLICE_TYPE_WIN95_EXTENDED 0xf -#define PC_SLICE_TYPE_EZD 0x55 -#define PC_SLICE_TYPE_MINIX 0x80 -#define PC_SLICE_TYPE_LINUX_MINIX 0x81 -#define PC_SLICE_TYPE_EXT2FS 0x83 -#define PC_SLICE_TYPE_LINUX_EXTENDED 0x85 -#define PC_SLICE_TYPE_VSTAFS 0x9e -#define PC_SLICE_TYPE_DELL_UTIL 0xde -#define PC_SLICE_TYPE_LINUX_RAID 0xfd - -/* For convinience. */ -/* Check if TYPE is a FAT partition type. Clear the hidden flag before - the check, to allow the user to mount a hidden partition in GRUB. */ -#define IS_PC_SLICE_TYPE_FAT(type) \ - ({ int _type = (type) & ~PC_SLICE_TYPE_HIDDEN_FLAG; \ - _type == PC_SLICE_TYPE_FAT12 \ - || _type == PC_SLICE_TYPE_FAT16_LT32M \ - || _type == PC_SLICE_TYPE_FAT16_GT32M \ - || _type == PC_SLICE_TYPE_FAT16_LBA \ - || _type == PC_SLICE_TYPE_FAT32 \ - || _type == PC_SLICE_TYPE_FAT32_LBA \ - || _type == PC_SLICE_TYPE_DELL_UTIL; }) - -#define IS_PC_SLICE_TYPE_MINIX(type) \ - (((type) == PC_SLICE_TYPE_MINIX) \ - || ((type) == PC_SLICE_TYPE_LINUX_MINIX)) - -#define IS_PC_SLICE_TYPE_BSD_WITH_FS(type,fs) 0 - -/* possible values for the *BSD-style partition type */ -#define FS_UNUSED 0 /* unused */ -#define FS_SWAP 1 /* swap */ -#define FS_V6 2 /* Sixth Edition */ -#define FS_V7 3 /* Seventh Edition */ -#define FS_SYSV 4 /* System V */ -#define FS_V71K 5 /* V7 with 1K blocks (4.1, 2.9) */ -#define FS_V8 6 /* Eighth Edition, 4K blocks */ -#define FS_BSDFFS 7 /* 4.2BSD fast file system */ -#define FS_MSDOS 8 /* MSDOS file system */ -#define FS_BSDLFS 9 /* 4.4BSD log-structured file system */ -#define FS_OTHER 10 /* in use, but unknown/unsupported */ -#define FS_HPFS 11 /* OS/2 high-performance file system */ -#define FS_ISO9660 12 /* ISO 9660, normally CD-ROM */ -#define FS_BOOT 13 /* partition contains bootstrap */ -#define FS_ADOS 14 /* AmigaDOS fast file system */ -#define FS_HFS 15 /* Macintosh HFS */ -#define FS_FILECORE 16 /* Acorn Filecore Filing System */ -#define FS_EXT2FS 17 /* Linux Extended 2 file system */ |