]>
Commit | Line | Data |
---|---|---|
6a161fa9 | 1 | #! /bin/sh |
2 | # | |
8367695c | 3 | # Copyright (C) 2002 Free Software Foundation, Inc. |
6a161fa9 | 4 | # |
5 | # This gensymlist.sh is free software; the author | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | cat <<EOF | |
15 | /* This file is automatically generated by gensymlist.sh. DO NOT EDIT! */ | |
16 | /* | |
4b13b216 | 17 | * GRUB -- GRand Unified Bootloader |
8c8cc205 | 18 | * Copyright (C) 2002 Free Software Foundation, Inc. |
6a161fa9 | 19 | * |
4b13b216 | 20 | * GRUB is free software; you can redistribute it and/or modify |
6a161fa9 | 21 | * it under the terms of the GNU General Public License as published by |
22 | * the Free Software Foundation; either version 2 of the License, or | |
23 | * (at your option) any later version. | |
24 | * | |
25 | * This program is distributed in the hope that it will be useful, | |
26 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
27 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
28 | * GNU General Public License for more details. | |
29 | * | |
30 | * You should have received a copy of the GNU General Public License | |
4b13b216 | 31 | * along with GRUB; if not, write to the Free Software |
6a161fa9 | 32 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
33 | */ | |
34 | ||
35 | EOF | |
36 | ||
37 | for i in $*; do | |
38 | echo "#include <$i>" | |
39 | done | |
40 | ||
41 | cat <<EOF | |
42 | ||
43 | void | |
4b13b216 | 44 | grub_register_exported_symbols (void) |
6a161fa9 | 45 | { |
46 | EOF | |
47 | ||
48 | cat <<EOF | |
49 | struct symtab { const char *name; void *addr; }; | |
50 | struct symtab *p; | |
51 | static struct symtab tab[] = | |
52 | { | |
53 | EOF | |
54 | ||
55 | cat $* | grep -v '^#' | sed -n '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1},/;p;}' | |
56 | cat $* | grep -v '^#' | sed -n '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1},/;p;}' | |
57 | ||
58 | cat <<EOF | |
59 | {0, 0} | |
60 | }; | |
61 | ||
62 | for (p = tab; p->name; p++) | |
4b13b216 | 63 | grub_dl_register_symbol (p->name, p->addr, 0); |
6a161fa9 | 64 | } |
65 | EOF |