|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 3.0
3: * Copyright (c) 1982, 1990 by Mark Williams Company.
4: * All rights reserved. May not be copied without permission.
5: -lgl) */
6: /*
7: * Allocator.
8: */
9: #ifndef __SYS_ALLOC_H__
10: #define __SYS_ALLOC_H__
11:
12: /*
13: * Structure for allocator.
14: */
15: typedef struct all {
16: union all_u {
17: char *au_link;
18: char au_free[2];
19: } a_union;
20: char a_data[];
21: } ALL;
22:
23: /*
24: * Macros to transparently access allocator union.
25: */
26: #define a_link a_union.au_link
27: #define a_free a_union.au_free
28:
29: #if 0
30: /*
31: * Portable defines for the allocator.
32: */
33: #define align(p) ((ALL *)NULL + ((p) - (ALL *)NULL))
34: #define link(p) (align((p)->a_link))
35: #define tstfree(p) ((p)->a_link == (char *) link(p))
36: #define setfree(p) ((p)->a_link = (char *) link(p))
37: #define setused(p) ((p)->a_link = (char *) link(p) + 1)
38:
39: #endif
40:
41: #ifdef KERNEL
42: /*
43: * Functions and externals.
44: */
45: extern char *alloc();
46: extern ALL *setarena();
47:
48: #endif
49:
50: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.