1 /* 2 * Copyright (c) 2002 by Michael J. Roberts. All Rights Reserved. 3 * 4 * Please see the accompanying license file, LICENSE.TXT, for information 5 * on using and copying this software. 6 */ 7 /* 8 Name 9 vmpoolsl.h - pool manager selector definitions 10 Function 11 This header makes some definitions that vary according to which type of 12 memory pool manager is selected. This can be included without including 13 the entire memory pool subsystem header. 14 Notes 15 As of this writing, only the all-in-memory pool manager is supported. 16 The swapping pool manager is no longer supported and is not planned to be 17 supported in the future. However, we are retaining the selection mechanism 18 for now, in the event that we want to restore the swapping pool, or add 19 other pool configuration options, in the future (which seems unlikely, but 20 still). 21 Modified 22 08/17/02 MJRoberts - Creation 23 */ 24 25 #ifndef VMPOOLSL_H 26 #define VMPOOLSL_H 27 28 /* ------------------------------------------------------------------------ */ 29 /* 30 * Conditionally include code needed for the swapping pool manager. When 31 * the swapping pool manager is used, code that translates memory addresses 32 * must be mindful of the fact that translating one memory address can 33 * render previously-translated addresses invalid. Such code is 34 * unnecessary with non-swapping pool managers. 35 * 36 * To include the swapping pool manager in the build, you must #define 37 * VM_SWAPPING_POOL globally for all modules - normally, this should be 38 * done in the CFLAGS in the makefile, or with the equivalent local 39 * convention, so that every module has the symbol defined. 40 */ 41 42 /* ------------------------------------------------------------------------ */ 43 #ifdef VM_SWAPPING_POOL 44 45 /* 46 * swapping mode - include swapping-specific code 47 */ 48 #define VM_IF_SWAPPING_POOL(x) x 49 50 /* the final pool manager subclass - use the swapping pool class */ 51 #define CVmPool_CLASS CVmPoolSwap 52 53 /* ------------------------------------------------------------------------ */ 54 #else /* VM_SWAPPING_POOL */ 55 56 /* 57 * non-swapping mode - omit swapping-specific code 58 */ 59 #define VM_IF_SWAPPING_POOL(x) 60 61 /* 62 * The non-swapping pool comes in two varieties. Select the FLAT or PAGED 63 * pool, as desired. The FLAT pool is slightly faster, but it doesn't have 64 * any dynamic memory capabilities, which are required for the debugger. 65 */ 66 #ifdef VM_FLAT_POOL 67 68 /* select the non-swapped FLAT pool */ 69 #define CVmPool_CLASS CVmPoolFlat 70 71 #else /* VM_FLAT_POOL */ 72 73 /* select the non-swapped PAGED pool */ 74 #define CVmPool_CLASS CVmPoolInMem 75 76 #endif /* VM_FLAT_POOL */ 77 78 #endif /* VM_SWAPPING_POOL */ 79 80 #endif /* VMPOOLSL_H */ 81