diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-07-17 15:17:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-07-17 15:17:29 +0000 |
commit | fa21a8439f23b608448f1ce5f1f01c51a63ed258 (patch) | |
tree | 28962a606999f09246988d4a8cbcc2cfa4410789 /tools/cpu/sh/shgen.c | |
parent | Patch from Dario Alcocer <alcocer@connectnet.com>. His comments: (diff) | |
download | rtems-fa21a8439f23b608448f1ce5f1f01c51a63ed258.tar.bz2 |
New files from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. His comments:
* c/src/exec/score/tools/sh - NEW DIRECTORY - contains shgen
Most of it should be self-explanatory. I am a little bit concerned about
host-dependent features (getopt, floating point libraries). This
shouldn't disturb much now, as this tool should be compileable on all
gnu-based hosts and is only applicable for the sh. But in case somebody
complains, we may need to add autoconf checks or even restructurize
parts of rtems (IMO, rtems needs to be restructurized - remember the
"turning rtems upside down" issue).
Diffstat (limited to 'tools/cpu/sh/shgen.c')
-rw-r--r-- | tools/cpu/sh/shgen.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tools/cpu/sh/shgen.c b/tools/cpu/sh/shgen.c new file mode 100644 index 0000000000..3fa6ae9b75 --- /dev/null +++ b/tools/cpu/sh/shgen.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1998 Ralf Corsepius (corsepiu@faw.uni-ulm.de) + * + * See the file COPYING for copyright notice. + */ + +#include <stdio.h> +#include <string.h> /* strcmp, strerror */ +#include <errno.h> +#include <getopt.h> + +#include "sci.h" + +static void usage( char *prog ) +{ + fprintf( stderr, "usage: %s [options] driver\n", prog ); + fprintf( stderr, "options:\n" ); + fprintf( stderr, "\t-M Phi .. processor frequency [MHz] default: 20\n" ); + fprintf( stderr, "driver:\n" ); + fprintf( stderr, "\tsci .. bitrate table for sci\n" ); + exit ( 1 ); +} + +static void shgen_header( FILE *file ) +{ + fprintf( file, + "/*\n * DO NOT EDIT - this file is automatically generated by shgen\n" ); + fprintf( file, + " * Copyright (c) 1998, Ralf Corsepius (corsepiu@faw.uni-ulm.de)\n */\n" ); + fprintf( file, + "\n/* This file is not copyrighted */\n\n" ); +} + +int main( int argc, char *argv[] ) +{ + double Phi = 20.0 ; + + while ( ( optopt = getopt( argc, argv, "M:" ) ) > 0 ) + { + switch ( optopt ) + { + case 'M' : + sscanf( optarg, "%lf", &Phi ); + Phi = Phi * 1000000.0; + break ; + default : + usage( argv[0] ); + break ; + } + } + + if ( argc - optind != 1 ) + usage( argv[0] ); + + shgen_header( stdout ); + + if ( strcmp( argv[optind], "sci" ) == 0 ) + { + shgen_gensci( stdout, Phi ); + } + else + usage( argv[0] ); + + return 0 ; +} |