commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1838] 2008-08-30 Pavel Roskin <address@hidden>


From: Pavel Roskin
Subject: [1838] 2008-08-30 Pavel Roskin <address@hidden>
Date: Sun, 31 Aug 2008 02:19:18 +0000

Revision: 1838
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1838
Author:   proski
Date:     2008-08-31 02:19:17 +0000 (Sun, 31 Aug 2008)

Log Message:
-----------
2008-08-30  Pavel Roskin  <address@hidden>

        * util/genmoddep.c: Remove for real this time.
        * DISTLIST: Remove util/genmoddep.c.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/DISTLIST

Removed Paths:
-------------
    trunk/grub2/util/genmoddep.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2008-08-30 17:51:24 UTC (rev 1837)
+++ trunk/grub2/ChangeLog       2008-08-31 02:19:17 UTC (rev 1838)
@@ -1,3 +1,8 @@
+2008-08-30  Pavel Roskin  <address@hidden>
+
+       * util/genmoddep.c: Remove for real this time.
+       * DISTLIST: Remove util/genmoddep.c.
+
 2008-08-30  Robert Millan  <address@hidden>
 
        * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment

Modified: trunk/grub2/DISTLIST
===================================================================
--- trunk/grub2/DISTLIST        2008-08-30 17:51:24 UTC (rev 1837)
+++ trunk/grub2/DISTLIST        2008-08-31 02:19:17 UTC (rev 1838)
@@ -402,7 +402,6 @@
 term/ieee1275/ofconsole.c
 util/biosdisk.c
 util/console.c
-util/genmoddep.c
 util/getroot.c
 util/grub-editenv.c
 util/grub-emu.c

Deleted: trunk/grub2/util/genmoddep.c
===================================================================
--- trunk/grub2/util/genmoddep.c        2008-08-30 17:51:24 UTC (rev 1837)
+++ trunk/grub2/util/genmoddep.c        2008-08-31 02:19:17 UTC (rev 1838)
@@ -1,278 +0,0 @@
-/*
- *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2002,2007  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
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#define BUF_SIZE       1024
-#define SYMTAB_SIZE    509
-
-struct symbol
-{
-  const char *name;
-  const char *mod;
-  struct symbol *next;
-};
-
-struct module
-{
-  const char *name;
-  struct module *next;
-};
-
-static char buf[BUF_SIZE];
-static struct symbol *symtab[SYMTAB_SIZE];
-
-static void
-err (const char *fmt, ...)
-{
-  va_list ap;
-
-  fprintf (stderr, "genmoddep: error: ");
-  
-  va_start (ap, fmt);
-  vfprintf (stderr, fmt, ap);
-  va_end (ap);
-
-  fputc ('\n', stderr);
-  exit (1);
-}
-
-static void *
-xmalloc (size_t size)
-{
-  void *p;
-
-  p = malloc (size);
-  if (! p)
-    err ("out of memory");
-
-  return p;
-}
-
-static char *
-xstrdup (const char *str)
-{
-  char *s;
-  size_t len;
-
-  len = strlen (str);
-  s = (char *) xmalloc (len + 1);
-  memcpy (s, str, len + 1);
-
-  return s;
-}
-
-static void
-chomp (char *str)
-{
-  int end;
-  
-  end = strlen (str) - 1;
-  if (end < 0)
-    err ("empty string");
-
-  if (str[end] == '\n')
-    str[end] = '\0';
-}
-
-static unsigned
-symbol_hash (const char *s)
-{
-  unsigned key = 0;
-
-  while (*s)
-    key = key * 65599 + *s++;
-
-  return (key + (key >> 5)) % SYMTAB_SIZE;
-}
-
-static struct symbol *
-get_symbol (const char *name)
-{
-  unsigned k;
-  struct symbol *sym;
-  
-  k = symbol_hash (name);
-  for (sym = symtab[k]; sym; sym = sym->next)
-    if (strcmp (sym->name, name) == 0)
-      return sym;
-
-  return 0;
-}
-
-static void
-add_symbol (const char *name, const char *mod)
-{
-  unsigned k;
-  struct symbol *sym;
-
-  if (get_symbol (name))
-    err ("duplicated symbol: %s", name);
-  
-  sym = (struct symbol *) xmalloc (sizeof (*sym));
-  sym->name = xstrdup (name);
-  sym->mod = xstrdup (mod);
-
-  k = symbol_hash (name);
-  sym->next = symtab[k];
-  symtab[k] = sym;
-}
-
-static void
-free_symbols (void)
-{
-  int i;
-
-  for (i = 0; i < SYMTAB_SIZE; i++)
-    {
-      struct symbol *p, *q;
-
-      p = symtab[i];
-      while (p)
-       {
-         q = p->next;
-         free ((void *) p->name);
-         free ((void *) p->mod);
-         free (p);
-         p = q;
-       }
-    }
-}
-
-static void
-read_defined_symbols (FILE *fp)
-{
-  while (fgets (buf, sizeof (buf), fp))
-    {
-      char *p;
-
-      if (! *buf)
-       err ("empty symbol name: %s", buf);
-      
-      p = strchr (buf, ' ');
-      if (! p)
-       err ("invalid line format: %s", buf);
-
-      p++;
-      
-      if (! *p)
-       err ("empty module name: %s", buf);
-
-      *(p - 1) = '\0';
-      chomp (p);
-      
-      add_symbol (buf, p);
-    }
-}
-
-static void
-add_module (struct module **head, const char *name)
-{
-  struct module *mod;
-
-  for (mod = *head; mod; mod = mod->next)
-    if (strcmp (mod->name, name) == 0)
-      return;
-
-  mod = (struct module *) xmalloc (sizeof (*mod));
-  mod->name = xstrdup (name);
-
-  mod->next = *head;
-  *head = mod;
-}
-
-static void
-free_modules (struct module *head)
-{
-  struct module *next;
-
-  while (head)
-    {
-      next = head->next;
-      free ((void *) head->name);
-      free (head);
-      head = next;
-    }
-}
-
-static void
-find_dependencies (FILE *fp)
-{
-  char *mod_name;
-  struct module *mod_list = 0;
-  struct module *mod;
-  
-  if (! fgets (buf, sizeof (buf), fp) || buf[0] == '\n' || buf[0] == '\0')
-    err ("no module name");
-
-  chomp (buf);
-  mod_name = xstrdup (buf);
-
-  while (fgets (buf, sizeof (buf), fp))
-    {
-      struct symbol *sym;
-      
-      chomp (buf);
-      sym = get_symbol (buf);
-      if (! sym)
-       err ("%s in %s is not defined", buf, mod_name);
-
-      add_module (&mod_list, sym->mod);
-    }
-
-  printf ("%s:", mod_name);
-  
-  for (mod = mod_list; mod; mod = mod->next)
-    if (strcmp (mod->name, "kernel") != 0)
-      printf (" %s", mod->name);
-  
-  putchar ('\n');
-
-  free_modules (mod_list);
-}
-
-int
-main (int argc, char *argv[])
-{
-  int i;
-  
-  /* First, get defined symbols.  */
-  read_defined_symbols (stdin);
-
-  /* Second, find the dependencies.  */
-  for (i = 1; i < argc; i++)
-    {
-      FILE *fp;
-
-      fp = fopen (argv[i], "r");
-      if (! fp)
-       err ("cannot open %s", argv[i]);
-
-      find_dependencies (fp);
-
-      fclose (fp);
-    }
-
-  /* Last, free memory.  */
-  free_symbols ();
-  
-  return 0;
-}






reply via email to

[Prev in Thread] Current Thread [Next in Thread]