1. 27 Jul, 2015 1 commit
    • Vladimir Serbinenko's avatar
      fshelp: Add handling of "." and ".." and grub_fshelp_find_file_lookup. · fa93b0e4
      Vladimir Serbinenko authored
      Recent tests have discovered that many of our filesystems have flawed
      handling of "." and "..". Rather than attempting to fix it in filesystems
      themselves, make the common code fshelp aware of "." and ".." and handle
      them in this layer. Add grub_fshelp_find_file_lookup for easy conversion
      of BFS, HFS and exFAT which have the same problem and don't use fshelp.
      fa93b0e4
  2. 21 Jan, 2015 1 commit
  3. 03 Nov, 2013 1 commit
  4. 20 Oct, 2013 1 commit
  5. 10 Mar, 2013 1 commit
  6. 27 Feb, 2013 1 commit
    • Colin Watson's avatar
      Remove nested functions from disk and file read hooks. · 4eb8b756
      Colin Watson authored
      	* include/grub/disk.h (grub_disk_read_hook_t): New type.
      	(struct grub_disk): Add read_hook_data member.
      	* include/grub/file.h (struct grub_file): Likewise.
      	* include/grub/fshelp.h (grub_fshelp_read_file): Add read_hook_data
      	argument.
      
      	Update all callers.
      4eb8b756
  7. 02 Feb, 2013 1 commit
  8. 21 Jan, 2013 1 commit
  9. 27 Jun, 2012 1 commit
  10. 22 May, 2012 1 commit
  11. 09 May, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Fix wrapped HFS+ handling. · f417ed04
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/fs/fshelp.c (grub_fshelp_read_file): New argument
      	blocks_start. All users updated.
      	* grub-core/fs/hfsplus.c (grub_hfsplus_read_block): Don't add
      	wrapping offset.
      	(grub_hfsplus_read_file): Pass embedding offset to fshelp_read_file.
      f417ed04
  12. 01 May, 2012 1 commit
  13. 08 Feb, 2012 1 commit
  14. 14 Jan, 2012 1 commit
  15. 16 Oct, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Fix few obvious type discrepancies. · 366e34fa
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/fs/affs.c (grub_affs_read_file): Use grub_off_t for offset.
      	* grub-core/fs/afs.c (grub_afs_read_file): Likewise.
      	* grub-core/fs/fshelp.c (grub_fshelp_find_file): Remove leftover
      	variable.
      	* grub-core/fs/hfs.c (grub_hfs_read_file): Use grub_off_t for offset
      	and connected types.
      	* grub-core/fs/nilfs2.c (grub_nilfs2_read_file): Use grub_off_t for
      	offset.
      	(grub_nilfs2_iterate_dir): Use grub_off_t for fpos.
      	* grub-core/fs/sfs.c (grub_sfs_read_file): Use grub_off_t for offset.
      	* grub-core/fs/ufs.c (grub_ufs_read_file): Use grub_off_t for offset
      	and connected types.
      366e34fa
  16. 27 Jun, 2011 1 commit
    • Yves Blusseau's avatar
      Display the path of the file when file is not found · 9e322ce8
      Yves Blusseau authored
      	* grub-core/fs/fat.c: Display the filename when file is not found.
      	* grub-core/fs/fshelp.c: Likewise.
      	* grub-core/fs/hfs.c: Likewise.
      	* grub-core/fs/jfs.c: Likewise.
      	* grub-core/fs/minix.c: Likewise.
      	* grub-core/fs/ufs.c: Likewise.
      	* grub-core/fs/btrfs.c: Likewise.
      	* grub-core/commands/i386/pc/play.c: Likewise.
      9e322ce8
  17. 12 Apr, 2011 1 commit
  18. 06 May, 2010 1 commit
  19. 11 Jun, 2009 1 commit
  20. 16 Apr, 2009 1 commit
    • proski's avatar
      2009-04-15 Pavel Roskin <proski@gnu.org> · 41bb0fe9
      proski authored
      	* include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
      	LONG_MAX to GRUB_LONG_MAX.  Introduce GRUB_LONG_MIN.  Update all
      	users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
      	definitions.
      41bb0fe9
  21. 05 Sep, 2008 1 commit
    • bean's avatar
      2008-09-05 Bean <bean123ch@gmail.com> · 59261157
      bean authored
      	* fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
      
      	* fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
      	insensitive bit for names in Win32 and Win32 & DOS namespace.
      
      	* include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
      
      	* include/grub/types.h (LONG_MAX): Likewise.
      59261157
  22. 17 Jun, 2008 1 commit
    • bean's avatar
      2008-06-16 Bean <bean123ch@gmail.com> · d31a32a1
      bean authored
      	* fs/ext2.c (grub_ext2_blockgroup): Revert to pre journal state.
      	(grub_ext2_read_block): Likewise.
      	(grub_ext2_read_inode): Likewise.
      	(grub_ext2_mount): Likewise.
      	(grub_ext2_close): Likewise.
      	(grub_ext3_get_journal): Removed.
      
      	* fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre journal state.
      	(grub_reiserfs_read_symlink): Likewise.
      	(grub_reiserfs_mount): Likewise.
      	(grub_reiserfs_open): Likewise.
      	(grub_reiserfs_read): Likewise.
      	(grub_reiserfs_close): Likewise.
      	(grub_reiserfs_get_journal): Removed.
      
      	* fs/fshelp.c (grub_fshelp_read): Removed.
      	(grub_fshelp_map_block): Likewise.
      
      	* include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
      	(grub_fshelp_journal): Likewise.
      	(grub_fshelp_read): Likewise.
      	(grub_fshelp_map_block): Likewise.
      d31a32a1
  23. 13 Jun, 2008 1 commit
    • bean's avatar
      2008-06-13 Bean <bean123ch@gmail.com> · dfe9ddd4
      bean authored
      	* commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
      
      	* fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
      
      	* fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
      	to indicate sparse block.
      dfe9ddd4
  24. 12 Jun, 2008 1 commit
    • proski's avatar
      2008-06-12 Pavel Roskin <proski@gnu.org> · 16ae7781
      proski authored
      	* fs/fshelp.c (grub_fshelp_read): New function.  Implement
      	linear disk read with journal translation.
      	* fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
      	* include/grub/fshelp.h: Declare grub_fshelp_read().
      16ae7781
  25. 29 May, 2008 1 commit
    • robertmh's avatar
      2008-05-29 Robert Millan <rmh@aybabtu.com> · da9a6a94
      robertmh authored
              * fs/affs.c: Update copyright year.
              * fs/ext2.c: Likewise.
              * fs/fshelp.c: Likewise.
              * fs/hfsplus.c: Likewise.
              * fs/ntfs.c: Likewise.
              * fs/xfs.c: Likewise.
              * include/grub/fshelp.h: Likewise.
              * util/grub-mkdevicemap.c: Likewise.
      da9a6a94
  26. 20 May, 2008 1 commit
    • bean's avatar
      2008-05-20 Bean <bean123ch@gmail.com> · 887d2619
      bean authored
      	* fs/fshelp.c (grub_fshelp_map_block): New function.
      	(grub_fshelp_find_file): Use 64-bit type for pos and block address.
      	Use `>>' and `&' operator to avoid 64-bit divide and modulo.
      
      	* include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
      	(GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
      	(grub_fshelp_journal): New structure.
      	(grub_fshelp_map_block): New function prototype.
      	(grub_fshelp_read_file): Use grub_disk_addr_t as block type.
      	(grub_fshelp_map_block): Likewise.
      
      	* fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
      	(EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
      	(EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
      	(EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
      	(EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
      	(EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
      	(EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
      	(EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
      	(EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
      	(EXT3_JOURNAL_FLAG_DELETED): Likewise.
      	(EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
      	(grub_ext2_sblock): New members for journal support.
      	(grub_ext3_journal_header): New structure.
      	(grub_ext3_journal_revoke_header): Likewise.
      	(grub_ext3_journal_block_tag): Likewise.
      	(grub_ext3_journal_sblock): Likewise.
      	(grub_fshelp_node): New members logfile and journal.
      	(grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
      	grub_fshelp_map_block to get real block number.
      	(grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
      	number.
      	(grub_ext2_read_inode): Likewise.
      	(grub_ext3_get_journal): New function.
      	(grub_read_inode): Initialize journal using grub_ext3_get_journal.
      	(grub_ext2_close): Release memory used by journal.
      
      	* fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
      	(REISERFS_MAGIC_DESC_BLOCK): New macro.
      	(grub_reiserfs_transaction_header): Renamed to
      	grub_reiserfs_description_block, replace field data with real_blocks.
      	(grub_reiserfs_commit_block): New structure.
      	(grub_reiserfs_data): New member journal.
      	(grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
      	number.
      	(grub_reiserfs_read_symlink): Likewise.
      	(grub_reiserfs_iterate_dir): Likewise.
      	(grub_reiserfs_open): Likewise.
      	(grub_reiserfs_read): Likewise.
      	(grub_reiserfs_get_journal): New function.
      	(grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
      	three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
      	using grub_reiserfs_get_journal.
      	(grub_reiserfs_close): Release memory used by journal.
      
      	* fs/affs.c (grub_affs_read_block): Change block type to
      	grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
      
      	* fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
      
      	* fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
      
      	* fs/ntfs.c (grub_ntfs_read_block): Likewise.
      
      	* fs/udf.c (grub_udf_read_block): Change block type to
      	grub_disk_addr_t. Use type cast to avoid warning.
      
      	* fs/xfs.c (grub_xfs_read_block): Likewise.
      887d2619
  27. 02 Feb, 2008 1 commit
    • bean's avatar
      2008-02-02 Bean <bean123ch@gmail.com> · c004e1b4
      bean authored
              * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
              (grub_ufs_get_file_block): Fix indirect block calculation problem.
      
              * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
              (grub_xfs_btree_node): New structure.
              (grub_xfs_btree_root): New structure.
              (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
              (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
              (GRUB_XFS_EXTENT_BLOCK): Likewise.
              (GRUB_XFS_EXTENT_SIZE): Likewise.
              (grub_xfs_read_block): Support btree format type.
              (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
              Use directory block as basic unit.
      
              * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
      
              * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
              __attribute__ ((__regparm__ (1))).
      c004e1b4
  28. 03 Aug, 2007 1 commit
    • marco_g's avatar
      2007-08-02 Bean <bean123ch@gmail.com> · 9959f7db
      marco_g authored
      	* disk.h (grub_disk): Use NESTED_FUNC_ATTR.
      
      	* file.h (grub_file): Likewise.
      
      	* fshelp.h (grub_fshelp_read_file): Likewise.
      
      	* util/i386/pc/grub-setup.c (setup): Likewise.
      	(save_first_sector): Likewise.
      	(save_blocklists): Likewise.
      
      	* fs/affs.c (grub_affs_read_file): Likewise.
      
      	* fs/ext2.c (grub_ext2_read_file): Likewise.
      
      	* fs/fat.c (grub_fat_read_data): Likewise.
      
      	* fs/fshelp.c (grub_fshelp_read_file): Likewise.
      
      	* fs/hfs.c (grub_hfs_read_file): Likewise.
      
      	* fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
      
      	* fs/jfs.c (grub_jfs_read_file): Likewise.
      
      	* fs/minix.c (grub_minix_read_file): Likewise.
      
      	* fs/sfs.c (grub_sfs_read_file): Likewise.
      
      	* fs/ufs.c (grub_ufs_read_file): Likewise.
      
      	* fs/xfs.c (grub_xfs_read_file): Likewise.
      
      	* command/blocklist.c (read_blocklist): Likewise.
      	(print_blocklist): Likewise.
      9959f7db
  29. 22 Jul, 2007 1 commit
    • okuji's avatar
      2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> · 5a79f472
      okuji authored
          Migrate to GNU General Public License Version 3.
      
          * COPYING: Replaced with the plain text version of GPLv3.
      
          * config.guess: Updated from gnulib.
          * config.sub: Likewise.
      
          * geninit.sh: Output a GPLv3 copyright notice.
          * geninitheader.sh: Likewise.
          * genmodsrc.sh: Likewise.
          * gensymlist.sh.in: Likewise.
      
          * boot/i386/pc/boot.S: Upgraded to GPLv3.
          * boot/i386/pc/diskboot.S: Likewise.
          * boot/i386/pc/pxeboot.S: Likewise.
          * commands/blocklist.c: Likewise.
          * commands/boot.c: Likewise.
          * commands/cat.c: Likewise.
          * commands/cmp.c: Likewise.
          * commands/configfile.c: Likewise.
          * commands/echo.c: Likewise.
          * commands/help.c: Likewise.
          * commands/ls.c: Likewise.
          * commands/search.c: Likewise.
          * commands/terminal.c: Likewise.
          * commands/test.c: Likewise.
          * commands/videotest.c: Likewise.
          * commands/i386/cpuid.c: Likewise.
          * commands/i386/pc/halt.c: Likewise.
          * commands/i386/pc/play.c: Likewise.
          * commands/i386/pc/reboot.c: Likewise.
          * commands/i386/pc/vbeinfo.c: Likewise.
          * commands/i386/pc/vbetest.c: Likewise.
          * commands/ieee1275/halt.c: Likewise.
          * commands/ieee1275/reboot.c: Likewise.
          * commands/ieee1275/suspend.c: Likewise.
          * disk/loopback.c: Likewise.
          * disk/lvm.c: Likewise.
          * disk/raid.c: Likewise.
          * disk/efi/efidisk.c: Likewise.
          * disk/i386/pc/biosdisk.c: Likewise.
          * disk/ieee1275/ofdisk.c: Likewise.
          * font/manager.c: Likewise.
          * fs/affs.c: Likewise.
          * fs/ext2.c: Likewise.
          * fs/fat.c: Likewise.
          * fs/fshelp.c: Likewise.
          * fs/hfs.c: Likewise.
          * fs/hfsplus.c: Likewise.
          * fs/iso9660.c: Likewise.
          * fs/jfs.c: Likewise.
          * fs/minix.c: Likewise.
          * fs/sfs.c: Likewise.
          * fs/ufs.c: Likewise.
          * fs/xfs.c: Likewise.
          * hello/hello.c: Likewise.
          * include/grub/acorn_filecore.h: Likewise.
          * include/grub/arg.h: Likewise.
          * include/grub/bitmap.h: Likewise.
          * include/grub/boot.h: Likewise.
          * include/grub/cache.h: Likewise.
          * include/grub/device.h: Likewise.
          * include/grub/disk.h: Likewise.
          * include/grub/dl.h: Likewise.
          * include/grub/elfload.h: Likewise.
          * include/grub/env.h: Likewise.
          * include/grub/err.h: Likewise.
          * include/grub/file.h: Likewise.
          * include/grub/font.h: Likewise.
          * include/grub/fs.h: Likewise.
          * include/grub/fshelp.h: Likewise.
          * include/grub/gzio.h: Likewise.
          * include/grub/hfs.h: Likewise.
          * include/grub/kernel.h: Likewise.
          * include/grub/loader.h: Likewise.
          * include/grub/lvm.h: Likewise.
          * include/grub/misc.h: Likewise.
          * include/grub/mm.h: Likewise.
          * include/grub/net.h: Likewise.
          * include/grub/normal.h: Likewise.
          * include/grub/parser.h: Likewise.
          * include/grub/partition.h: Likewise.
          * include/grub/pc_partition.h: Likewise.
          * include/grub/raid.h: Likewise.
          * include/grub/rescue.h: Likewise.
          * include/grub/script.h: Likewise.
          * include/grub/setjmp.h: Likewise.
          * include/grub/symbol.h: Likewise.
          * include/grub/term.h: Likewise.
          * include/grub/terminfo.h: Likewise.
          * include/grub/tparm.h: Likewise.
          * include/grub/types.h: Likewise.
          * include/grub/video.h: Likewise.
          * include/grub/efi/api.h: Likewise.
          * include/grub/efi/chainloader.h: Likewise.
          * include/grub/efi/console.h: Likewise.
          * include/grub/efi/console_control.h: Likewise.
          * include/grub/efi/disk.h: Likewise.
          * include/grub/efi/efi.h: Likewise.
          * include/grub/efi/pe32.h: Likewise.
          * include/grub/efi/time.h: Likewise.
          * include/grub/i386/linux.h: Likewise.
          * include/grub/i386/setjmp.h: Likewise.
          * include/grub/i386/types.h: Likewise.
          * include/grub/i386/efi/kernel.h: Likewise.
          * include/grub/i386/efi/loader.h: Likewise.
          * include/grub/i386/efi/time.h: Likewise.
          * include/grub/i386/pc/biosdisk.h: Likewise.
          * include/grub/i386/pc/boot.h: Likewise.
          * include/grub/i386/pc/chainloader.h: Likewise.
          * include/grub/i386/pc/console.h: Likewise.
          * include/grub/i386/pc/init.h: Likewise.
          * include/grub/i386/pc/kernel.h: Likewise.
          * include/grub/i386/pc/loader.h: Likewise.
          * include/grub/i386/pc/memory.h: Likewise.
          * include/grub/i386/pc/multiboot.h: Likewise.
          * include/grub/i386/pc/serial.h: Likewise.
          * include/grub/i386/pc/time.h: Likewise.
          * include/grub/i386/pc/vbe.h: Likewise.
          * include/grub/i386/pc/vbeblit.h: Likewise.
          * include/grub/i386/pc/vbefill.h: Likewise.
          * include/grub/i386/pc/vbeutil.h: Likewise.
          * include/grub/i386/pc/vga.h: Likewise.
          * include/grub/ieee1275/ieee1275.h: Likewise.
          * include/grub/ieee1275/ofdisk.h: Likewise.
          * include/grub/powerpc/libgcc.h: Likewise.
          * include/grub/powerpc/setjmp.h: Likewise.
          * include/grub/powerpc/types.h: Likewise.
          * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
          * include/grub/powerpc/ieee1275/console.h: Likewise.
          * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
          * include/grub/powerpc/ieee1275/kernel.h: Likewise.
          * include/grub/powerpc/ieee1275/loader.h: Likewise.
          * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
          * include/grub/powerpc/ieee1275/time.h: Likewise.
          * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
          * include/grub/sparc64/libgcc.h: Likewise.
          * include/grub/sparc64/setjmp.h: Likewise.
          * include/grub/sparc64/types.h: Likewise.
          * include/grub/sparc64/ieee1275/console.h: Likewise.
          * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
          * include/grub/sparc64/ieee1275/kernel.h: Likewise.
          * include/grub/sparc64/ieee1275/time.h: Likewise.
          * include/grub/util/biosdisk.h: Likewise.
          * include/grub/util/getroot.h: Likewise.
          * include/grub/util/lvm.h: Likewise.
          * include/grub/util/misc.h: Likewise.
          * include/grub/util/raid.h: Likewise.
          * include/grub/util/resolve.h: Likewise.
          * io/gzio.c: Likewise.
          * kern/device.c: Likewise.
          * kern/disk.c: Likewise.
          * kern/dl.c: Likewise.
          * kern/elf.c: Likewise.
          * kern/env.c: Likewise.
          * kern/err.c: Likewise.
          * kern/file.c: Likewise.
          * kern/fs.c: Likewise.
          * kern/loader.c: Likewise.
          * kern/main.c: Likewise.
          * kern/misc.c: Likewise.
          * kern/mm.c: Likewise.
          * kern/parser.c: Likewise.
          * kern/partition.c: Likewise.
          * kern/rescue.c: Likewise.
          * kern/term.c: Likewise.
          * kern/efi/efi.c: Likewise.
          * kern/efi/init.c: Likewise.
          * kern/efi/mm.c: Likewise.
          * kern/i386/dl.c: Likewise.
          * kern/i386/efi/init.c: Likewise.
          * kern/i386/efi/startup.S: Likewise.
          * kern/i386/pc/init.c: Likewise.
          * kern/i386/pc/lzo1x.S: Likewise.
          * kern/i386/pc/startup.S: Likewise.
          * kern/ieee1275/ieee1275.c: Likewise.
          * kern/powerpc/cache.S: Likewise.
          * kern/powerpc/dl.c: Likewise.
          * kern/powerpc/ieee1275/cmain.c: Likewise.
          * kern/powerpc/ieee1275/crt0.S: Likewise.
          * kern/powerpc/ieee1275/init.c: Likewise.
          * kern/powerpc/ieee1275/openfw.c: Likewise.
          * kern/sparc64/cache.S: Likewise.
          * kern/sparc64/dl.c: Likewise.
          * kern/sparc64/ieee1275/init.c: Likewise.
          * kern/sparc64/ieee1275/openfw.c: Likewise.
          * loader/efi/chainloader.c: Likewise.
          * loader/efi/chainloader_normal.c: Likewise.
          * loader/i386/efi/linux.c: Likewise.
          * loader/i386/efi/linux_normal.c: Likewise.
          * loader/i386/pc/chainloader.c: Likewise.
          * loader/i386/pc/chainloader_normal.c: Likewise.
          * loader/i386/pc/linux.c: Likewise.
          * loader/i386/pc/linux_normal.c: Likewise.
          * loader/i386/pc/multiboot.c: Likewise.
          * loader/i386/pc/multiboot_normal.c: Likewise.
          * loader/powerpc/ieee1275/linux.c: Likewise.
          * loader/powerpc/ieee1275/linux_normal.c: Likewise.
          * normal/arg.c: Likewise.
          * normal/cmdline.c: Likewise.
          * normal/command.c: Likewise.
          * normal/completion.c: Likewise.
          * normal/execute.c: Likewise.
          * normal/function.c: Likewise.
          * normal/lexer.c: Likewise.
          * normal/main.c: Likewise.
          * normal/menu.c: Likewise.
          * normal/menu_entry.c: Likewise.
          * normal/misc.c: Likewise.
          * normal/parser.y: Likewise.
          * normal/script.c: Likewise.
          * normal/i386/setjmp.S: Likewise.
          * normal/powerpc/setjmp.S: Likewise.
          * normal/sparc64/setjmp.S: Likewise.
          * partmap/acorn.c: Likewise.
          * partmap/amiga.c: Likewise.
          * partmap/apple.c: Likewise.
          * partmap/gpt.c: Likewise.
          * partmap/pc.c: Likewise.
          * partmap/sun.c: Likewise.
          * term/gfxterm.c: Likewise.
          * term/terminfo.c: Likewise.
          * term/efi/console.c: Likewise.
          * term/i386/pc/console.c: Likewise.
          * term/i386/pc/serial.c: Likewise.
          * term/i386/pc/vesafb.c: Likewise.
          * term/i386/pc/vga.c: Likewise.
          * term/ieee1275/ofconsole.c: Likewise.
          * util/biosdisk.c: Likewise.
          * util/console.c: Likewise.
          * util/genmoddep.c: Likewise.
          * util/getroot.c: Likewise.
          * util/grub-emu.c: Likewise.
          * util/grub-mkdevicemap.c: Likewise.
          * util/grub-probe.c: Likewise.
          * util/lvm.c: Likewise.
          * util/misc.c: Likewise.
          * util/raid.c: Likewise.
          * util/resolve.c: Likewise.
          * util/update-grub.in: Likewise.
          * util/update-grub_lib.in: Likewise.
          * util/grub.d/00_header.in: Likewise.
          * util/grub.d/10_hurd.in: Likewise.
          * util/grub.d/10_linux.in: Likewise.
          * util/i386/efi/grub-install.in: Likewise.
          * util/i386/efi/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-install.in: Likewise.
          * util/i386/pc/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-mkrescue.in: Likewise.
          * util/i386/pc/grub-setup.c: Likewise.
          * util/i386/pc/misc.c: Likewise.
          * util/powerpc/ieee1275/grub-install.in: Likewise.
          * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
          * util/powerpc/ieee1275/misc.c: Likewise.
          * video/bitmap.c: Likewise.
          * video/video.c: Likewise.
          * video/i386/pc/vbe.c: Likewise.
          * video/i386/pc/vbeblit.c: Likewise.
          * video/i386/pc/vbefill.c: Likewise.
          * video/i386/pc/vbeutil.c: Likewise.
          * video/readers/tga.c: Likewise.
      5a79f472
  30. 19 Mar, 2007 1 commit
    • okuji's avatar
      2007-03-19 Yoshinori K. Okuji <okuji@enbug.org> · 6795c4e1
      okuji authored
          * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
          (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
          (EXT2_REVISION): Likewise.
          (EXT2_INODE_SIZE): Likewise.
          (struct grub_ext2_block_group): Added a missing member
          "used_dirs".
          (grub_ext2_read_inode): Divide by the inode size in a superblock
          instead of 128 to obtain INODES_PER_BLOCK.
          Use the macro EXT2_INODE_SIZE instead of directly using
          SBLOCK->INODE_SIZE.
      6795c4e1
  31. 04 Jun, 2006 1 commit
    • okuji's avatar
      2006-06-04 Yoshinori K. Okuji <okuji@enbug.org> · 524a1e6a
      okuji authored
              Clean up the code to support 64-bit addressing in disks and
              files. This change is not enough for filesystems yet.
      
              * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
              type of "start" to grub_uint64_t.
              (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
              grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
              save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
              convert addresses.
      
              * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
              to grub_disk_addr_t.
      
              * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
              string.
      
              * partmap/pc.c (pc_partition_map_iterate): Likewise.
      
              * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
              to char *.
      
              * normal/script.c (grub_script_parse): Remove unused MEMFREE.
      
              * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
      
              * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
      
              * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
              to grub_off_t, to detect an error from grub_file_seek.
              (grub_multiboot_load_elf32): Likewise.
      
              * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
              maximum unsigned long value when an overflow is detected.
              (grub_strtoull): New function.
              (grub_divmod64): Likewise.
              (grub_lltoa): use grub_divmod64.
      
              * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
              grub_disk_addr_t.
              (grub_fs_blocklist_open): Increase P if P is not NULL to advance
              the pointer to next character. Use grub_strtoull instead of
              grub_strtoul.
              (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
              SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
              respectively.
      
              * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
              return value is signed.
              (grub_file_seek): Change the type of OLD to grub_off_t. Do not
              test if OFFSET is less than zero, as OFFSET is unsigned now.
      
              * kern/disk.c (struct grub_disk_cache): Change the type of
              "sector" to grub_disk_addr_t.
              (grub_disk_cache_get_index): Change the type of SECTOR to
              grub_disk_addr_t. Calculate the hash with SECTOR casted to
              unsigned after shifting.
              (grub_disk_cache_invalidate): Change the type of SECTOR to
              grub_disk_addr_t.
              (grub_disk_cache_unlock): Likewise.
              (grub_disk_cache_store): Likewise.
              (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
              START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
              grub_disk_addr_t and grub_uint64_t, respectively.
              (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
              body, as the value of OFFSET is tweaked by
              grub_disk_check_range. Change the types of START_SECTOR, LEN and
              POS to grub_disk_addr_t, grub_size_t and grub_size_t,
              respectively.
              (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
              body, as the value of OFFSET is tweaked by
              grub_disk_check_range. Change the types of LEN and N to
              grub_size_t.
      
              * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
              and "saved_offset" to grub_off_t.
              (test_header): Cast BUF to char *.
              (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
              to char *.
              (grub_gzio_read): Change the types of OFFSET and SIZE to
              grub_off_t and grub_size_t, respectively.
      
              * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
              Removed.
              (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
              (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
              (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
              (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
              (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
      
              * include/grub/types.h (grub_off_t): Unconditionally set to
              grub_uint64_t.
              (grub_disk_addr_t): Changed to grub_uint64_t.
      
              * include/grub/partition.h (struct grub_partition): Change the
              types of "start", "len" and "offset" to grub_disk_addr_t,
              grub_uint64_t and grub_disk_addr_t, respectively.
              (grub_partition_get_start): Return grub_disk_addr_t.
              (grub_partition_get_len): Return grub_uint64_t.
      
              * include/grub/misc.h (grub_strtoull): New prototype.
              (grub_divmod64): Likewise.
      
              * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
              of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
              grub_off_t, respectively.
              All callers and references changed.
      
              * include/grub/fs.h (struct grub_fs): Change the type of LEN to
              grub_size_t in "read".
              All callers and references changed.
      
              * include/grub/file.h (struct grub_file): Change the types of
              "offset" and "size" to grub_off_t and grub_off_t,
              respectively. Change the type of SECTOR to grub_disk_addr_t in
              "read_hook".
              (grub_file_read): Change the type of LEN to grub_size_t.
              (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
              grub_off_t.
              (grub_file_size): Return grub_off_t.
              (grub_file_tell): Likewise.
              All callers and references changed.
      
              * include/grub/disk.h (struct grub_disk_dev): Change the types of
              SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
              "write".
              (struct grub_disk): Change the type of "total_sectors" to
              grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
              "read_hook".
              (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
              grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
              (grub_disk_write): Likewise.
              All callers and references changed.
      
              * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
              char * for grub_strncmp to silence gcc.
              (grub_iso9660_mount): Likewise.
              (grub_iso9660_mount): Likewise.
              (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
              return statement.
              (grub_iso9660_iterate_dir): Likewise.
              (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
      
              * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
      
              * fs/jfs.c (grub_jfs_read_file): Likewise.
      
              * fs/minix.c (grub_jfs_read_file): Likewise.
      
              * fs/sfs.c (grub_jfs_read_file): Likewise.
      
              * fs/ufs.c (grub_jfs_read_file): Likewise.
      
              * fs/xfs.c (grub_jfs_read_file): Likewise.
      
              * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
              and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
              respectively.
      
              * fs/ext2.c (grub_ext2_read_block): When an error happens, set
              BLKNR to -1 instead of returning GRUB_ERRNO.
              (grub_ext2_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
              grub_file_read.
      
              * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
              string. Do not cast SECTOR explicitly.
      
              * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
              TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
              (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
              grub_disk_addr_t and grub_size_t, respectively. If the sector is
              over 2TB and LBA mode is not supported, raise an error.
              (get_safe_sectors): New function.
              (grub_biosdisk_read): Use get_safe_sectors.
              (grub_biosdisk_write): Likewise.
      
              * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
              (grub_efidisk_write): Likewise.
      
              * disk/loopback.c (delete_loopback): Cosmetic changes.
              (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
              correctly.
              (grub_loopback_open): Likewise.
              (grub_loopback_read): Likewise. Also, change the type of POS to
              grub_off_t, and fix the usage of grub_memset.
      
              * commands/i386/pc/play.c: Include grub/machine/time.h.
      
              * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
              print FILE->SIZE.
      
              * commands/configfile.c: Include grub/env.h.
      
              * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
              GRUB_ERRNO directly instead. Change the type of POS to
              grub_off_t. Follow the coding standard.
      
              * commands/blocklist.c: Include grub/partition.h.
              (grub_cmd_blocklist): Return an error if the underlying device is
              not a disk. Take the starting sector of a partition into account,
              if a partition is used.
      
              * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
              a length field.
              (lba_mode): Support 64-bit addresses.
              (chs_mode): Likewise.
              (copy_buffer): Adapted to the new offsets of a length field and a
              segment field.
              (blocklist_default_start): Allocate 64-bit space.
      
              * boot/i386/pc/boot.S (force_lba): Removed.
              (boot_drive): Moved to under KERNEL_SECTOR.
              (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
              space.
              (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
              is useless.
              (lba_mode): Refactored to support a 64-bit address. More size
              optimization.
              (setup_sectors): Likewise.
      524a1e6a
  32. 25 Dec, 2005 1 commit
    • marco_g's avatar
      2005-12-25 Marco Gerards <marco@gnu.org> · 50214199
      marco_g authored
      	Add support for Apple HFS+ filesystems.
      
      	* fs/hfsplus.c: New file.
      
      	* DISTLIST: Added `fs/hfsplus.c'.
      
      	* conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
      	(hfsplus_mod_SOURCES): New variable.
      	(hfsplus_mod_CFLAGS): Likewise.
      	(hfsplus_mod_LDFLAGS): Likewise.
      	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
      	(grub_setup_SOURCES): Likewise.
      	(grub_mkdevicemap_SOURCES): Likewise.
      	(grub_emu_SOURCES): Likewise.
      	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      
      	* fs/fshelp.c (grub_fshelp_log2blksize): New function.
      
      	* include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
      50214199
  33. 20 Jan, 2005 1 commit
    • marco_g's avatar
      2005-01-20 Marco Gerards <metgerards@student.han.nl> · 777aff39
      marco_g authored
      	* include/grub/mm.h (grub_mm_init_region): Change the type of the
      	`unsigned' arguments to `grub_size_t'.
      	(grub_malloc): Likewise.
      	(grub_realloc): Likewise.
      	(grub_memalign): Likewise.
      	* kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
      	* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
      	* util/misc.c (grub_malloc): Likewise.
      	(grub_realloc): Likewise.
      	* kern/mm.c (get_header_from_pointer): Change the casts to
      	`unsigned' into a cast to `grub_size_t'.
      
      	* fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
      	point to `currnode' when `currnode' is changed.
      
      	* util/grub-emu.c (main): Initialize `progname'.  Reported by Nico
      	Schottelius <nico-linux@schottelius.org>.
      777aff39
  34. 13 Dec, 2004 1 commit
    • marco_g's avatar
      2004-12-13 Marco Gerards <metgerards@student.han.nl> · 4ceb3636
      marco_g authored
      	* fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
      	(grub_ext2_dir): Likewise.  Don't return in case of an error, jump
      	to fail instead.  Reported by Vincent Pelletier
      	<subdino2004@yahoo.fr>.
      
      	* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
      	it is not allocated.  Reported by Vincent Pelletier
      	<subdino2004@yahoo.fr>.
      
      	* normal/cmdline.c (grub_tab_complete): Add a blank line to the
      	output so the output looks better.
      4ceb3636
  35. 17 Sep, 2004 1 commit
    • marco_g's avatar
      2004-09-17 Marco Gerards <metgerards@student.han.nl> · b47efe30
      marco_g authored
      	Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
      	can be loaded from normal mode.
      
      	* conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
      	`multiboot.mod'.
      	(linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
      	(multiboot_mod_CFLAGS): New variables.
      	* loader/i386/pc/linux_normal.c: New file.
      	* loader/i386/pc/multiboot_normal.c: Likewise.
      
      	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
      	attribute `unused'.
      
      	* fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type.  Use
      	`fdiro' to read the mode information from instead of `diro'.
      
      	* fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
      	looking up a symlink.
      
      	* include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
      	macro.
      	* normal/command.c (grub_command_execute): Don't parse the
      	arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
      	flags of the command.
      
      	* normal/menu.c (grub_menu_run): Fix typo.
      b47efe30
  36. 11 Sep, 2004 1 commit
    • marco_g's avatar
      2004-09-11 Marco Gerards <metgerards@student.han.nl> · 2c1f4ce3
      marco_g authored
      	* conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
      	(grub_mkimage_LDFLAGS): Likewise.
      	(grub_emu_SOURCES): Likewise.
      	(kernel_img_HEADERS): Added fshelp.h.
      	* fs/ext2.c: Include <grub/fshelp.h>.
      	(FILETYPE_REG): New macro.
      	(FILETYPE_INO_REG): Likewise.
      	(grub_ext_sblock): Renamed to `grub_ext2_sblock'.
      	Changed all users.
      	(ext2_block_group): Renamed to `grub_ext2_block_group'.  Changed
      	all users.
      	(grub_fshelp_node): New struct.
      	(grub_ext2_data): Added member `diropen'.  Changed member `inode'
      	to a pointer.
      	(grub_ext2_get_file_block): Removed function.
      	(grub_ext2_read_block): New function.
      	(grub_ext2_read_file): Replaced parameter `data' by `node'.
      	This function was written.
      	(grub_ext2_mount): Read the root inode.  Create a diropen struct.
      	(grub_ext2_find_file): Removed function.
      	(grub_ext2_read_symlink): New function.
      	(grub_ext2_iterate_dir): Likewise.
      	(grub_ext2_open): Rewritten.
      	(grub_ext2_dir): Rewritten.
      	* include/grub/fshelp.h: New file.
      	* fs/fshelp.c: Likewise.
      2c1f4ce3