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