Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:06:46

0001 #ifndef Py_INTERNAL_OBMALLOC_INIT_H
0002 #define Py_INTERNAL_OBMALLOC_INIT_H
0003 #ifdef __cplusplus
0004 extern "C" {
0005 #endif
0006 
0007 #ifndef Py_BUILD_CORE
0008 #  error "this header requires Py_BUILD_CORE define"
0009 #endif
0010 
0011 
0012 /****************************************************/
0013 /* the default object allocator's state initializer */
0014 
0015 #define PTA(pools, x) \
0016     ((poolp )((uint8_t *)&(pools.used[2*(x)]) - 2*sizeof(pymem_block *)))
0017 #define PT(p, x)   PTA(p, x), PTA(p, x)
0018 
0019 #define PT_8(p, start) \
0020     PT(p, start), \
0021     PT(p, start+1), \
0022     PT(p, start+2), \
0023     PT(p, start+3), \
0024     PT(p, start+4), \
0025     PT(p, start+5), \
0026     PT(p, start+6), \
0027     PT(p, start+7)
0028 
0029 #if NB_SMALL_SIZE_CLASSES <= 8
0030 #  define _obmalloc_pools_INIT(p) \
0031     { PT_8(p, 0) }
0032 #elif NB_SMALL_SIZE_CLASSES <= 16
0033 #  define _obmalloc_pools_INIT(p) \
0034     { PT_8(p, 0), PT_8(p, 8) }
0035 #elif NB_SMALL_SIZE_CLASSES <= 24
0036 #  define _obmalloc_pools_INIT(p) \
0037     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16) }
0038 #elif NB_SMALL_SIZE_CLASSES <= 32
0039 #  define _obmalloc_pools_INIT(p) \
0040     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24) }
0041 #elif NB_SMALL_SIZE_CLASSES <= 40
0042 #  define _obmalloc_pools_INIT(p) \
0043     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32) }
0044 #elif NB_SMALL_SIZE_CLASSES <= 48
0045 #  define _obmalloc_pools_INIT(p) \
0046     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40) }
0047 #elif NB_SMALL_SIZE_CLASSES <= 56
0048 #  define _obmalloc_pools_INIT(p) \
0049     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48) }
0050 #elif NB_SMALL_SIZE_CLASSES <= 64
0051 #  define _obmalloc_pools_INIT(p) \
0052     { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48), PT_8(p, 56) }
0053 #else
0054 #  error "NB_SMALL_SIZE_CLASSES should be less than 64"
0055 #endif
0056 
0057 #define _obmalloc_global_state_INIT \
0058     { \
0059         .dump_debug_stats = -1, \
0060     }
0061 
0062 #define _obmalloc_state_INIT(obmalloc) \
0063     { \
0064         .pools = { \
0065             .used = _obmalloc_pools_INIT(obmalloc.pools), \
0066         }, \
0067     }
0068 
0069 
0070 #ifdef __cplusplus
0071 }
0072 #endif
0073 #endif  // !Py_INTERNAL_OBMALLOC_INIT_H