home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / mint / mint095s / mem.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-03  |  1.7 KB  |  63 lines

  1. /*
  2. Copyright 1990,1991,1992 Eric R. Smith. All rights reserved.
  3. */
  4.  
  5. #ifndef _mem_h
  6. #define _mem_h
  7.  
  8. typedef struct memregion {
  9.     long    loc;        /* base of memory region */
  10.     ulong    len;        /* length of memory region */
  11.     ushort    links;        /* number of users of region */
  12.     ushort    mflags;        /* e.g. which map this came from */
  13.     struct memregion *next; /* next region in memory map */
  14. } MEMREGION;
  15.  
  16. /* dummy type for virtual addresses */
  17. typedef struct vaddr {
  18.     char dummy;
  19. } *virtaddr;
  20.  
  21. /* flags for memory regions */
  22. #define M_CORE        0x01        /* region came from core map */
  23. #define M_ALT        0x02        /* region came from alt map */
  24. #define M_SWAP        0x04        /* region came from swap map */
  25. #define M_KER        0x08        /* region came from kernel map */
  26. #define M_MAP        0x0f        /* and with this to pick out map */
  27.  
  28. #define M_KEEP        0x0100        /* don't free on process termination */
  29.  
  30. /* flags for curproc->memflags */
  31. #define F_FASTLOAD    0x01        /* don't zero heap */
  32. #define F_ALTLOAD    0x02        /* OK to load in alternate ram */
  33. #define F_ALTALLOC    0x04        /* OK to malloc from alt. ram */
  34.  
  35. /* flags for Malloc/Mxalloc */
  36. #define F_KEEP        0x4000        /* don't free memory on termination */
  37.  
  38. typedef MEMREGION **MMAP;
  39. extern MMAP core, alt, ker, swap;
  40.  
  41. /* compilers differ on what "sizeof" returns */
  42. #define SIZEOF        (long)sizeof
  43.  
  44. /* MiNT leaves this much memory for TOS to use
  45.  */
  46. #define TOS_MEM        (8*1024L)
  47.  
  48. /* MiNT tries to keep this much memory available for the kernel and other
  49.  * programs when a program is launched
  50.  */
  51. #define KEEP_MEM    (8*1024L)
  52.  
  53. /*
  54.  * how much memory should be allocated to the kernel?
  55.  */
  56. #define KERNEL_MEM    (24*1024L)
  57.  
  58. /* macro for rounding off region sizes */
  59. #define MASKBITS    0xf
  60. #define ROUND(size) ((size + MASKBITS) & ~MASKBITS)
  61.  
  62. #endif /* _mem_h */
  63.