OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [tools/] [cpu/] [sh/] [shgen.c] - Diff between revs 30 and 173

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 30 Rev 173
/*
/*
 * Copyright (c) 1998,1999,2000 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
 * Copyright (c) 1998,1999,2000 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
 *
 *
 * See the file COPYING for copyright notice.
 * See the file COPYING for copyright notice.
 */
 */
 
 
#include <stdio.h>
#include <stdio.h>
#include <string.h>     /* strcmp, strerror */
#include <string.h>     /* strcmp, strerror */
#include <errno.h>
#include <errno.h>
#include <getopt.h>
#include <getopt.h>
 
 
#include "sci.h"
#include "sci.h"
 
 
static void usage( FILE* ofile, char *prog )
static void usage( FILE* ofile, char *prog )
{
{
  fprintf( ofile, "Usage: %s [options] driver\n", prog );
  fprintf( ofile, "Usage: %s [options] driver\n", prog );
  fprintf( ofile, "\nOptions:\n" );
  fprintf( ofile, "\nOptions:\n" );
  fprintf( ofile, "Processor frequency (default 20MHz):\n") ;
  fprintf( ofile, "Processor frequency (default 20MHz):\n") ;
  fprintf( ofile, "\t-M Phi      .. processor frequency [MHz]\n" );
  fprintf( ofile, "\t-M Phi      .. processor frequency [MHz]\n" );
  fprintf( ofile, "\t-K Phi      .. processor frequency [KHz]\n" );
  fprintf( ofile, "\t-K Phi      .. processor frequency [KHz]\n" );
  fprintf( ofile, "\t-H Phi      .. processor frequency [Hz]\n" );
  fprintf( ofile, "\t-H Phi      .. processor frequency [Hz]\n" );
  fprintf( ofile, "Driver:\n" );
  fprintf( ofile, "Driver:\n" );
  fprintf( ofile, "\tsci         .. bitrate table for sci\n" );
  fprintf( ofile, "\tsci         .. bitrate table for sci\n" );
 
 
  fprintf( ofile, "\nWritten by Ralf Corsepius <corsepiu@faw.uni-ulm.de>\n" );
  fprintf( ofile, "\nWritten by Ralf Corsepius <corsepiu@faw.uni-ulm.de>\n" );
  fprintf( ofile, "\nCopyright (c) 1998,1999,2000\tRalf Corsepius\n" );
  fprintf( ofile, "\nCopyright (c) 1998,1999,2000\tRalf Corsepius\n" );
}
}
 
 
#if HAVE_GETOPT_LONG
#if HAVE_GETOPT_LONG
#define NOARG   0
#define NOARG   0
#define HASARG  1
#define HASARG  1
#define OPTARG  2
#define OPTARG  2
 
 
static struct option long_options[] =
static struct option long_options[] =
{
{
  { "version",          NOARG,  NULL, 'v' },
  { "version",          NOARG,  NULL, 'v' },
  { "help",             NOARG,  NULL, 'h' },
  { "help",             NOARG,  NULL, 'h' },
  { "mega-hertz",       HASARG, NULL, 'M' },
  { "mega-hertz",       HASARG, NULL, 'M' },
  { "kilo-hertz",       HASARG, NULL, 'K' },
  { "kilo-hertz",       HASARG, NULL, 'K' },
  { "hertz",            HASARG, NULL, 'H' },
  { "hertz",            HASARG, NULL, 'H' },
  { 0, 0, 0, 0 }
  { 0, 0, 0, 0 }
};
};
#endif
#endif
 
 
static void shgen_header( FILE *file )
static void shgen_header( FILE *file )
{
{
  fprintf( file,
  fprintf( file,
    "/*\n * DO NOT EDIT - this file is automatically generated by shgen %s\n",
    "/*\n * DO NOT EDIT - this file is automatically generated by shgen %s\n",
    VERSION );
    VERSION );
  fprintf( file,
  fprintf( file,
    " * Copyright (c) 1998,1999,2000 Ralf Corsepius (corsepiu@faw.uni-ulm.de)\n */\n" );
    " * Copyright (c) 1998,1999,2000 Ralf Corsepius (corsepiu@faw.uni-ulm.de)\n */\n" );
  fprintf( file,
  fprintf( file,
    "\n/* This file is not copyrighted */\n\n" );
    "\n/* This file is not copyrighted */\n\n" );
}
}
 
 
int main( int argc, char *argv[] )
int main( int argc, char *argv[] )
{
{
  double        Phi = 20.0 ;
  double        Phi = 20.0 ;
 
 
#if HAVE_GETOPT_LONG  
#if HAVE_GETOPT_LONG  
  int option_index = 0 ;
  int option_index = 0 ;
  while( ( optopt = getopt_long( argc, argv, "M:K:H:hv",
  while( ( optopt = getopt_long( argc, argv, "M:K:H:hv",
      long_options, &option_index ) ) > 0 )
      long_options, &option_index ) ) > 0 )
#else
#else
  while ( ( optopt = getopt( argc, argv, "M:K:H:hv" ) ) > 0 )
  while ( ( optopt = getopt( argc, argv, "M:K:H:hv" ) ) > 0 )
#endif
#endif
  {
  {
    switch ( optopt )
    switch ( optopt )
    {
    {
    case 'M' :
    case 'M' :
      sscanf( optarg, "%lf", &Phi );
      sscanf( optarg, "%lf", &Phi );
      Phi = Phi * 1000000.0;
      Phi = Phi * 1000000.0;
      break ;
      break ;
    case 'K' :
    case 'K' :
      sscanf( optarg, "%lf", &Phi );
      sscanf( optarg, "%lf", &Phi );
      Phi = Phi * 1000.0;
      Phi = Phi * 1000.0;
      break ;
      break ;
    case 'H' :
    case 'H' :
      sscanf( optarg, "%lf", &Phi );
      sscanf( optarg, "%lf", &Phi );
      break ;
      break ;
    case 'h' :
    case 'h' :
      usage( stdout, argv[0] );
      usage( stdout, argv[0] );
      exit(0);
      exit(0);
    case 'v' :
    case 'v' :
      fprintf( stdout, "%s version %s\n", argv[0], VERSION );
      fprintf( stdout, "%s version %s\n", argv[0], VERSION );
      exit(0);
      exit(0);
    default  :
    default  :
      usage( stderr, argv[0] );
      usage( stderr, argv[0] );
      exit(1);
      exit(1);
      break ;
      break ;
    }
    }
  }
  }
 
 
  if ( argc - optind != 1 )
  if ( argc - optind != 1 )
  {
  {
    fprintf( stderr, "%s: Missing argument: driver\n", argv[0] );
    fprintf( stderr, "%s: Missing argument: driver\n", argv[0] );
    exit(1);
    exit(1);
  }
  }
 
 
  shgen_header( stdout );
  shgen_header( stdout );
 
 
  if ( strcmp( argv[optind], "sci" ) == 0 )
  if ( strcmp( argv[optind], "sci" ) == 0 )
  {
  {
    shgen_gensci( stdout, Phi );
    shgen_gensci( stdout, Phi );
  }
  }
  else
  else
  {
  {
    fprintf( stderr, "%s: Invalid argument: driver\n", argv[0] );
    fprintf( stderr, "%s: Invalid argument: driver\n", argv[0] );
    exit(1);
    exit(1);
  }
  }
 
 
  return 0 ;
  return 0 ;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.