Home | History | Annotate | Line # | Download | only in warp
util.h revision 1.4
      1  1.2     kamil /* Header: util.h,v 7.0 86/10/08 15:14:37 lwall Exp */
      2  1.1     kamil 
      3  1.2     kamil /* Log:	util.h,v
      4  1.1     kamil  * Revision 7.0  86/10/08  15:14:37  lwall
      5  1.1     kamil  * Split into separate files.  Added amoebas and pirates.
      6  1.1     kamil  *
      7  1.1     kamil  */
      8  1.1     kamil 
      9  1.1     kamil #if RANDBITS < 15 || defined(lint)
     10  1.1     kamil #define rand_mod(m) getpid()
     11  1.1     kamil #define RANDRAND 0.0
     12  1.1     kamil #define HALFRAND 0
     13  1.1     kamil #define myrand() getpid()
     14  1.1     kamil #else
     15  1.1     kamil #if RANDBITS == 15	/* 15 bits of rand()? */
     16  1.1     kamil #define RANDRAND 268435456.0 /* that's 2**28 */
     17  1.1     kamil #define HALFRAND 0x4000 /* that's 2**14 */
     18  1.4  christos int rand(void);
     19  1.1     kamil #define myrand() (rand()&32767)
     20  1.1     kamil #define rand_mod(m) ((int)((double)myrand() / 32768.0 * ((double)(m))))
     21  1.1     kamil /* pick number in 0..m-1 */
     22  1.1     kamil 
     23  1.1     kamil #else
     24  1.1     kamil 
     25  1.1     kamil #if RANDBITS < 31	/* 16 bits of rand()? */
     26  1.1     kamil #define RANDRAND 1073741824.0 /* that's 2**30 */
     27  1.1     kamil #define HALFRAND 0x8000 /* that's 2**15 */
     28  1.1     kamil unsigned rand();
     29  1.1     kamil #define myrand() (rand()&65535)
     30  1.1     kamil #define rand_mod(m) ((int)((double)myrand() / 65536.0 * ((double)(m))))
     31  1.1     kamil /* pick number in 0..m-1 */
     32  1.1     kamil 
     33  1.1     kamil #else		/* assume 31 bits */
     34  1.1     kamil #define RANDRAND 1152921504606846976.0 /* that's 2**60 */
     35  1.1     kamil #define HALFRAND 0x40000000 /* that's 2**30 */
     36  1.1     kamil long rand();
     37  1.1     kamil #define myrand() rand()
     38  1.1     kamil #define rand_mod(m) ((myrand() / 37) % (m)) /* pick number in 0..m-1 */
     39  1.1     kamil /*
     40  1.1     kamil  * The reason for the /37 above is that our random number generator yields
     41  1.1     kamil  * successive evens and odds, for some reason.  This makes strange star maps.
     42  1.1     kamil  */
     43  1.1     kamil #endif
     44  1.1     kamil #endif
     45  1.1     kamil #endif
     46  1.1     kamil 
     47  1.1     kamil 
     48  1.1     kamil     /* we get fractions of seconds from calling ftime on timebuf */
     49  1.1     kamil 
     50  1.1     kamil EXT struct timeb timebuf;
     51  1.1     kamil #define roundsleep(x) (ftime(&timebuf),sleep(timebuf.millitm > 500?x+1:x))
     52  1.1     kamil 
     53  1.3     kamil #define waiting 0
     54  1.1     kamil 
     55  1.1     kamil #ifdef NOTDEF
     56  1.1     kamil EXT int len_last_line_got INIT(0);
     57  1.1     kamil 			/* strlen of some_buf after */
     58  1.1     kamil 			/*  some_buf = get_a_line(bufptr,buffersize,fp) */
     59  1.1     kamil #endif
     60  1.1     kamil 
     61  1.1     kamil #ifdef NOTDEF
     62  1.1     kamil /* is the string for makedir a directory name or a filename? */
     63  1.1     kamil 
     64  1.1     kamil #define MD_DIR 0
     65  1.1     kamil #define MD_FILE 1
     66  1.1     kamil #endif
     67  1.1     kamil 
     68  1.4  christos void util_init(void);
     69  1.4  christos void movc3(int, char *, char *);
     70  1.4  christos void no_can_do(const char *);
     71  1.4  christos int exdis(int);
     72  1.4  christos void *safemalloc(size_t size);
     73  1.4  christos char *safecpy(char *, const char *, size_t);
     74  1.4  christos char *cpytill(char *, const char *, int);
     75  1.4  christos char *instr(const char *, const char *);
     76  1.1     kamil #ifdef SETUIDGID
     77  1.4  christos int eaccess(const char *, mode_t);
     78  1.1     kamil #endif
     79  1.4  christos void prexit(const char *);
     80  1.4  christos char *savestr(const char *);
     81  1.4  christos char *getval(const char *, const char *);
     82