diff options
Diffstat (limited to 'nx-X11/lib/Xbsd/Berklib.c')
-rw-r--r-- | nx-X11/lib/Xbsd/Berklib.c | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/nx-X11/lib/Xbsd/Berklib.c b/nx-X11/lib/Xbsd/Berklib.c deleted file mode 100644 index 0e36c2e61..000000000 --- a/nx-X11/lib/Xbsd/Berklib.c +++ /dev/null @@ -1,331 +0,0 @@ -/* $Xorg: Berklib.c,v 1.4 2001/02/09 02:03:48 xorgcvs Exp $ */ -/* - -Copyright 1987, 1998 The Open Group - -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. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. - -*/ -/* $XFree86: xc/lib/Xbsd/Berklib.c,v 3.8 2001/07/25 15:04:49 dawes Exp $ */ - - -/* - * These are routines found in BSD but not on all other systems. The core - * MIT distribution does not use them except for ffs in the server, unless - * the system is seriously deficient. You should enable only the ones that - * you need for your system. Use Xfuncs.h in clients to avoid using the - * slow versions of bcopy, bcmp, and bzero provided here. - */ - -#include <sys/types.h> - -#ifdef hpux -#define WANT_RANDOM -#define WANT_QUE -#endif - -#ifdef macII -/* silly bcopy in A/UX does not handle overlaps */ -#define WANT_BFUNCS -#define WANT_MEMMOVE -#define NO_BZERO -#define WANT_RANDOM -#endif - -#if defined(SVR4) && !defined(__UNIXWARE__) -#define WANT_BFUNCS -#define WANT_FFS -#define WANT_RANDOM -#endif - -#ifdef hcx -#define WANT_FFS -#endif - -#ifdef SYSV -#ifdef i386 -#if !defined(__SCO__) && !defined(__UNIXWARE__) -#define WANT_FFS -#define WANT_MEMMOVE -#endif -#endif -#endif - -#ifdef _SEQUENT_ -#define WANT_GTOD -#define WANT_FFS -#endif /* _SEQUENT_ */ - -/* you should use Xfuncs.h in code instead of relying on Berklib */ -#ifdef WANT_BFUNCS - -#include <X11/Xosdefs.h> - -#if (__STDC__) || defined(SVR4) || defined(hpux) - -#include <string.h> - -void bcopy (b1, b2, length) - register char *b1, *b2; - register int length; -{ - memmove(b2, b1, (size_t)length); -} - -int bcmp (b1, b2, length) - register char *b1, *b2; - register int length; -{ - return memcmp(b1, b2, (size_t)length); -} - -void bzero (b, length) - register char *b; - register int length; -{ - memset(b, 0, (size_t)length); -} - -#else - -void bcopy (b1, b2, length) - register char *b1, *b2; - register int length; -{ - if (b1 < b2) { - b2 += length; - b1 += length; - while (length--) - *--b2 = *--b1; - } else { - while (length--) - *b2++ = *b1++; - } -} - -#if defined(SYSV) - -#include <memory.h> - -int bcmp (b1, b2, length) - register char *b1, *b2; - register int length; -{ - return memcmp(b1, b2, length); -} - -#ifndef NO_BZERO - -bzero (b, length) - register char *b; - register int length; -{ - memset(b, 0, length); -} - -#endif - -#else - -int bcmp (b1, b2, length) - register char *b1, *b2; - register int length; -{ - while (length--) { - if (*b1++ != *b2++) return 1; - } - return 0; -} - -void bzero (b, length) - register char *b; - register int length; -{ - while (length--) - *b++ = '\0'; -} - -#endif -#endif -#endif /* WANT_BFUNCS */ - -#ifdef WANT_MEMMOVE -char *memmove (b1, b2, length) - register char *b1, *b2; - register int length; -{ - char *sb1 = b1; - - if (b2 < b1) { - b1 += length; - b2 += length; - while (length--) - *--b1 = *--b2; - } else { - while (length--) - *b1++ = *b2++; - } - return sb1; -} -#endif - -#ifdef WANT_FFS -int -ffs(mask) -unsigned int mask; -{ - register i; - - if ( ! mask ) return 0; - i = 1; - while (! (mask & 1)) { - i++; - mask = mask >> 1; - } - return i; -} -#endif - -#ifdef WANT_RANDOM -#if defined(SYSV) || defined(SVR4) || defined(hpux) - -long lrand48(); - -long random() -{ - return (lrand48()); -} - -void srandom(seed) - int seed; -{ - srand48(seed); -} - -#else - -long random() -{ - return (rand()); -} - -void srandom(seed) - int seed; -{ - srand(seed); -} - -#endif -#endif /* WANT_RANDOM */ - -/* - * insque, remque - insert/remove element from a queue - * - * DESCRIPTION - * Insque and remque manipulate queues built from doubly linked - * lists. Each element in the queue must in the form of - * ``struct qelem''. Insque inserts elem in a queue immedi- - * ately after pred; remque removes an entry elem from a queue. - * - * SEE ALSO - * ``VAX Architecture Handbook'', pp. 228-235. - */ - -#ifdef WANT_QUE -struct qelem { - struct qelem *q_forw; - struct qelem *q_back; - char *q_data; - }; - -insque(elem, pred) -register struct qelem *elem, *pred; -{ - register struct qelem *q; - /* Insert locking code here */ - if ( elem->q_forw = q = (pred ? pred->q_forw : pred) ) - q->q_back = elem; - if ( elem->q_back = pred ) - pred->q_forw = elem; - /* Insert unlocking code here */ -} - -remque(elem) -register struct qelem *elem; -{ - register struct qelem *q; - if ( ! elem ) return; - /* Insert locking code here */ - - if ( q = elem->q_back ) q->q_forw = elem->q_forw; - if ( q = elem->q_forw ) q->q_back = elem->q_back; - - /* insert unlocking code here */ -} -#endif /* WANT_QUE */ - -/* - * gettimeofday emulation - * Caution -- emulation is incomplete - * - has only second, not microsecond, resolution. - * - does not return timezone info. - */ - -#ifdef WANT_GTOD - -#ifdef _SEQUENT_ -#include <X11/Xos.h> -#endif /* _SEQUENT_ */ - -int gettimeofday (tvp, tzp) - struct timeval *tvp; - struct timezone *tzp; -{ -#ifdef _SEQUENT_ - /* - * Sequent has microsecond resolution. Need to link with -lseq - */ - get_process_stats (tvp, -1, NULL, NULL); -#ifndef SVR4 - if (tzp) - { - tzset (); - tzp->tz_minuteswest = timezone / 60; - tzp->tz_dsttime = daylight; - } -#endif /* SVR4 */ - return (0); -#else /* _SEQUENT_ */ - time (&tvp->tv_sec); - tvp->tv_usec = 0L; - -#ifndef SVR4 - if (tzp) { - fprintf( stderr, - "Warning: gettimeofday() emulation does not return timezone\n" - ); - } -#endif /* SVR4 */ -#endif /* _SEQUENT_ */ -} -#endif /* WANT_GTOD */ |