+2006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
+
+ * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
+ explicitly to suppress gcc's warnings.
+ * fs/fat.c (grub_fat_find_dir): Likewise.
+ (grub_fat_label): Likewise.
+ * fs/xfs.c (grub_xfs_read_inode): Likewise.
+ (grub_xfs_mount): Likewise.
+ (grub_xfs_label): Likewise.
+ * fs/affs.c (grub_affs_mount): Likewise.
+ (grub_affs_label): Likewise.
+ (grub_affs_iterate_dir): Likewise.
+ * fs/sfs.c (grub_sfs_mount): Likewise.
+ (grub_sfs_iterate_dir): Likewise.
+ * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
+ * fs/hfs.c (grub_hfs_mount): Likewise.
+ (grub_hfs_cmp_catkeys): Likewise.
+ (grub_hfs_find_dir): Likewise.
+ (grub_hfs_dir): Likewise.
+ (grub_hfs_label): Likewise.
+ * fs/jfs.c (grub_jfs_mount): Likewise.
+ (grub_jfs_opendir): Likewise.
+ (grub_jfs_getent): Likewise.
+ (grub_jfs_lookup_symlink): Likewise.
+ (grub_jfs_label): Likewise.
+ * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
+ (grub_hfsplus_iterate_dir): Likewise.
+ (grub_hfsplus_btree_iterate_node): Made static.
+
+ * util/grub-emu.c (prefix): New variable.
+ (grub_machine_set_prefix): New function.
+ (main): Do not set the environment variable "prefix" here. Only
+ set PREFIX, which is used later by grub_machine_set_prefix.
+
+ * include/grub/video.h: Do not include grub/symbol.h.
+ (grub_video_register): Not exported. This symbol is not defined in
+ the kernel.
+ (grub_video_unregister): Likewise.
+ (grub_video_iterate): Likewise.
+ (grub_video_setup): Likewise.
+ (grub_video_restore): Likewise.
+ (grub_video_get_info): Likewise.
+ (grub_video_get_blit_format): Likewise.
+ (grub_video_set_palette): Likewise.
+ (grub_video_get_palette): Likewise.
+ (grub_video_set_viewport): Likewise.
+ (grub_video_get_viewport): Likewise.
+ (grub_video_map_color): Likewise.
+ (grub_video_map_rgb): Likewise.
+ (grub_video_map_rgba): Likewise.
+ (grub_video_fill_rect): Likewise.
+ (grub_video_blit_glyph): Likewise.
+ (grub_video_blit_bitmap): Likewise.
+ (grub_video_blit_render_target): Likewise.
+ (grub_video_scroll): Likewise.
+ (grub_video_swap_buffers): Likewise.
+ (grub_video_create_render_target): Likewise.
+ (grub_video_delete_render_target): Likewise.
+ (grub_video_set_active_render_target): Likewise.
+
+ * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
+ Undefined.
+ [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
+
+ * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
+ config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
+ (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
+ instead of $(srcdir)/genkernsyms.sh.
+
+ * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
+ config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
+ (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
+ instead of $(srcdir)/genkernsyms.sh.
+
+ * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
+ gensymlist.sh instead of $(srcdir)/gensymlist.sh.
+ (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
+ instead of $(srcdir)/genkernsyms.sh.
+
+ * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
+ gensymlist.sh instead of $(srcdir)/gensymlist.sh.
+ (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
+ instead of $(srcdir)/genkernsyms.sh.
+
+ * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
+ genkernsyms.sh.
+
+ * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
+ genkernsyms.sh.
+ (gensymlist.sh): New target.
+ (genkernsyms.sh): Likewise.
+
+ * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
+ genkernsyms.sh.in and gensymlist.sh.in.
+
+ * genkernsyms.sh: Removed.
+ * gensymlist.sh: Likewise.
+
+ * genkernsyms.sh.in: New file.
+ * gensymlist.sh.in: Likewise.
+
2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
genfslist.sh
geninitheader.sh
geninit.sh
-genkernsyms.sh
+genkernsyms.sh.in
genmk.rb
genmodsrc.sh
-gensymlist.sh
+gensymlist.sh.in
install-sh
mkinstalldirs
stamp-h.in
CLEANFILES =
MOSTLYCLEANFILES =
DISTCLEANFILES = config.status config.cache config.log config.h \
- Makefile stamp-h include/grub/cpu include/grub/machine
+ Makefile stamp-h include/grub/cpu include/grub/machine \
+ gensymlist.sh genkernsyms.sh
MAINTAINER_CLEANFILES = $(srcdir)/configure $(addprefix $(srcdir)/,$(MKFILES))
# The default target.
config.status: configure
./config.status --recheck
+gensymlist.sh: gensymlist.sh.in config.status
+ ./config.status
+
+genkernsyms.sh: genkernsyms.sh.in config.status
+ ./config.status
+
.PHONY: all install install-strip uninstall clean mostlyclean distclean
.PHONY: maintainer-clean info dvi dist check
MOSTLYCLEANFILES += symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-symlist.c: $(addprefix include/grub/,$(kernel_mod_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+symlist.c: $(addprefix include/grub/,$(kernel_mod_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(kernel_mod_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %.h,$^) > $@ || rm -f $@
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_mod_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# For normal.mod.
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
MOSTLYCLEANFILES += symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-symlist.c: $(addprefix include/grub/,$(kernel_mod_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+symlist.c: $(addprefix include/grub/,$(kernel_mod_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(kernel_mod_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %.h,$^) > $@ || rm -f $@
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_mod_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# For normal.mod.
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
MOSTLYCLEANFILES += symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Utilities.
bin_UTILITIES = grub-mkimage
MOSTLYCLEANFILES += symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Utilities.
bin_UTILITIES = grub-mkimage
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
machine/kernel.h
-grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
pkgdata_PROGRAMS = grubof
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
machine/kernel.h
-grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
-kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
pkgdata_PROGRAMS = grubof
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
machine/kernel.h
-grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# For the parser.
grub_script.tab.c grub_script.tab.h: normal/parser.y
$(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/normal/parser.y
-kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
pkgdata_PROGRAMS = grubof
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
machine/kernel.h
-grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
- sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
+grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# For the parser.
grub_script.tab.c grub_script.tab.h: normal/parser.y
$(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/normal/parser.y
-kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) genkernsyms.sh
- sh $(srcdir)/genkernsyms.sh $(filter %h,$^) > $@
+kernel_syms.lst: $(addprefix include/grub/,$(grubof_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
pkgdata_PROGRAMS = grubof
# Output files.
ac_config_links="$ac_config_links include/grub/cpu:include/grub/$host_cpu include/grub/machine:include/grub/$host_cpu/$host_vendor"
- ac_config_files="$ac_config_files Makefile"
+ ac_config_files="$ac_config_files Makefile gensymlist.sh genkernsyms.sh"
ac_config_files="$ac_config_files stamp-h"
case "$ac_config_target" in
# Handling of arguments.
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "gensymlist.sh" ) CONFIG_FILES="$CONFIG_FILES gensymlist.sh" ;;
+ "genkernsyms.sh" ) CONFIG_FILES="$CONFIG_FILES genkernsyms.sh" ;;
"stamp-h" ) CONFIG_FILES="$CONFIG_FILES stamp-h" ;;
"include/grub/cpu" ) CONFIG_LINKS="$CONFIG_LINKS include/grub/cpu:include/grub/$host_cpu" ;;
"include/grub/machine" ) CONFIG_LINKS="$CONFIG_LINKS include/grub/machine:include/grub/$host_cpu/$host_vendor" ;;
# Output files.
AC_CONFIG_LINKS([include/grub/cpu:include/grub/$host_cpu
include/grub/machine:include/grub/$host_cpu/$host_vendor])
-AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([Makefile gensymlist.sh genkernsyms.sh])
AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
AC_OUTPUT
goto fail;
/* Make sure this is an affs filesystem. */
- if (grub_strncmp (data->bblock.type, "DOS", 3))
+ if (grub_strncmp ((char *) (data->bblock.type), "DOS", 3))
{
grub_error (GRUB_ERR_BAD_FS, "not an affs filesystem");
goto fail;
else
type = GRUB_FSHELP_UNKNOWN;
- if (grub_affs_create_node (file.name, next,
+ if (grub_affs_create_node ((char *) (file.name), next,
grub_be_to_cpu32 (file.size), type))
return 1;
if (grub_errno)
return 0;
- *label = grub_strndup (file.name, file.namelen);
+ *label = grub_strndup ((char *) (file.name), file.namelen);
}
else
*label = 0;
for (u = 0; u < slots * 13; u++)
unibuf[u] = grub_le_to_cpu16 (unibuf[u]);
- *grub_utf16_to_utf8 (filename, unibuf, slots * 13) = '\0';
+ *grub_utf16_to_utf8 ((grub_uint8_t *) filename, unibuf,
+ slots * 13) = '\0';
if (*dirname == '\0' && call_hook)
{
if (dir.attr == GRUB_FAT_ATTR_VOLUME_ID)
{
- *label = grub_strndup (dir.name, 11);
+ *label = grub_strndup ((char *) dir.name, 11);
return GRUB_ERR_NONE;
}
}
volume name. */
key.parent_dir = grub_cpu_to_be32 (1);
key.strlen = data->sblock.volname[0];
- grub_strcpy (key.str, data->sblock.volname + 1);
+ grub_strcpy ((char *) key.str, (char *) (data->sblock.volname + 1));
if (grub_hfs_find_node (data, (char *) &key, data->cat_root,
0, (char *) &dir, sizeof (dir)) == 0)
if (cmp != 0)
return cmp;
- cmp = grub_strncasecmp (k1->str, k2->str, k1->strlen);
+ cmp = grub_strncasecmp ((char *) (k1->str), (char *) (k2->str), k1->strlen);
/* This is required because the compared strings are not of equal
length. */
key.parent_dir = grub_cpu_to_be32 (inode);
key.strlen = grub_strlen (path);
- grub_strcpy (key.str, path);
+ grub_strcpy ((char *) (key.str), path);
/* Lookup this node. */
- if (!grub_hfs_find_node (data, (char *) &key, data->cat_root,
- 0, (char *) &frec, sizeof (frec)))
+ if (! grub_hfs_find_node (data, (char *) &key, data->cat_root,
+ 0, (char *) &frec, sizeof (frec)))
{
grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
goto fail;
char *filetype = rec->data;
struct grub_hfs_catalog_key *ckey = rec->key;
- grub_strncpy (fname, ckey->str, ckey->strlen);
+ grub_strncpy (fname, (char *) (ckey->str), ckey->strlen);
if (*filetype == GRUB_HFS_FILETYPE_DIR)
return hook (fname, 1);
data = grub_hfs_mount (device->disk);
if (data)
- *label = grub_strndup (data->sblock.volname + 1, *data->sblock.volname);
+ *label = grub_strndup ((char *) (data->sblock.volname + 1),
+ *data->sblock.volname);
else
*label = 0;
filename = grub_malloc (grub_be_to_cpu16 (catkey_a->namelen) + 1);
- if (! grub_utf16_to_utf8 (filename, catkey_a->name,
+ if (! grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey_a->name,
grub_be_to_cpu16 (catkey_a->namelen)))
return -1; /* XXX: This error never occurs, but in case it happens
just skip this entry. */
return symlink;
}
-int
+static int
grub_hfsplus_btree_iterate_node (struct grub_hfsplus_btree *btree,
struct grub_hfsplus_btnode *first_node,
int first_rec,
for (i = 0; i < grub_be_to_cpu16 (catkey->namelen); i++)
catkey->name[i] = grub_be_to_cpu16 (catkey->name[i]);
- if (! grub_utf16_to_utf8 (filename, catkey->name,
+ if (! grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name,
grub_be_to_cpu16 (catkey->namelen)))
{
grub_free (filename);
sizeof (struct grub_jfs_sblock), (char *) &data->sblock))
goto fail;
- if (grub_strncmp (data->sblock.magic, "JFS1", 4))
+ if (grub_strncmp ((char *) (data->sblock.magic), "JFS1", 4))
{
grub_error (GRUB_ERR_BAD_FS, "not a jfs filesystem");
goto fail;
{
diro->leaf = inode->dir.dirents;
diro->next_leaf = (struct grub_jfs_leaf_next_dirent *) de;
- diro->sorted = inode->dir.header.sorted;
+ diro->sorted = (char *) (inode->dir.header.sorted);
diro->count = inode->dir.header.count;
diro->dirpage = 0;
diro->index++;
/* Convert the temporary UTF16 filename to UTF8. */
- *grub_utf16_to_utf8 (diro->name, filename, strpos) = '\0';
+ *grub_utf16_to_utf8 ((grub_uint8_t *) (diro->name), filename, strpos) = '\0';
return 0;
}
return grub_error (GRUB_ERR_SYMLINK_LOOP, "too deep nesting of symlinks");
if (size <= 128)
- grub_strncpy (symlink, data->currinode.symlink.path, 128);
+ grub_strncpy (symlink, (char *) (data->currinode.symlink.path), 128);
else if (grub_jfs_read_file (data, 0, 0, size, symlink) < 0)
return grub_errno;
data = grub_jfs_mount (device->disk);
if (data)
- *label = grub_strndup (data->sblock.volname, 11);
+ *label = grub_strndup ((char *) (data->sblock.volname), 11);
else
*label = 0;
goto fail;
/* Make sure this is a sfs filesystem. */
- if (grub_strncmp (data->rblock.header.magic, "SFS", 4))
+ if (grub_strncmp ((char *) (data->rblock.header.magic), "SFS", 4))
{
grub_error (GRUB_ERR_BAD_FS, "not a sfs filesystem");
goto fail;
data->blocksize = grub_be_to_cpu32 (data->rblock.blocksize);
rootobjc_data = grub_malloc (data->blocksize);
- if (!rootobjc_data)
+ if (! rootobjc_data)
goto fail;
/* Read the root object container. */
data->diropen.block = blk;
data->diropen.data = data;
data->disk = disk;
- data->label = grub_strdup (rootobjc->objects[0].filename);
+ data->label = grub_strdup ((char *) (rootobjc->objects[0].filename));
return data;
{
struct grub_sfs_obj *obj;
obj = (struct grub_sfs_obj *) ((char *) objc + pos);
- char *filename = obj->filename;
+ char *filename = (char *) (obj->filename);
int len;
enum grub_fshelp_filetype type;
unsigned int block;
if (INODE_SIZE (data) < (GRUB_UFS_DIRBLKS + GRUB_UFS_INDIRBLKS
* INODE_BLKSZ (data)))
- grub_strcpy (symlink, INODE (data, symlink));
+ grub_strcpy (symlink, (char *) INODE (data, symlink));
else
{
grub_disk_read (data->disk,
sizeof (struct grub_xfs_inode), (char *) inode))
return grub_errno;
- if (grub_strncmp (inode->magic, "IN", 2))
+ if (grub_strncmp ((char *) inode->magic, "IN", 2))
return grub_error (GRUB_ERR_BAD_FS, "not a correct XFS inode.\n");
return 0;
sizeof (struct grub_xfs_sblock), (char *) &data->sblock))
goto fail;
- if (grub_strncmp (data->sblock.magic, "XFSB", 4))
+ if (grub_strncmp ((char *) (data->sblock.magic), "XFSB", 4))
{
grub_error (GRUB_ERR_BAD_FS, "not a xfs filesystem");
goto fail;
data = grub_xfs_mount (disk);
if (data)
- *label = grub_strndup (data->sblock.label, 12);
+ *label = grub_strndup ((char *) (data->sblock.label), 12);
else
*label = 0;
+++ /dev/null
-#! /bin/sh
-#
-# Copyright (C) 2002 Free Software Foundation, Inc.
-#
-# This gensymlist.sh is free software; the author
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-cat $* | grep -v '^#' | sed -n '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/\1 kernel/;p;}'
-cat $* | grep -v '^#' | sed -n '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/\1 kernel/;p;}'
--- /dev/null
+#! /bin/sh
+#
+# Copyright (C) 2002,2006 Free Software Foundation, Inc.
+#
+# This gensymlist.sh is free software; the author
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+### The configure script will replace these variables.
+
+srcdir=@srcdir@
+CC=@CC@
+
+$CC -DGRUB_SYMBOL_GENERATOR=1 -E -I. -Iinclude -I$srcdir/include $* \
+ | grep -v '^#' \
+ | sed -n \
+ -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/\1 kernel/;p;}' \
+ -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/\1 kernel/;p;}' \
+ | sort -u
#! /bin/sh
#
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# Copyright (C) 2002,2006 Free Software Foundation, Inc.
#
-# This gensymlist.sh is free software; the author
+# This gensymlist.sh.in is free software; the author
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+### The configure script will replace these variables.
+
+srcdir=@srcdir@
+CC=@CC@
+
+
cat <<EOF
/* This file is automatically generated by gensymlist.sh. DO NOT EDIT! */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2002 Free Software Foundation, Inc.
+ * Copyright (C) 2002,2006 Free Software Foundation, Inc.
*
* GRUB is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
{
EOF
-cat $* | grep -v '^#' | sed -n '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1},/;p;}'
-cat $* | grep -v '^#' | sed -n '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1},/;p;}'
+$CC -DGRUB_SYMBOL_GENERATOR=1 -E -I. -Iinclude -I$srcdir/include $* \
+ | grep -v '^#' \
+ | sed -n \
+ -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1},/;p;}' \
+ -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1},/;p;}' \
+ | sort -u
cat <<EOF
{0, 0}
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 1999,2000,2001,2002 Free Software Foundation, Inc.
+ * Copyright (C) 1999,2000,2001,2002,2006 Free Software Foundation, Inc.
*
* GRUB is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define VARIABLE(x) .globl EXT_C(x) ; .type EXT_C(x), "object" ; EXT_C(x):
/* Mark an exported symbol. */
-#define EXPORT_FUNC(x) x
-#define EXPORT_VAR(x) x
+#ifndef GRUB_SYMBOL_GENERATOR
+# define EXPORT_FUNC(x) x
+# define EXPORT_VAR(x) x
+#endif /* ! GRUB_SYMBOL_GENERATOR */
#endif /* ! GRUB_SYMBOL_HEADER */
#define GRUB_VIDEO_HEADER 1
#include <grub/err.h>
-#include <grub/symbol.h>
#include <grub/types.h>
typedef grub_uint32_t grub_video_color_t;
};
typedef struct grub_video_adapter *grub_video_adapter_t;
-void EXPORT_FUNC(grub_video_register) (grub_video_adapter_t adapter);
-void EXPORT_FUNC(grub_video_unregister) (grub_video_adapter_t adapter);
-void EXPORT_FUNC(grub_video_iterate) (int (*hook) (grub_video_adapter_t adapter));
+void grub_video_register (grub_video_adapter_t adapter);
+void grub_video_unregister (grub_video_adapter_t adapter);
+void grub_video_iterate (int (*hook) (grub_video_adapter_t adapter));
-grub_err_t EXPORT_FUNC(grub_video_setup) (unsigned int width,
- unsigned int height,
- unsigned int mode_type);
+grub_err_t grub_video_setup (unsigned int width,
+ unsigned int height,
+ unsigned int mode_type);
-grub_err_t EXPORT_FUNC(grub_video_restore) (void);
+grub_err_t grub_video_restore (void);
-grub_err_t EXPORT_FUNC(grub_video_get_info) (struct grub_video_mode_info *mode_info);
+grub_err_t grub_video_get_info (struct grub_video_mode_info *mode_info);
-enum grub_video_blit_format EXPORT_FUNC(grub_video_get_blit_format) (struct grub_video_mode_info *mode_info);
+enum grub_video_blit_format grub_video_get_blit_format (struct grub_video_mode_info *mode_info);
-grub_err_t EXPORT_FUNC(grub_video_set_palette) (unsigned int start,
- unsigned int count,
- struct grub_video_palette_data *palette_data);
+grub_err_t grub_video_set_palette (unsigned int start,
+ unsigned int count,
+ struct grub_video_palette_data *palette_data);
-grub_err_t EXPORT_FUNC(grub_video_get_palette) (unsigned int start,
- unsigned int count,
- struct grub_video_palette_data *palette_data);
+grub_err_t grub_video_get_palette (unsigned int start,
+ unsigned int count,
+ struct grub_video_palette_data *palette_data);
-grub_err_t EXPORT_FUNC(grub_video_set_viewport) (unsigned int x,
- unsigned int y,
- unsigned int width,
- unsigned int height);
+grub_err_t grub_video_set_viewport (unsigned int x,
+ unsigned int y,
+ unsigned int width,
+ unsigned int height);
+
+grub_err_t grub_video_get_viewport (unsigned int *x,
+ unsigned int *y,
+ unsigned int *width,
+ unsigned int *height);
-grub_err_t EXPORT_FUNC(grub_video_get_viewport) (unsigned int *x,
- unsigned int *y,
- unsigned int *width,
- unsigned int *height);
+grub_video_color_t grub_video_map_color (grub_uint32_t color_name);
-grub_video_color_t EXPORT_FUNC(grub_video_map_color) (grub_uint32_t color_name);
+grub_video_color_t grub_video_map_rgb (grub_uint8_t red,
+ grub_uint8_t green,
+ grub_uint8_t blue);
-grub_video_color_t EXPORT_FUNC(grub_video_map_rgb) (grub_uint8_t red,
- grub_uint8_t green,
- grub_uint8_t blue);
+grub_video_color_t grub_video_map_rgba (grub_uint8_t red,
+ grub_uint8_t green,
+ grub_uint8_t blue,
+ grub_uint8_t alpha);
-grub_video_color_t EXPORT_FUNC(grub_video_map_rgba) (grub_uint8_t red,
- grub_uint8_t green,
- grub_uint8_t blue,
- grub_uint8_t alpha);
+grub_err_t grub_video_fill_rect (grub_video_color_t color,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height);
-grub_err_t EXPORT_FUNC(grub_video_fill_rect) (grub_video_color_t color,
- int x,
- int y,
- unsigned int width,
- unsigned int height);
+grub_err_t grub_video_blit_glyph (struct grub_font_glyph *glyph,
+ grub_video_color_t color,
+ int x,
+ int y);
-grub_err_t EXPORT_FUNC(grub_video_blit_glyph) (struct grub_font_glyph *glyph,
- grub_video_color_t color,
- int x,
- int y);
+grub_err_t grub_video_blit_bitmap (struct grub_video_bitmap *bitmap,
+ int x,
+ int y,
+ int offset_x,
+ int offset_y,
+ unsigned int width,
+ unsigned int height);
-grub_err_t EXPORT_FUNC(grub_video_blit_bitmap) (struct grub_video_bitmap *bitmap,
- int x,
- int y,
- int offset_x,
- int offset_y,
- unsigned int width,
- unsigned int height);
+grub_err_t grub_video_blit_render_target (struct grub_video_render_target *source,
+ int x,
+ int y,
+ int offset_x,
+ int offset_y,
+ unsigned int width,
+ unsigned int height);
-grub_err_t EXPORT_FUNC(grub_video_blit_render_target) (struct grub_video_render_target *source,
- int x,
- int y,
- int offset_x,
- int offset_y,
- unsigned int width,
- unsigned int height);
+grub_err_t grub_video_scroll (grub_video_color_t color,
+ int dx,
+ int dy);
-grub_err_t EXPORT_FUNC(grub_video_scroll) (grub_video_color_t color,
- int dx,
- int dy);
+grub_err_t grub_video_swap_buffers (void);
-grub_err_t EXPORT_FUNC(grub_video_swap_buffers) (void);
+grub_err_t grub_video_create_render_target (struct grub_video_render_target **result,
+ unsigned int width,
+ unsigned int height,
+ unsigned int mode_type);
-grub_err_t EXPORT_FUNC(grub_video_create_render_target) (struct grub_video_render_target **result,
- unsigned int width,
- unsigned int height,
- unsigned int mode_type);
+grub_err_t grub_video_delete_render_target (struct grub_video_render_target *target);
-grub_err_t EXPORT_FUNC(grub_video_delete_render_target) (struct grub_video_render_target *target);
+grub_err_t grub_video_set_active_render_target (struct grub_video_render_target *target);
-grub_err_t EXPORT_FUNC(grub_video_set_active_render_target) (struct grub_video_render_target *target);
-
#endif /* ! GRUB_VIDEO_HEADER */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc.
*
* GRUB is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/* Used for going back to the main function. */
jmp_buf main_env;
+/* Store the prefix specified by an argument. */
+static char *prefix = 0;
+
grub_addr_t
grub_arch_modules_addr (void)
{
grub_console_init ();
}
+void
+grub_machine_set_prefix (void)
+{
+ grub_env_set ("prefix", prefix);
+ free (prefix);
+ prefix = 0;
+}
+
void
grub_machine_fini (void)
{
int
main (int argc, char *argv[])
{
- char *prefix = 0;
- char rootprefix[100];
+ char *dir;
+
struct arguments args =
{
.dir = DEFAULT_DIRECTORY,
}
}
- prefix = grub_get_prefix (args.dir ? : DEFAULT_DIRECTORY);
- sprintf (rootprefix, "%s%s", args.root_dev, prefix);
-
- grub_env_set ("prefix", rootprefix);
+ dir = grub_get_prefix (args.dir ? : DEFAULT_DIRECTORY);
+ prefix = xmalloc (strlen (args.root_dev) + strlen (dir) + 1);
+ sprintf (prefix, "%s%s", args.root_dev, dir);
+ free (dir);
/* XXX: This is a bit unportable. */
grub_util_biosdisk_init (args.dev_map);
memcpy (*core_img, kernel_img, GRUB_KERNEL_MACHINE_RAW_SIZE);
grub_util_info ("compressing the core image");
- if (lzo1x_999_compress (kernel_img + GRUB_KERNEL_MACHINE_RAW_SIZE,
+ if (lzo1x_999_compress ((const lzo_byte *) (kernel_img
+ + GRUB_KERNEL_MACHINE_RAW_SIZE),
kernel_size - GRUB_KERNEL_MACHINE_RAW_SIZE,
- *core_img + GRUB_KERNEL_MACHINE_RAW_SIZE,
+ (lzo_byte *) (*core_img
+ + GRUB_KERNEL_MACHINE_RAW_SIZE),
&size, wrkmem)
!= LZO_E_OK)
grub_util_error ("cannot compress the kernel image");