(root)/
Python-3.12.0/
Include/
internal/
pycore_obmalloc_init.h
       1  #ifndef Py_INTERNAL_OBMALLOC_INIT_H
       2  #define Py_INTERNAL_OBMALLOC_INIT_H
       3  #ifdef __cplusplus
       4  extern "C" {
       5  #endif
       6  
       7  #ifndef Py_BUILD_CORE
       8  #  error "this header requires Py_BUILD_CORE define"
       9  #endif
      10  
      11  
      12  /****************************************************/
      13  /* the default object allocator's state initializer */
      14  
      15  #define PTA(pools, x) \
      16      ((poolp )((uint8_t *)&(pools.used[2*(x)]) - 2*sizeof(pymem_block *)))
      17  #define PT(p, x)   PTA(p, x), PTA(p, x)
      18  
      19  #define PT_8(p, start) \
      20      PT(p, start), \
      21      PT(p, start+1), \
      22      PT(p, start+2), \
      23      PT(p, start+3), \
      24      PT(p, start+4), \
      25      PT(p, start+5), \
      26      PT(p, start+6), \
      27      PT(p, start+7)
      28  
      29  #if NB_SMALL_SIZE_CLASSES <= 8
      30  #  define _obmalloc_pools_INIT(p) \
      31      { PT_8(p, 0) }
      32  #elif NB_SMALL_SIZE_CLASSES <= 16
      33  #  define _obmalloc_pools_INIT(p) \
      34      { PT_8(p, 0), PT_8(p, 8) }
      35  #elif NB_SMALL_SIZE_CLASSES <= 24
      36  #  define _obmalloc_pools_INIT(p) \
      37      { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16) }
      38  #elif NB_SMALL_SIZE_CLASSES <= 32
      39  #  define _obmalloc_pools_INIT(p) \
      40      { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24) }
      41  #elif NB_SMALL_SIZE_CLASSES <= 40
      42  #  define _obmalloc_pools_INIT(p) \
      43      { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32) }
      44  #elif NB_SMALL_SIZE_CLASSES <= 48
      45  #  define _obmalloc_pools_INIT(p) \
      46      { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40) }
      47  #elif NB_SMALL_SIZE_CLASSES <= 56
      48  #  define _obmalloc_pools_INIT(p) \
      49      { 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) }
      50  #elif NB_SMALL_SIZE_CLASSES <= 64
      51  #  define _obmalloc_pools_INIT(p) \
      52      { 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) }
      53  #else
      54  #  error "NB_SMALL_SIZE_CLASSES should be less than 64"
      55  #endif
      56  
      57  #define _obmalloc_global_state_INIT \
      58      { \
      59          .dump_debug_stats = -1, \
      60      }
      61  
      62  #define _obmalloc_state_INIT(obmalloc) \
      63      { \
      64          .pools = { \
      65              .used = _obmalloc_pools_INIT(obmalloc.pools), \
      66          }, \
      67      }
      68  
      69  
      70  #ifdef __cplusplus
      71  }
      72  #endif
      73  #endif  // !Py_INTERNAL_OBMALLOC_INIT_H