26 #ifndef MICROPY_INCLUDED_PY_MPSTATE_H    27 #define MICROPY_INCLUDED_PY_MPSTATE_H    44 #if MICROPY_DYNAMIC_COMPILER    45 typedef struct mp_dynamic_compiler_t {
    47     bool opt_cache_map_lookup_in_bytecode;
    48     bool py_builtins_str_unicode;
    49 } mp_dynamic_compiler_t;
    50 extern mp_dynamic_compiler_t mp_dynamic_compiler;
    54 #define MP_SCHED_IDLE (1)    55 #define MP_SCHED_LOCKED (-1)    56 #define MP_SCHED_PENDING (0) // 0 so it's a quick check in the VM    66     size_t total_bytes_allocated;
    67     size_t current_bytes_allocated;
    68     size_t peak_bytes_allocated;
    73     #if MICROPY_ENABLE_FINALISER    74     byte *gc_finaliser_table_start;
    89     #if MICROPY_GC_ALLOC_THRESHOLD    90     size_t gc_alloc_amount;
    91     size_t gc_alloc_threshold;
    96     #if MICROPY_PY_GC_COLLECT_RETVAL   100     #if MICROPY_PY_THREAD   102     mp_thread_mutex_t gc_mutex;
   121     #if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF   122     #if MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE > 0   124     mp_obj_t mp_emergency_exception_buf[MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE / 
sizeof(
mp_obj_t)];
   127     byte *mp_emergency_exception_buf;
   131     #if MICROPY_KBD_EXCEPTION   142     #if MICROPY_ENABLE_SCHEDULER   149     #if MICROPY_PY_SYS_EXC_INFO   161     #if MICROPY_CAN_OVERRIDE_BUILTINS   170     #if MICROPY_PY_OS_DUPTERM   171     mp_obj_t dupterm_objs[MICROPY_PY_OS_DUPTERM];
   175     #if MICROPY_PY_LWIP_SLIP   180     struct _mp_vfs_mount_t *vfs_cur;
   181     struct _mp_vfs_mount_t *vfs_mount_table;
   194     #if MICROPY_PY_THREAD   196     mp_thread_mutex_t qstr_mutex;
   202     #if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0   203     mp_int_t mp_emergency_exception_buf_size;
   206     #if MICROPY_PY_THREAD_GIL   208     mp_thread_mutex_t gil_mutex;
   224     #if MICROPY_STACK_CHECK   241 #define MP_STATE_VM(x) (mp_state_ctx.vm.x)   242 #define MP_STATE_MEM(x) (mp_state_ctx.mem.x)   244 #if MICROPY_PY_THREAD   246 #define MP_STATE_THREAD(x) (mp_thread_get_state()->x)   248 #define MP_STATE_THREAD(x) (mp_state_ctx.thread.x)   251 #endif // MICROPY_INCLUDED_PY_MPSTATE_H 
struct _mp_state_vm_t mp_state_vm_t
 
MICROPY_PORT_ROOT_POINTERS byte * qstr_last_chunk
 
mp_obj_list_t mp_sys_path_obj
 
mp_state_ctx_t mp_state_ctx
 
#define MICROPY_SCHEDULER_DEPTH
 
#define MICROPY_ALLOC_GC_STACK_SIZE
 
mp_uint_t mp_optimise_value
 
size_t gc_last_free_atb_index
 
size_t gc_stack[MICROPY_ALLOC_GC_STACK_SIZE]
 
uint16_t gc_auto_collect_enabled
 
struct _mp_state_thread_t mp_state_thread_t
 
byte * gc_alloc_table_start
 
#define MICROPY_PORT_ROOT_POINTERS
 
struct _mp_sched_item_t mp_sched_item_t
 
mp_obj_exception_t mp_emergency_exception_obj
 
mp_obj_dict_t * dict_locals
 
struct _mp_state_mem_t mp_state_mem_t
 
mp_obj_dict_t mp_loaded_modules_dict
 
volatile mp_obj_t mp_pending_exception
 
size_t gc_alloc_table_byte_len
 
mp_obj_list_t mp_sys_argv_obj
 
struct _mp_state_ctx_t mp_state_ctx_t
 
mp_obj_dict_t * dict_globals