1: /*
2: * Copyright (c) 1986 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)map.h 1.1 (2.10BSD Berkeley) 12/1/86
7: */
8:
9: /*
10: * Resource Allocation Maps.
11: *
12: * Associated routines manage allocation of an address space using
13: * an array of segment descriptors.
14: *
15: * Malloc and mfree allocate and free the resource described
16: * by the resource map. If the resource map becomes too fragmented
17: * to be described in the available space, then some of the resource
18: * is discarded. This may lead to critical shortages,
19: * but is better than not checking (as the previous versions of
20: * these routines did) or giving up and calling panic().
21: *
22: * N.B.: The address 0 in the resource address space is not available
23: * as it is used internally by the resource map routines.
24: */
25:
26: struct map {
27: struct mapent *m_map; /* start of the map */
28: struct mapent *m_limit; /* address of last slot in map */
29: char *m_name; /* name of resource */
30: /* we use m_name when the map overflows, in warning messages */
31: };
32:
33: struct mapent {
34: size_t m_size; /* size of this segment of the map */
35: memaddr m_addr; /* resource-space addr of start of segment */
36: };
37:
38: #ifdef KERNEL
39: extern struct map coremap[1]; /* space for core allocation */
40: extern struct map swapmap[1]; /* space for swap allocation */
41: extern struct map ub_map[1]; /* space for UNIBUS allocation */
42: #endif
Defined struct's
map
defined in line
26; used 32 times
mapent
defined in line
33; used 36 times
Usage of this include