Home | History | Annotate | Line # | Download | only in warp
      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.8    rillig  *
      7  1.1     kamil  */
      8  1.1     kamil 
      9  1.1     kamil #define RANDRAND 1152921504606846976.0 /* that's 2**60 */
     10  1.1     kamil #define HALFRAND 0x40000000 /* that's 2**30 */
     11  1.5  christos #define myrand() (int)random()
     12  1.1     kamil #define rand_mod(m) ((myrand() / 37) % (m)) /* pick number in 0..m-1 */
     13  1.1     kamil /*
     14  1.1     kamil  * The reason for the /37 above is that our random number generator yields
     15  1.1     kamil  * successive evens and odds, for some reason.  This makes strange star maps.
     16  1.1     kamil  */
     17  1.1     kamil 
     18  1.1     kamil     /* we get fractions of seconds from calling ftime on timebuf */
     19  1.1     kamil 
     20  1.6     joerg extern struct timespec timebuf;
     21  1.7       rin #define roundsleep(x) (clock_gettime(CLOCK_REALTIME, &timebuf),sleep(timebuf.tv_nsec > (500 * 1000 * 1000) ?x+1:x))
     22  1.1     kamil 
     23  1.3     kamil #define waiting 0
     24  1.1     kamil 
     25  1.1     kamil #ifdef NOTDEF
     26  1.1     kamil EXT int len_last_line_got INIT(0);
     27  1.1     kamil 			/* strlen of some_buf after */
     28  1.1     kamil 			/*  some_buf = get_a_line(bufptr,buffersize,fp) */
     29  1.1     kamil #endif
     30  1.1     kamil 
     31  1.1     kamil #ifdef NOTDEF
     32  1.1     kamil /* is the string for makedir a directory name or a filename? */
     33  1.1     kamil 
     34  1.1     kamil #define MD_DIR 0
     35  1.1     kamil #define MD_FILE 1
     36  1.1     kamil #endif
     37  1.1     kamil 
     38  1.4  christos void util_init(void);
     39  1.4  christos void movc3(int, char *, char *);
     40  1.6     joerg __dead void no_can_do(const char *);
     41  1.4  christos int exdis(int);
     42  1.4  christos void *safemalloc(size_t size);
     43  1.4  christos char *safecpy(char *, const char *, size_t);
     44  1.4  christos char *cpytill(char *, const char *, int);
     45  1.4  christos char *instr(const char *, const char *);
     46  1.1     kamil #ifdef SETUIDGID
     47  1.4  christos int eaccess(const char *, mode_t);
     48  1.1     kamil #endif
     49  1.6     joerg __dead void prexit(const char *);
     50  1.4  christos char *savestr(const char *);
     51  1.4  christos char *getval(const char *, const char *);
     52