1 /* 2 * Copyright (c) 1988 Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms are permitted 6 * provided that the above copyright notice and this paragraph are 7 * duplicated in all such forms and that any documentation, 8 * advertising materials, and other materials related to such 9 * distribution and use acknowledge that the software was developed 10 * by the University of California, Berkeley. The name of the 11 * University may not be used to endorse or promote products derived 12 * from this software without specific prior written permission. 13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 16 * 17 * @(#)useful.h 4.4 (Berkeley) 06/29/88 18 */ 19 20 # ifndef makedev 21 # include <sys/types.h> 22 # endif 23 24 /* support for bool type */ 25 typedef char bool; 26 # define TRUE 1 27 # define FALSE 0 28 29 # ifndef NULL 30 # define NULL 0 31 # endif NULL 32 33 /* bit hacking */ 34 # define bitset(bit, word) (((word) & (bit)) != 0) 35 36 /* some simple functions */ 37 # ifndef max 38 # define max(a, b) ((a) > (b) ? (a) : (b)) 39 # define min(a, b) ((a) < (b) ? (a) : (b)) 40 # endif max 41 42 /* assertions */ 43 # ifndef NASSERT 44 # define ASSERT(expr, msg, parm)\ 45 if (!(expr))\ 46 {\ 47 fprintf(stderr, "assertion botch: %s:%d: ", __FILE__, __LINE__);\ 48 fprintf(stderr, msg, parm);\ 49 } 50 # else NASSERT 51 # define ASSERT(expr, msg, parm) 52 # endif NASSERT 53 54 /* sccs id's */ 55 # ifndef lint 56 # define SCCSID(arg) static char SccsId[] = "arg"; 57 # else lint 58 # define SCCSID(arg) 59 # endif lint 60 61 /* define the types of some common functions */ 62 extern char *strcpy(), *strncpy(); 63 extern char *strcat(), *strncat(); 64 extern char *malloc(); 65 extern char *index(), *rindex(); 66 extern int errno; 67 extern time_t time(); 68 extern char *ctime(); 69 # ifndef V6 70 extern char *getenv(); 71 # endif V6 72 # ifndef VMUNIX 73 typedef unsigned short u_short; 74 typedef long u_long; 75 typedef char u_char; 76 typedef int void; 77 # endif VMUNIX 78