diff options
Diffstat (limited to 'src/misc/util')
-rw-r--r-- | src/misc/util/cpu_stats.c | 122 | ||||
-rw-r--r-- | src/misc/util/cpu_time.c | 128 | ||||
-rw-r--r-- | src/misc/util/datalimit.c | 95 | ||||
-rw-r--r-- | src/misc/util/getopt.c | 84 | ||||
-rw-r--r-- | src/misc/util/leaks.h | 8 | ||||
-rw-r--r-- | src/misc/util/module.make | 9 | ||||
-rw-r--r-- | src/misc/util/pathsearch.c | 131 | ||||
-rw-r--r-- | src/misc/util/safe_mem.c | 104 | ||||
-rw-r--r-- | src/misc/util/strsav.c | 157 | ||||
-rw-r--r-- | src/misc/util/texpand.c | 66 | ||||
-rw-r--r-- | src/misc/util/util.h | 331 | ||||
-rw-r--r-- | src/misc/util/util_hack.h | 95 |
12 files changed, 100 insertions, 1230 deletions
diff --git a/src/misc/util/cpu_stats.c b/src/misc/util/cpu_stats.c deleted file mode 100644 index aa2d18ef..00000000 --- a/src/misc/util/cpu_stats.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/cpu_stats.c,v - * rajeev - * 1.4 - * 1995/08/08 22:41:17 - * - */ -/* LINTLIBRARY */ - -#include <stdio.h> -#include "util.h" - - -#include <sys/types.h> -//#include <sys/time.h> -#ifdef HAVE_SYS_RESOURCE_H -# include <sys/resource.h> -#endif - -#if defined(_IBMR2) -#define etext _etext -#define edata _edata -#define end _end -#endif - -#ifndef __CYGWIN32__ -extern int end, etext, edata; -#endif - -void -util_print_cpu_stats(fp) -FILE *fp; -{ - (void) fprintf(fp, "Usage statistics not available\n"); -} - -#if 0 - -void -util_print_cpu_stats(fp) -FILE *fp; -{ -#if HAVE_SYS_RESOURCE_H && !defined(__CYGWIN32__) - struct rusage rusage; -#ifdef RLIMIT_DATA - struct rlimit rlp; -#endif - int text, data, vm_limit, vm_soft_limit; - double user, system, scale; - char hostname[257]; - int vm_text, vm_init_data, vm_uninit_data, vm_sbrk_data; - - /* Get the hostname */ - (void) gethostname(hostname, 256); - hostname[256] = '\0'; /* just in case */ - - /* Get the virtual memory sizes */ - vm_text = ((int) (&etext)) / 1024.0 + 0.5; - vm_init_data = ((int) (&edata) - (int) (&etext)) / 1024.0 + 0.5; - vm_uninit_data = ((int) (&end) - (int) (&edata)) / 1024.0 + 0.5; - vm_sbrk_data = (sizeof(char) * ((char *) sbrk(0) - (char *) (&end))) / 1024.0 + 0.5; - - /* Get virtual memory limits */ -#ifdef RLIMIT_DATA /* In HP-UX, with cc, this constant does not exist */ - (void) getrlimit(RLIMIT_DATA, &rlp); - vm_limit = rlp.rlim_max / 1024.0 + 0.5; - vm_soft_limit = rlp.rlim_cur / 1024.0 + 0.5; -#else - vm_limit = -1; - vm_soft_limit = -1; -#endif - - /* Get usage stats */ - (void) getrusage(RUSAGE_SELF, &rusage); - user = rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec/1.0e6; - system = rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec/1.0e6; - scale = (user + system)*100.0; - if (scale == 0.0) scale = 0.001; - - (void) fprintf(fp, "Runtime Statistics\n"); - (void) fprintf(fp, "------------------\n"); - (void) fprintf(fp, "Machine name: %s\n", hostname); - (void) fprintf(fp, "User time %6.1f seconds\n", user); - (void) fprintf(fp, "System time %6.1f seconds\n\n", system); - - text = rusage.ru_ixrss / scale + 0.5; - data = (rusage.ru_idrss + rusage.ru_isrss) / scale + 0.5; - (void) fprintf(fp, "Average resident text size = %5dK\n", text); - (void) fprintf(fp, "Average resident data+stack size = %5dK\n", data); - (void) fprintf(fp, "Maximum resident size = %5ldK\n\n", - rusage.ru_maxrss/2); - (void) fprintf(fp, "Virtual text size = %5dK\n", - vm_text); - (void) fprintf(fp, "Virtual data size = %5dK\n", - vm_init_data + vm_uninit_data + vm_sbrk_data); - (void) fprintf(fp, " data size initialized = %5dK\n", - vm_init_data); - (void) fprintf(fp, " data size uninitialized = %5dK\n", - vm_uninit_data); - (void) fprintf(fp, " data size sbrk = %5dK\n", - vm_sbrk_data); - /* In some platforms, this constant does not exist */ -#ifdef RLIMIT_DATA - (void) fprintf(fp, "Virtual memory limit = %5dK (%dK)\n\n", - vm_soft_limit, vm_limit); -#endif - (void) fprintf(fp, "Major page faults = %ld\n", rusage.ru_majflt); - (void) fprintf(fp, "Minor page faults = %ld\n", rusage.ru_minflt); - (void) fprintf(fp, "Swaps = %ld\n", rusage.ru_nswap); - (void) fprintf(fp, "Input blocks = %ld\n", rusage.ru_inblock); - (void) fprintf(fp, "Output blocks = %ld\n", rusage.ru_oublock); - (void) fprintf(fp, "Context switch (voluntary) = %ld\n", rusage.ru_nvcsw); - (void) fprintf(fp, "Context switch (involuntary) = %ld\n", rusage.ru_nivcsw); -#else /* Do not have sys/resource.h */ - (void) fprintf(fp, "Usage statistics not available\n"); -#endif -} - -#endif - diff --git a/src/misc/util/cpu_time.c b/src/misc/util/cpu_time.c deleted file mode 100644 index d264bdc9..00000000 --- a/src/misc/util/cpu_time.c +++ /dev/null @@ -1,128 +0,0 @@ -/**CFile*********************************************************************** - - FileName [ cpu_time.c ] - - PackageName [ util ] - - Synopsis [ System time calls ] - - Description [ The problem is that all unix systems have a different notion - of how fast time goes (i.e., the units returned by). This - returns a consistent result. ] - - Author [ Stephen Edwards <sedwards@eecs.berkeley.edu> and others ] - - Copyright [Copyright (c) 1994-1996 The Regents of the Univ. of California. - All rights reserved. - - Permission is hereby granted, without written agreement and without license - or royalty fees, to use, copy, modify, and distribute this software and its - documentation for any purpose, provided that the above copyright notice and - the following two paragraphs appear in all copies of this software. - - IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF - CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN - "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE - MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.] - -******************************************************************************/ - -#include "util.h" - -#if HAVE_SYS_TYPES_H -# include<sys/types.h> -#endif - -#if HAVE_SYS_TIMES_H -# include<sys/times.h> -#endif - -/**AutomaticStart*************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* Static function prototypes */ -/*---------------------------------------------------------------------------*/ - -/**AutomaticEnd***************************************************************/ - -/**Function******************************************************************** - - Synopsis [ Return elapsed time in milliseconds ] - - Description [ Return a long which represents the elapsed time in - milliseconds since some constant reference. <P> - - There are two possibilities: - <OL> - <LI> The system is non-POSIX compliant, so unistd.h - and hence sysconf() can't tell us the clock tick - speed. At this point, we have to resort to - using the user-settable CLOCK_RESOLUTION definition - to get the right speed - <LI> The system is POSIX-compliant. unistd.h gives - us sysconf(), which tells us the clock rate. - </OL> - ] - - SideEffects [ none ] - -******************************************************************************/ - -/* -long -util_cpu_time() -{ - long t = 0; - -#if HAVE_SYSCONF == 1 - - // Code for POSIX systems - - struct tms buffer; - long nticks; // number of clock ticks per second - - nticks = sysconf(_SC_CLK_TCK); - times(&buffer); - t = buffer.tms_utime * (1000.0/nticks); - -#else -# ifndef vms - - // Code for non-POSIX systems - - struct tms buffer; - - time(&buffer); - t = buffer.tms_utime * 1000.0 / CLOCK_RESOLUTION; - -# else - - // Code for VMS (?) - - struct {int p1, p2, p3, p4;} buffer; - static long ref_time; - times(&buffer); - t = buffer.p1 * 10; - if (ref_time == 0) - ref_time = t; - t = t - ref_time; - -# endif // vms -#endif // _POSIX_VERSION - - return t; -} -*/ - - -long -util_cpu_time() -{ - return clock(); -} diff --git a/src/misc/util/datalimit.c b/src/misc/util/datalimit.c deleted file mode 100644 index 96c2ce95..00000000 --- a/src/misc/util/datalimit.c +++ /dev/null @@ -1,95 +0,0 @@ -/**CFile************************************************************************ - - FileName [datalimit.c] - - PackageName [util] - - Synopsis [Routine to obtain the maximum data size available to a program. The - routine is based on "getrlimit". If the system does not have this function, - the default value RLIMIT_DATA_DEFAULT is assumed. This function provides an - informative value, it does not restrict the size of the program in any way.] - - Author [Fabio Somenzi <fabio@colorado.edu>] - - Copyright [This file was created at the University of Colorado at - Boulder. The University of Colorado at Boulder makes no warranty - about the suitability of this software for any purpose. It is - presented on an AS IS basis.] - -******************************************************************************/ - -#include "util.h" - -static char rcsid[] UNUSED = "$Id: datalimit.c,v 1.1.1.1 2003/02/24 22:24:04 wjiang Exp $"; - -#if HAVE_SYS_RESOURCE_H -#if HAVE_SYS_TIME_H -#include <sys/time.h> -#endif -#include <sys/resource.h> -#endif - -/*---------------------------------------------------------------------------*/ -/* Type declarations */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------*/ -/* Structure declarations */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------*/ -/* Macro declarations */ -/*---------------------------------------------------------------------------*/ - -#ifndef RLIMIT_DATA_DEFAULT -#define RLIMIT_DATA_DEFAULT 67108864 /* assume 64MB by default */ -#endif - -/*---------------------------------------------------------------------------*/ -/* Variable declarations */ -/*---------------------------------------------------------------------------*/ - -/**AutomaticStart*************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* Static function prototypes */ -/*---------------------------------------------------------------------------*/ - -/**AutomaticEnd***************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* Definition of exported functions */ -/*---------------------------------------------------------------------------*/ - -/**Function******************************************************************** - - Synopsis [Function that computes the data limit of the process.] - - SideEffects [] - -******************************************************************************/ -int -getSoftDataLimit() -{ -#if HAVE_SYS_RESOURCE_H && HAVE_GETRLIMIT && defined(RLIMIT_DATA) - struct rlimit rl; - int result; - - result = getrlimit(RLIMIT_DATA, &rl); - if (result != 0 || rl.rlim_cur == RLIM_INFINITY) - return(RLIMIT_DATA_DEFAULT); - else - return(rl.rlim_cur); -#else - return(RLIMIT_DATA_DEFAULT); -#endif - -} /* end of getSoftDataLimit */ - -/*---------------------------------------------------------------------------*/ -/* Definition of internal functions */ -/*---------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------*/ -/* Definition of static functions */ -/*---------------------------------------------------------------------------*/ diff --git a/src/misc/util/getopt.c b/src/misc/util/getopt.c deleted file mode 100644 index 778c34d6..00000000 --- a/src/misc/util/getopt.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/getopt.c,v - * rajeev - * 1.3 - * 1995/08/08 22:41:22 - * - */ -/* LINTLIBRARY */ - -#include <stdio.h> -#include "util.h" - - -/* File : getopt.c - * Author : Henry Spencer, University of Toronto - * Updated: 28 April 1984 - * - * Changes: (R Rudell) - * changed index() to strchr(); - * added getopt_reset() to reset the getopt argument parsing - * - * Purpose: get option letter from argv. - */ - -char *util_optarg; /* Global argument pointer. */ -int util_optind = 0; /* Global argv index. */ -static char *scan; - - -void -util_getopt_reset() -{ - util_optarg = 0; - util_optind = 0; - scan = 0; -} - - - -int -util_getopt(argc, argv, optstring) -int argc; -char *argv[]; -char *optstring; -{ - register int c; - register char *place; - - util_optarg = NIL(char); - - if (scan == NIL(char) || *scan == '\0') { - if (util_optind == 0) util_optind++; - if (util_optind >= argc) return EOF; - place = argv[util_optind]; - if (place[0] != '-' || place[1] == '\0') return EOF; - util_optind++; - if (place[1] == '-' && place[2] == '\0') return EOF; - scan = place+1; - } - - c = *scan++; - place = strchr(optstring, c); - if (place == NIL(char) || c == ':') { - (void) fprintf(stderr, "%s: unknown option %c\n", argv[0], c); - return '?'; - } - if (*++place == ':') { - if (*scan != '\0') { - util_optarg = scan; - scan = NIL(char); - } else { - if (util_optind >= argc) { - (void) fprintf(stderr, "%s: %c requires an argument\n", - argv[0], c); - return '?'; - } - util_optarg = argv[util_optind]; - util_optind++; - } - } - return c; -} diff --git a/src/misc/util/leaks.h b/src/misc/util/leaks.h index daa628b1..1a32062a 100644 --- a/src/misc/util/leaks.h +++ b/src/misc/util/leaks.h @@ -1,8 +1,8 @@ -/////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // This file is used to detect memory leaks using Visual Studio 6.0 -// The idea comes from the following webpage: -// http://www.michaelmoser.org/memory.htm -////////////////////////////////////// +// The idea comes from this page: http://www.michaelmoser.org/memory.htm +// In addition to this file, it required the presence of "stdlib_hack.h" +////////////////////////////////////////////////////////////////////////// #ifndef __LEAKS_H__ #define __LEAKS_H__ diff --git a/src/misc/util/module.make b/src/misc/util/module.make index 06eba7e4..d6d908e7 100644 --- a/src/misc/util/module.make +++ b/src/misc/util/module.make @@ -1,8 +1 @@ -SRC += src/misc/util/cpu_stats.c \ - src/misc/util/cpu_time.c \ - src/misc/util/datalimit.c \ - src/misc/util/getopt.c \ - src/misc/util/pathsearch.c \ - src/misc/util/safe_mem.c \ - src/misc/util/strsav.c \ - src/misc/util/texpand.c +SRC += diff --git a/src/misc/util/pathsearch.c b/src/misc/util/pathsearch.c deleted file mode 100644 index d4d845eb..00000000 --- a/src/misc/util/pathsearch.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/pathsearch.c,v - * rajeev - * 1.3 - * 1995/08/08 22:41:24 - * - */ -/* LINTLIBRARY */ - -#if HAVE_SYS_FILE_H -# include <sys/file.h> -#endif - -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif - -#include "util.h" - -/**Function******************************************************************** - - Synopsis [ Check that a given file is present and accessible ] - - SideEffects [none] -******************************************************************************/ -static int -check_file(filename, mode) -char *filename; -char *mode; -{ -#if defined(HAVE_SYS_STAT_H) - struct stat stat_rec; - int access_char = mode[0]; - int access_mode = R_OK; - - /* First check that the file is a regular file. */ - - if (stat(filename,&stat_rec) == 0 - && (stat_rec.st_mode&S_IFMT) == S_IFREG) { - if (access_char == 'w') { - access_mode = W_OK; - } else if (access_char == 'x') { - access_mode = X_OK; - } - return access(filename,access_mode) == 0; - } - return 0; - -#else - - FILE *fp; - int got_file; - - if (strcmp(mode, "x") == 0) { - mode = "r"; - } - fp = fopen(filename, mode); - got_file = (fp != 0); - if (fp != 0) { - (void) fclose(fp); - } - return got_file; - -#endif -} - -/**Function******************************************************************** - - Synopsis [ Search for a program in all possible paths ] - - SideEffects [none] - -******************************************************************************/ -char * -util_path_search(prog) -char *prog; -{ -#ifdef HAVE_GETENV - return util_file_search(prog, getenv("PATH"), "x"); -#else - return util_file_search(prog, NIL(char), "x"); -#endif -} - -char * -util_file_search(file, path, mode) -char *file; /* file we're looking for */ -char *path; /* search path, colon separated */ -char *mode; /* "r", "w", or "x" */ -{ - int quit; - char *buffer, *filename, *save_path, *cp; - - if (path == 0 || strcmp(path, "") == 0) { - path = "."; /* just look in the current directory */ - } - - save_path = path = util_strsav(path); - quit = 0; - do { - cp = strchr(path, ':'); - if (cp != 0) { - *cp = '\0'; - } else { - quit = 1; - } - - /* cons up the filename out of the path and file name */ - if (strcmp(path, ".") == 0) { - buffer = util_strsav(file); - } else { - buffer = ALLOC(char, strlen(path) + strlen(file) + 4); - (void) sprintf(buffer, "%s/%s", path, file); - } - filename = util_tilde_expand(buffer); - FREE(buffer); - - /* see if we can access it */ - if (check_file(filename, mode)) { - FREE(save_path); - return filename; - } - FREE(filename); - path = ++cp; - } while (! quit); - - FREE(save_path); - return 0; -} diff --git a/src/misc/util/safe_mem.c b/src/misc/util/safe_mem.c deleted file mode 100644 index 5a8a5de8..00000000 --- a/src/misc/util/safe_mem.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/safe_mem.c,v - * rajeev - * 1.3 - * 1995/08/08 22:41:29 - * - */ -/* LINTLIBRARY */ - -#include "util.h" - -/* - * These are interface routines to be placed between a program and the - * system memory allocator. - * - * It forces well-defined semantics for several 'borderline' cases: - * - * malloc() of a 0 size object is guaranteed to return something - * which is not 0, and can safely be freed (but not dereferenced) - * free() accepts (silently) an 0 pointer - * realloc of a 0 pointer is allowed, and is equiv. to malloc() - * For the IBM/PC it forces no object > 64K; note that the size argument - * to malloc/realloc is a 'long' to catch this condition - * - * The function pointer MMoutOfMemory() contains a vector to handle a - * 'out-of-memory' error (which, by default, points at a simple wrap-up - * and exit routine). - */ - -extern char *MMalloc(); -extern void MMout_of_memory(); -extern char *MMrealloc(); - - -void (*MMoutOfMemory)() = MMout_of_memory; - - -/* MMout_of_memory -- out of memory for lazy people, flush and exit */ -void -MMout_of_memory(size) -long size; -{ - (void) fflush(stdout); - (void) fprintf(stderr, "\nout of memory allocating %u bytes\n", - (unsigned) size); - assert( 0 ); - exit(1); -} - - -char * -MMalloc(size) -long size; -{ - char *p; - -#ifdef IBMPC - if (size > 65000L) { - if (MMoutOfMemory != (void (*)()) 0 ) (*MMoutOfMemory)(size); - return NIL(char); - } -#endif - if (size == 0) size = sizeof(long); - if ((p = (char *) malloc((unsigned) size)) == NIL(char)) { - if (MMoutOfMemory != (void (*)()) 0 ) (*MMoutOfMemory)(size); - return NIL(char); - } - return p; -} - - -char * -MMrealloc(obj, size) -char *obj; -long size; -{ - char *p; - -#ifdef IBMPC - if (size > 65000L) { - if (MMoutOfMemory != (void (*)()) 0 ) (*MMoutOfMemory)(size); - return NIL(char); - } -#endif - if (obj == NIL(char)) return MMalloc(size); - if (size <= 0) size = sizeof(long); - if ((p = (char *) realloc(obj, (unsigned) size)) == NIL(char)) { - if (MMoutOfMemory != (void (*)()) 0 ) (*MMoutOfMemory)(size); - return NIL(char); - } - return p; -} - - -void -MMfree(obj) -char *obj; -{ - if (obj != 0) { - free(obj); - } -} diff --git a/src/misc/util/strsav.c b/src/misc/util/strsav.c deleted file mode 100644 index 8da1f0c9..00000000 --- a/src/misc/util/strsav.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/strsav.c,v - * shiple - * 1.4 - * 1995/08/30 17:37:58 - * - */ -/* LINTLIBRARY */ - -#include <stdio.h> -#include "util.h" - - -/* - * util_strsav -- save a copy of a string - */ -char * -util_strsav(s) -char *s; -{ - if(s == NIL(char)) { /* added 7/95, for robustness */ - return s; - } - else { - return strcpy(ALLOC(char, strlen(s)+1), s); - } -} - -/* - * util_inttostr -- converts an integer into a string - */ -char * -util_inttostr(i) - int i; -{ - unsigned int mod, len; - char *s; - - if (i == 0) - len = 1; - else { - if (i < 0) { - len = 1; - mod = -i; - } - else { - len = 0; - mod = i; - } - len += (unsigned)floor(log10(mod)) + 1; - } - - s = ALLOC(char, len + 1); - sprintf(s, "%d", i); - - return s; -} - -/* - * util_strcat3 -- Creates a new string which is the concatenation of 3 - * strings. It is the responsibility of the caller to free this string - * using FREE. - */ -char * -util_strcat3( - char * str1, - char * str2, - char * str3) -{ - char *str = ALLOC(char, strlen(str1) + strlen(str2) + strlen(str3) + 1); - - (void) strcpy(str, str1); - (void) strcat(str, str2); - (void) strcat(str, str3); - - return (str); -} - -/* - * util_strcat4 -- Creates a new string which is the concatenation of 4 - * strings. It is the responsibility of the caller to free this string - * using FREE. - */ -char * -util_strcat4( - char * str1, - char * str2, - char * str3, - char * str4) -{ - char *str = ALLOC(char, strlen(str1) + strlen(str2) + strlen(str3) + - strlen(str4) + 1); - - (void) strcpy(str, str1); - (void) strcat(str, str2); - (void) strcat(str, str3); - (void) strcat(str, str4); - - return (str); -} - - -#if !HAVE_STRSTR -/**Function******************************************************************** - - Synopsis [required] - - Description [optional] - - SideEffects [required] - - SeeAlso [optional] - -******************************************************************************/ -char * -strstr( - const char * s, - const char * pat) -{ - int len; - - len = strlen(pat); - for (; *s != '\0'; ++s) - if (*s == *pat && memcmp(s, pat, len) == 0) { - return (char *)s; /* UGH */ - } - return NULL; -} -#endif /* !HAVE_STRSTR */ - -#if !HAVE_STRCHR -/**Function******************************************************************** - - Synopsis [required] - - Description [optional] - - SideEffects [required] - - SeeAlso [optional] - -******************************************************************************/ -char * -strchr(const char * s, - int c) -{ - for (; *s != '\0'; s++) { - if (*s == c) { - return (char *)s; - } - } - return NULL; - -} -#endif /* !HAVE_STRCHR */ diff --git a/src/misc/util/texpand.c b/src/misc/util/texpand.c deleted file mode 100644 index 37f71cbd..00000000 --- a/src/misc/util/texpand.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Revision Control Information - * - * /projects/hsis/CVS/utilities/util/texpand.c,v - * rajeev - * 1.3 - * 1995/08/08 22:41:36 - * - */ - -#include "util.h" - -#if HAVE_PWD_H -# include <pwd.h> -#endif - - -char * -util_tilde_expand(fname) -char *fname; -{ -#if HAVE_PWD_H - struct passwd *userRecord; - char username[256], *filename, *dir; - register int i, j; - - filename = ALLOC(char, strlen(fname) + 256); - - /* Clear the return string */ - i = 0; - filename[0] = '\0'; - - /* Tilde? */ - if (fname[0] == '~') { - j = 0; - i = 1; - while ((fname[i] != '\0') && (fname[i] != '/')) { - username[j++] = fname[i++]; - } - username[j] = '\0'; - dir = (char *)0; - if (username[0] == '\0') { - /* ~/ resolves to home directory of current user */ - userRecord = getpwuid(getuid()); - if (userRecord) dir = userRecord->pw_dir; - } else { - /* Special check for ~octtools */ - if (!strcmp(username,"octtools")) - dir = getenv("OCTTOOLS"); - /* ~user/ resolves to home directory of 'user' */ - if (!dir) { - userRecord = getpwnam(username); - if (userRecord) dir = userRecord->pw_dir; - } - } - if (dir) (void) strcat(filename, dir); - else i = 0; /* leave fname as-is */ - } /* if tilde */ - - /* Concantenate remaining portion of file name */ - (void) strcat(filename, fname + i); - return filename; -#else - return util_strsav(fname); -#endif -} diff --git a/src/misc/util/util.h b/src/misc/util/util.h deleted file mode 100644 index 0b147347..00000000 --- a/src/misc/util/util.h +++ /dev/null @@ -1,331 +0,0 @@ -/**CHeaderFile***************************************************************** - - FileName [ util.h ] - - PackageName [ util ] - - Synopsis [ Very low-level utilities ] - - Description [ Includes file access, pipes, forks, time, and temporary file - access. ] - - Author [ Stephen Edwards <sedwards@eecs.berkeley.edu> and many others] - - Copyright [Copyright (c) 1994-1996 The Regents of the Univ. of California. - All rights reserved. - - Permission is hereby granted, without written agreement and without license - or royalty fees, to use, copy, modify, and distribute this software and its - documentation for any purpose, provided that the above copyright notice and - the following two paragraphs appear in all copies of this software. - - IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF - CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN - "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE - MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.] - - Revision [$Id: util.h,v 1.11 1998/05/04 02:05:08 hsv Exp $] - -******************************************************************************/ - -#ifndef _UTIL -#define _UTIL - -//////////////////////////////////////////// -#include "leaks.h" -//////////////////////////////////////////// - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -//////////////// added by alanmi, November 22, 2001 //////////////// -//#include <ctype.h> -#include <time.h> -#include <signal.h> - -#ifndef SIGALRM -#define SIGALRM SIGINT -#endif - -#ifndef SIGSTOP -#define SIGSTOP SIGINT -#endif - -#ifndef SIGXCPU -#define SIGXCPU SIGINT -#endif - -#ifndef SIGUSR1 -#define SIGUSR1 SIGINT -#endif - -#ifndef SIGKILL -#define SIGKILL SIGINT -#endif - -#ifndef HUGE -#define HUGE HUGE_VAL -#endif - -#if defined(__STDC__) -#define SIGNAL_FN void -#endif - -#define alarm(n) ((void)0) -#define kill(a,b) ((void)0) - -#define random rand -#define srandom srand -//////////////////////////////////////////////////////////////////// - - -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif - -#if HAVE_VARARGS_H -/////////////////////////////////////// -#undef __STDC__ -# include <varargs.h> -#define __STDC__ 1 -////////////////// alanmi Feb 03, 2001 -#endif - -#ifndef STDC_HEADERS -#define STDC_HEADERS 1 -#endif - -#ifndef HAVE_STRCHR -#define HAVE_STRCHR 1 -#endif - -#ifndef HAVE_GETENV -#define HAVE_GETENV 1 -#endif - -#if STDC_HEADERS -//# include <stdlib.h> -# include <string.h> -#else -# ifdef HAVE_STRCHR -char * strchr(); -int strcmp(); -# else -# define strchr index -# endif -# ifdef HAVE_GETENV -char * getenv(); -# endif -#endif /* STDC_HEADERS */ - -#if HAVE_ERRNO_H -# include <errno.h> -#endif - -/* - * Ensure we have reasonable assert() and fail() functions - */ - -#ifndef HAVE_ASSERT_H -#define HAVE_ASSERT_H 1 -#endif - -#if HAVE_ASSERT_H -# include <assert.h> -#else -# ifdef NDEBUG -# define assert(ex) ; -# else -# define assert(ex) {\ - if (! (ex)) {\ - (void) fprintf(stderr,\ - "Assertion failed: file %s, line %d\n\"%s\"\n",\ - __FILE__, __LINE__, "ex");\ - (void) fflush(stdout);\ - abort();\ - }\ -} -# endif -#endif - -#define fail(why) {\ - (void) fprintf(stderr, "Fatal error: file %s, line %d\n%s\n",\ - __FILE__, __LINE__, why);\ - (void) fflush(stdout);\ - abort();\ -} - -/* - * Support for ANSI function prototypes in non-ANSI compilers - * - * Usage: - * extern int foo ARGS((char *, double)) - */ - -#ifndef ARGS -# ifdef __STDC__ -# define ARGS(args) args -# else -# define ARGS(args) () -# endif -#endif - -#ifndef NULLARGS -# ifdef __STDC__ -# define NULLARGS (void) -# else -# define NULLARGS () -# endif -#endif - -/* - * A little support for C++ compilers - */ - -#ifdef __cplusplus -# define EXTERN extern "C" -#else -# define EXTERN extern -#endif - -/* - * Support to define unused varibles - */ -#if (__GNUC__ >2 || __GNUC_MINOR__ >=7) && !defined(UNUSED) -#define UNUSED __attribute__ ((unused)) -#else -#define UNUSED -#endif - -/* - * A neater way to define zero pointers - * - * Usage: - * int * fred; - * fred = NIL(int); - */ - -#define NIL(type) ((type *) 0) - -/* - * Left over from SIS and Octtools: - */ - -//#define USE_MM -// uncommented this line, -// because to detect memory leaks, we need to work with malloc(), etc directly -#define USE_MM - - - -#ifdef USE_MM -/* - * assumes the memory manager is libmm.a (a deprecated (?) Octtools library) - * - allows malloc(0) or realloc(obj, 0) - * - catches out of memory (and calls MMout_of_memory()) - * - catch free(0) and realloc(0, size) in the macros - */ -# define ALLOC(type, num) \ - ((type *) malloc(sizeof(type) * (num))) -# define REALLOC(type, obj, num) \ - (obj) ? ((type *) realloc((char *) obj, sizeof(type) * (num))) : \ - ((type *) malloc(sizeof(type) * (num))) -# define FREE(obj) \ - ((obj) ? (free((char *) (obj)), (obj) = 0) : 0) -#else -/* - * enforce strict semantics on the memory allocator - */ -# define ALLOC(type, num) \ - ((type *) MMalloc((long) sizeof(type) * (long) (num))) -# define REALLOC(type, obj, num) \ - ((type *) MMrealloc((char *) (obj), (long) sizeof(type) * (long) (num))) -# define FREE(obj) \ - ((obj) ? (free((void *) (obj)), (obj) = 0) : 0) -EXTERN void MMout_of_memory ARGS((long)); -EXTERN char *MMalloc ARGS((long)); -EXTERN char *MMrealloc ARGS((char *, long)); -EXTERN void MMfree ARGS((char *)); -#endif - -#ifndef TRUE -# define TRUE 1 -#endif - -#ifndef FALSE -# define FALSE 0 -#endif - -#ifndef ABS -# define ABS(a) ((a) < 0 ? -(a) : (a)) -#endif - -#ifndef MAX -# define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#define ptime() util_cpu_time() -#define print_time(t) util_print_time(t) - -#ifndef HUGE_VAL -# ifndef HUGE -# define HUGE 8.9884656743115790e+307 -# endif -# define HUGE_VAL HUGE -#endif - -#ifndef MAXINT -# define MAXINT (1 << 30) -#endif - -EXTERN void util_print_cpu_stats ARGS((FILE *)); -EXTERN long util_cpu_time ARGS((void)); -EXTERN void util_getopt_reset ARGS((void)); -EXTERN int util_getopt ARGS((int, char **, char *)); -EXTERN char *util_path_search ARGS((char *)); -EXTERN char *util_file_search ARGS((char *, char *, char *)); -EXTERN char *util_print_time ARGS((long)); -EXTERN int util_save_image ARGS((char *, char *)); -EXTERN char *util_strsav ARGS((char *)); -EXTERN char *util_inttostr ARGS((int)); -EXTERN char *util_strcat3 ARGS((char *, char *, char *)); -EXTERN char *util_strcat4 ARGS((char *, char *, char *, char *)); -EXTERN int util_do_nothing ARGS((void)); -EXTERN char *util_tilde_expand ARGS((char *)); -EXTERN char *util_tempnam ARGS((char *, char *)); -EXTERN FILE *util_tmpfile ARGS((void)); -EXTERN void util_srandom ARGS((long)); -EXTERN long util_random ARGS(()); -EXTERN int getSoftDataLimit ARGS(()); - -/* - * Global variables for util_getopt() - */ - -extern int util_optind; -extern char *util_optarg; - -/**AutomaticStart*************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* Function prototypes */ -/*---------------------------------------------------------------------------*/ - -/**AutomaticEnd***************************************************************/ - -#endif /* _UTIL */ diff --git a/src/misc/util/util_hack.h b/src/misc/util/util_hack.h new file mode 100644 index 00000000..71c77321 --- /dev/null +++ b/src/misc/util/util_hack.h @@ -0,0 +1,95 @@ +/**CFile**************************************************************** + + FileName [util_hack.h] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [This file is used to simulate the presence of "util.h".] + + Synopsis [External declarations.] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - June 20, 2005.] + + Revision [$Id: util_hack.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#ifndef __UTIL_HACK_H__ +#define __UTIL_HACK_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <assert.h> +#include <time.h> +#include <math.h> + +#define EXTERN extern +#define NIL(type) ((type *) 0) +#define random rand +#define srandom srand + +#define util_cpu_time Extra_CpuTime +#define getSoftDataLimit Extra_GetSoftDataLimit +#define util_getopt_reset Extra_UtilGetoptReset +#define util_getopt Extra_UtilGetopt +#define util_print_time Extra_UtilPrintTime +#define util_strsav Extra_UtilStrsav +#define util_tilde_expand Extra_UtilTildeExpand +#define util_file_search Extra_UtilFileSearch +#define MMoutOfMemory Extra_UtilMMoutOfMemory + +#define util_optarg globalUtilOptarg +#define util_optind globalUtilOptind + +#ifndef ARGS +# ifdef __STDC__ +# define ARGS(args) args +# else +# define ARGS(args) () +# endif +#endif + +#ifndef ABS +# define ABS(a) ((a) < 0 ? -(a) : (a)) +#endif + +#ifndef MAX +# define MAX(a,b) ((a) > (b) ? (a) : (b)) +#endif + +#ifndef MIN +# define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif + +#define ALLOC(type, num) ((type *) malloc(sizeof(type) * (num))) +#define FREE(obj) ((obj) ? (free((char *) (obj)), (obj) = 0) : 0) +#define REALLOC(type, obj, num) \ + ((obj) ? ((type *) realloc((char *)(obj), sizeof(type) * (num))) : \ + ((type *) malloc(sizeof(type) * (num)))) + +extern long Extra_CpuTime(); +extern int Extra_GetSoftDataLimit(); +extern void Extra_UtilGetoptReset(); +extern int Extra_UtilGetopt( int argc, char *argv[], char *optstring ); +extern char * Extra_UtilPrintTime( long t ); +extern char * Extra_UtilStrsav( char *s ); +extern char * Extra_UtilTildeExpand( char *fname ); +extern char * Extra_UtilFileSearch( char *file, char *path, char *mode ); + +extern char * globalUtilOptarg; +extern int globalUtilOptind; + +#ifdef __cplusplus +} +#endif + +#endif |