|
|
1.1 root 1: /*
2:
3: Copyright 1990,1991,1992 Eric R. Smith. All rights reserved.
4:
5: */
6:
7:
8:
9: #ifndef _mem_h
10:
11: #define _mem_h
12:
13:
14:
15: typedef struct memregion {
16:
17: long loc; /* base of memory region */
18:
19: ulong len; /* length of memory region */
20:
21: ushort links; /* number of users of region */
22:
23: ushort mflags; /* e.g. which map this came from */
24:
25: struct memregion *next; /* next region in memory map */
26:
27: } MEMREGION;
28:
29:
30:
31: /* dummy type for virtual addresses */
32:
33: typedef struct vaddr {
34:
35: char dummy;
36:
37: } *virtaddr;
38:
39:
40:
41: /* flags for memory regions */
42:
43: #define M_CORE 0x01 /* region came from core map */
44:
45: #define M_ALT 0x02 /* region came from alt map */
46:
47: #define M_SWAP 0x04 /* region came from swap map */
48:
49: #define M_KER 0x08 /* region came from kernel map */
50:
51: #define M_MAP 0x0f /* and with this to pick out map */
52:
53:
54:
55: #define M_KEEP 0x0100 /* don't free on process termination */
56:
57:
58:
59: /* flags for curproc->memflags */
60:
61: #define F_FASTLOAD 0x01 /* don't zero heap */
62:
63: #define F_ALTLOAD 0x02 /* OK to load in alternate ram */
64:
65: #define F_ALTALLOC 0x04 /* OK to malloc from alt. ram */
66:
67:
68:
69: /* flags for Malloc/Mxalloc */
70:
71: #define F_KEEP 0x4000 /* don't free memory on termination */
72:
73:
74:
75: typedef MEMREGION **MMAP;
76:
77: extern MMAP core, alt, ker, swap;
78:
79:
80:
81: /* compilers differ on what "sizeof" returns */
82:
83: #define SIZEOF (long)sizeof
84:
85:
86:
87: /* MiNT leaves this much memory for TOS to use
88:
89: */
90:
91: #define TOS_MEM (8*1024L)
92:
93:
94:
95: /* MiNT tries to keep this much memory available for the kernel and other
96:
97: * programs when a program is launched
98:
99: */
100:
101: #define KEEP_MEM (8*1024L)
102:
103:
104:
105: /*
106:
107: * how much memory should be allocated to the kernel?
108:
109: */
110:
111: #define KERNEL_MEM (24*1024L)
112:
113:
114:
115: /* macro for rounding off region sizes */
116:
117: #define MASKBITS 0xf
118:
119: #define ROUND(size) ((size + MASKBITS) & ~MASKBITS)
120:
121:
122:
123: #endif /* _mem_h */
124:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.