re-enable munmap().
[minix.git] / commands / aal / object.h
blob92bc4b1cc4787b448ba1bb0b59cb49150cc975e8
1 /* $Header$ */
2 /*
3 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
4 * See the copyright notice in the ACK home directory, in the file "Copyright".
5 */
6 #include "byte_order.h"
7 #include <local.h>
8 #include <stdio.h>
10 #if CHAR_UNSIGNED
11 #define Xchar(ch) (ch)
12 #else
13 #define Xchar(ch) ((ch) & 0377)
14 #endif
16 #if ! defined(BYTES_REVERSED)
17 #define BYTES_REVERSED 1
18 #endif
20 #if ! defined(WORDS_REVERSED)
21 #define WORDS_REVERSED 1
22 #endif
24 #if BYTES_REVERSED
25 #define uget2(c) (Xchar((c)[0]) | ((unsigned) Xchar((c)[1]) << 8))
26 #define Xput2(i, c) (((c)[0] = (i)), ((c)[1] = (i) >> 8))
27 #define put2(i, c) { register int j = (i); Xput2(j, c); }
28 #else
29 #define uget2(c) (* ((unsigned short *) (c)))
30 #define Xput2(i, c) (* ((short *) (c)) = (i))
31 #define put2(i, c) Xput2(i, c)
32 #endif
34 #define get2(c) ((short) uget2(c))
36 #if WORDS_REVERSED || BYTES_REVERSED
37 #define get4(c) (uget2(c) | ((long) uget2((c)+2) << 16))
38 #define put4(l, c) { register long x=(l); \
39 Xput2((int)x,c); \
40 Xput2((int)(x>>16),(c)+2); \
42 #else
43 #define get4(c) (* ((long *) (c)))
44 #define put4(l, c) (* ((long *) (c)) = (l))
45 #endif
47 #define SECTCNT 3 /* number of sections with own output buffer */
48 #if BIGMACHINE
49 #define WBUFSIZ (8*BUFSIZ)
50 #else
51 #define WBUFSIZ BUFSIZ
52 #endif
54 struct fil {
55 int cnt;
56 char *pnow;
57 char *pbegin;
58 long currpos;
59 int fd;
60 char pbuf[WBUFSIZ];
63 extern struct fil __parts[];
65 #define PARTEMIT 0
66 #define PARTRELO (PARTEMIT+SECTCNT)
67 #define PARTNAME (PARTRELO+1)
68 #define PARTCHAR (PARTNAME+1)
69 #ifdef SYMDBUG
70 #define PARTDBUG (PARTCHAR+1)
71 #else
72 #define PARTDBUG (PARTCHAR+0)
73 #endif
74 #define NPARTS (PARTDBUG + 1)
76 #define getsect(s) (PARTEMIT+((s)>=(SECTCNT-1)?(SECTCNT-1):(s)))