util.h revision 1.8 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