diff options
Diffstat (limited to 'xc/test/xsuite/xtest/src/libproto/Utils.c')
-rw-r--r-- | xc/test/xsuite/xtest/src/libproto/Utils.c | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/xc/test/xsuite/xtest/src/libproto/Utils.c b/xc/test/xsuite/xtest/src/libproto/Utils.c new file mode 100644 index 000000000..c88d8d8a4 --- /dev/null +++ b/xc/test/xsuite/xtest/src/libproto/Utils.c @@ -0,0 +1,149 @@ +/* + * Copyright 1990, 1991 by the Massachusetts Institute of Technology and + * UniSoft Group Limited. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the names of MIT and UniSoft not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. MIT and UniSoft + * make no representations about the suitability of this software for any + * purpose. It is provided "as is" without express or implied warranty. + * + * $XConsortium$ + */ +/* + * *************************************************************************** + * Copyright 1988 by Sequent Computer Systems, Inc., Portland, Oregon * + * * + * * + * All Rights Reserved * + * * + * Permission to use, copy, modify, and distribute this software and its * + * documentation for any purpose and without fee is hereby granted, * + * provided that the above copyright notice appears in all copies and that * + * both that copyright notice and this permission notice appear in * + * supporting documentation, and that the name of Sequent not be used * + * in advertising or publicity pertaining to distribution or use of the * + * software without specific, written prior permission. * + * * + * SEQUENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING * + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL * + * SEQUENT BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * + * SOFTWARE. * + * *************************************************************************** + */ + +/* + * $Header: Utils.c 1.4 89/04/17 $ + */ + +#ifndef lint +static char rcsid[]="$Header: Utils.c 1.4 89/04/17 $"; +#endif + +/* UNIX/DYNIX library for X Server tests. + * + * Contains routines useful for isolating operating system dependencies. + * DYNIX routines should be identical to UNIX in general. VMS or other + * operating systems will need an equivalent library. + * + */ + +#include "XstlibInt.h" +#include <signal.h> + +char * asctime(); + + +/* + * Return a character string with the current date and time. + */ + +char * +Get_Date() +{ + struct tm *tp; + struct tm *localtime(); + time_t tim; + static char buf[26]; + + tim = time(0); + tp = localtime(&tim); + (void) strcpy(buf, asctime(tp)); + buf[24] = '\0'; + return(buf); +} + + +/* + * These are routines found in BSD and not found in SYSV. + */ + +void +bcopy (b1, b2, length) +register unsigned char *b1, *b2; +register length; +{ + if (b1 < b2) { + b2 += length; + b1 += length; + while (length--) { + *--b2 = *--b1; + } + } + else { + while (length--) { + *b2++ = *b1++; + } + } +} + +bcmp (b1, b2, length) +register unsigned char *b1, *b2; +register length; +{ + while (length--) { + if (*b1++ != *b2++) return 1; + } + return 0; +} + +void +bzero (b, length) +register unsigned char *b; +register length; +{ + while (length--) { + *b++ = '\0'; + } +} + +/* Find the first set bit + * i.e. least signifigant 1 bit: + * 0 => 0 + * 1 => 1 + * 2 => 2 + * 3 => 1 + * 4 => 3 + */ + +int +ffs(mask) +unsigned int mask; +{ + register i; + + if ( ! mask ) return 0; + i = 1; + while (! (mask & 1)) { + i++; + mask = mask >> 1; + } + return i; +} |