SILENT KILLERPanel

Current Path: > > opt > alt > python313 > > include > > > python3.13 > internal


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/python313//include///python3.13/internal

NameTypeSizeLast ModifiedActions
mimalloc Directory - -
pycore_abstract.h File 1915 bytes June 11 2025 15:36:57.
pycore_asdl.h File 3035 bytes June 11 2025 15:36:57.
pycore_ast.h File 31520 bytes June 11 2025 15:36:57.
pycore_ast_state.h File 6779 bytes June 11 2025 15:36:57.
pycore_atexit.h File 1433 bytes June 11 2025 15:36:57.
pycore_backoff.h File 3902 bytes June 11 2025 15:36:57.
pycore_bitutils.h File 6026 bytes June 11 2025 15:36:57.
pycore_blocks_output_buffer.h File 8772 bytes June 11 2025 15:36:57.
pycore_brc.h File 2102 bytes June 11 2025 15:36:57.
pycore_bytes_methods.h File 3933 bytes June 11 2025 15:36:57.
pycore_bytesobject.h File 5099 bytes June 11 2025 15:36:57.
pycore_call.h File 6135 bytes June 11 2025 15:36:57.
pycore_capsule.h File 397 bytes June 11 2025 15:36:57.
pycore_cell.h File 1057 bytes June 11 2025 15:36:57.
pycore_ceval.h File 11162 bytes June 11 2025 15:36:57.
pycore_ceval_state.h File 3921 bytes June 11 2025 15:36:57.
pycore_code.h File 19864 bytes June 11 2025 15:36:57.
pycore_codecs.h File 2465 bytes June 11 2025 15:36:57.
pycore_compile.h File 3750 bytes June 11 2025 15:36:57.
pycore_complexobject.h File 588 bytes June 11 2025 15:36:57.
pycore_condvar.h File 2704 bytes June 11 2025 15:36:57.
pycore_context.h File 1182 bytes June 11 2025 15:36:57.
pycore_critical_section.h File 7968 bytes June 11 2025 15:36:57.
pycore_crossinterp.h File 12128 bytes June 11 2025 15:36:57.
pycore_descrobject.h File 543 bytes June 11 2025 15:36:57.
pycore_dict.h File 12264 bytes June 11 2025 15:36:57.
pycore_dict_state.h File 732 bytes June 11 2025 15:36:57.
pycore_dtoa.h File 1727 bytes June 11 2025 15:36:57.
pycore_emscripten_signal.h File 685 bytes June 11 2025 15:36:57.
pycore_emscripten_trampoline.h File 3180 bytes June 11 2025 15:36:57.
pycore_exceptions.h File 900 bytes June 11 2025 15:36:57.
pycore_faulthandler.h File 2245 bytes June 11 2025 15:36:57.
pycore_fileutils.h File 9468 bytes June 11 2025 15:36:57.
pycore_fileutils_windows.h File 2713 bytes June 11 2025 15:36:57.
pycore_floatobject.h File 1495 bytes June 11 2025 15:36:57.
pycore_flowgraph.h File 1489 bytes June 11 2025 15:36:57.
pycore_format.h File 480 bytes June 11 2025 15:36:57.
pycore_frame.h File 10875 bytes June 11 2025 15:36:57.
pycore_freelist.h File 4810 bytes June 11 2025 15:36:57.
pycore_function.h File 1538 bytes June 11 2025 15:36:57.
pycore_gc.h File 12967 bytes June 11 2025 15:36:57.
pycore_genobject.h File 859 bytes June 11 2025 15:36:57.
pycore_getopt.h File 490 bytes June 11 2025 15:36:57.
pycore_gil.h File 2196 bytes June 11 2025 15:36:57.
pycore_global_objects.h File 3090 bytes June 11 2025 15:36:57.
pycore_global_objects_fini_generated.h File 117804 bytes June 11 2025 15:36:57.
pycore_global_strings.h File 26706 bytes June 11 2025 15:36:57.
pycore_hamt.h File 3742 bytes June 11 2025 15:36:57.
pycore_hashtable.h File 4361 bytes June 11 2025 15:36:57.
pycore_identifier.h File 515 bytes June 11 2025 15:36:57.
pycore_import.h File 7731 bytes June 11 2025 15:36:57.
pycore_importdl.h File 4055 bytes June 11 2025 15:36:57.
pycore_initconfig.h File 6375 bytes June 11 2025 15:36:57.
pycore_instruction_sequence.h File 2161 bytes June 11 2025 15:36:57.
pycore_instruments.h File 2331 bytes June 11 2025 15:36:57.
pycore_interp.h File 15063 bytes June 11 2025 15:36:57.
pycore_intrinsics.h File 1756 bytes June 11 2025 15:36:57.
pycore_jit.h File 527 bytes June 11 2025 15:36:57.
pycore_list.h File 1859 bytes June 11 2025 15:36:57.
pycore_llist.h File 2420 bytes June 11 2025 15:36:57.
pycore_lock.h File 8538 bytes June 11 2025 15:36:57.
pycore_long.h File 9966 bytes June 11 2025 15:36:57.
pycore_memoryobject.h File 427 bytes June 11 2025 15:36:57.
pycore_mimalloc.h File 1637 bytes June 11 2025 15:36:57.
pycore_modsupport.h File 3351 bytes June 11 2025 15:36:57.
pycore_moduleobject.h File 1572 bytes June 11 2025 15:36:57.
pycore_namespace.h File 435 bytes June 11 2025 15:36:57.
pycore_object.h File 27935 bytes June 11 2025 15:36:57.
pycore_object_alloc.h File 2176 bytes June 11 2025 15:36:57.
pycore_object_stack.h File 2384 bytes June 11 2025 15:36:57.
pycore_object_state.h File 942 bytes June 11 2025 15:36:57.
pycore_obmalloc.h File 27418 bytes June 11 2025 15:36:57.
pycore_obmalloc_init.h File 1935 bytes June 11 2025 15:36:57.
pycore_opcode_metadata.h File 84722 bytes June 11 2025 15:36:57.
pycore_opcode_utils.h File 2122 bytes June 11 2025 15:36:57.
pycore_optimizer.h File 8303 bytes June 11 2025 15:36:57.
pycore_parking_lot.h File 3351 bytes June 11 2025 15:36:57.
pycore_parser.h File 2089 bytes June 11 2025 15:36:57.
pycore_pathconfig.h File 658 bytes June 11 2025 15:36:57.
pycore_pyarena.h File 2862 bytes June 11 2025 15:36:57.
pycore_pyatomic_ft_wrappers.h File 8056 bytes June 11 2025 15:36:57.
pycore_pybuffer.h File 510 bytes June 11 2025 15:36:57.
pycore_pyerrors.h File 4960 bytes June 11 2025 15:36:57.
pycore_pyhash.h File 2813 bytes June 11 2025 15:36:57.
pycore_pylifecycle.h File 4465 bytes June 11 2025 15:36:57.
pycore_pymath.h File 8600 bytes June 11 2025 15:36:57.
pycore_pymem.h File 4472 bytes June 11 2025 15:36:57.
pycore_pymem_init.h File 3520 bytes June 11 2025 15:36:57.
pycore_pystate.h File 9964 bytes June 11 2025 15:36:57.
pycore_pystats.h File 420 bytes June 11 2025 15:36:57.
pycore_pythonrun.h File 758 bytes June 11 2025 15:36:57.
pycore_pythread.h File 5431 bytes June 11 2025 15:36:57.
pycore_qsbr.h File 4927 bytes June 11 2025 15:36:57.
pycore_range.h File 346 bytes June 11 2025 15:36:57.
pycore_runtime.h File 13165 bytes June 11 2025 15:36:57.
pycore_runtime_init.h File 13045 bytes June 11 2025 15:36:57.
pycore_runtime_init_generated.h File 46820 bytes June 11 2025 15:36:57.
pycore_semaphore.h File 1731 bytes June 11 2025 15:36:57.
pycore_setobject.h File 951 bytes June 11 2025 15:36:57.
pycore_signal.h File 2931 bytes June 11 2025 15:36:57.
pycore_sliceobject.h File 369 bytes June 11 2025 15:36:57.
pycore_stackref.h File 5186 bytes June 11 2025 15:36:57.
pycore_strhex.h File 1013 bytes June 11 2025 15:36:57.
pycore_structseq.h File 963 bytes June 11 2025 15:36:57.
pycore_symtable.h File 8671 bytes June 11 2025 15:36:57.
pycore_sysmodule.h File 1177 bytes June 11 2025 15:36:57.
pycore_time.h File 11794 bytes June 11 2025 15:36:57.
pycore_token.h File 3001 bytes June 11 2025 15:36:57.
pycore_traceback.h File 3629 bytes June 11 2025 15:36:57.
pycore_tracemalloc.h File 4533 bytes June 11 2025 15:36:57.
pycore_tstate.h File 1354 bytes June 11 2025 15:36:57.
pycore_tuple.h File 820 bytes June 11 2025 15:36:57.
pycore_typeobject.h File 8877 bytes June 11 2025 15:36:57.
pycore_typevarobject.h File 924 bytes June 11 2025 15:36:57.
pycore_ucnhash.h File 958 bytes June 11 2025 15:36:57.
pycore_unicodeobject.h File 13270 bytes June 11 2025 15:36:57.
pycore_unicodeobject_generated.h File 132140 bytes June 11 2025 15:36:57.
pycore_unionobject.h File 742 bytes June 11 2025 15:36:57.
pycore_uop_ids.h File 10267 bytes June 11 2025 15:36:57.
pycore_uop_metadata.h File 39469 bytes June 11 2025 15:36:57.
pycore_warnings.h File 840 bytes June 11 2025 15:36:57.
pycore_weakref.h File 3331 bytes June 11 2025 15:36:57.

Reading File: //opt/alt/python313//include///python3.13/internal/pycore_frame.h

#ifndef Py_INTERNAL_FRAME_H
#define Py_INTERNAL_FRAME_H
#ifdef __cplusplus
extern "C" {
#endif

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

#include <stdbool.h>
#include <stddef.h>               // offsetof()
#include "pycore_code.h"          // STATS

/* See Objects/frame_layout.md for an explanation of the frame stack
 * including explanation of the PyFrameObject and _PyInterpreterFrame
 * structs. */


struct _frame {
    PyObject_HEAD
    PyFrameObject *f_back;      /* previous frame, or NULL */
    struct _PyInterpreterFrame *f_frame; /* points to the frame data */
    PyObject *f_trace;          /* Trace function */
    int f_lineno;               /* Current line number. Only valid if non-zero */
    char f_trace_lines;         /* Emit per-line trace events? */
    char f_trace_opcodes;       /* Emit per-opcode trace events? */
    PyObject *f_extra_locals;   /* Dict for locals set by users using f_locals, could be NULL */
    /* This is purely for backwards compatibility for PyEval_GetLocals.
       PyEval_GetLocals requires a borrowed reference so the actual reference
       is stored here */
    PyObject *f_locals_cache;
    /* The frame data, if this frame object owns the frame */
    PyObject *_f_frame_data[1];
};

extern PyFrameObject* _PyFrame_New_NoTrack(PyCodeObject *code);


/* other API */

typedef enum _framestate {
    FRAME_CREATED = -3,
    FRAME_SUSPENDED = -2,
    FRAME_SUSPENDED_YIELD_FROM = -1,
    FRAME_EXECUTING = 0,
    FRAME_COMPLETED = 1,
    FRAME_CLEARED = 4
} PyFrameState;

#define FRAME_STATE_SUSPENDED(S) ((S) == FRAME_SUSPENDED || (S) == FRAME_SUSPENDED_YIELD_FROM)
#define FRAME_STATE_FINISHED(S) ((S) >= FRAME_COMPLETED)

enum _frameowner {
    FRAME_OWNED_BY_THREAD = 0,
    FRAME_OWNED_BY_GENERATOR = 1,
    FRAME_OWNED_BY_FRAME_OBJECT = 2,
    FRAME_OWNED_BY_CSTACK = 3,
};

typedef struct _PyInterpreterFrame {
    PyObject *f_executable; /* Strong reference (code object or None) */
    struct _PyInterpreterFrame *previous;
    PyObject *f_funcobj; /* Strong reference. Only valid if not on C stack */
    PyObject *f_globals; /* Borrowed reference. Only valid if not on C stack */
    PyObject *f_builtins; /* Borrowed reference. Only valid if not on C stack */
    PyObject *f_locals; /* Strong reference, may be NULL. Only valid if not on C stack */
    PyFrameObject *frame_obj; /* Strong reference, may be NULL. Only valid if not on C stack */
    _Py_CODEUNIT *instr_ptr; /* Instruction currently executing (or about to begin) */
    int stacktop;  /* Offset of TOS from localsplus  */
    uint16_t return_offset;  /* Only relevant during a function call */
    char owner;
    /* Locals and stack */
    PyObject *localsplus[1];
} _PyInterpreterFrame;

#define _PyInterpreterFrame_LASTI(IF) \
    ((int)((IF)->instr_ptr - _PyCode_CODE(_PyFrame_GetCode(IF))))

static inline PyCodeObject *_PyFrame_GetCode(_PyInterpreterFrame *f) {
    assert(PyCode_Check(f->f_executable));
    return (PyCodeObject *)f->f_executable;
}

static inline PyObject **_PyFrame_Stackbase(_PyInterpreterFrame *f) {
    return f->localsplus + _PyFrame_GetCode(f)->co_nlocalsplus;
}

static inline PyObject *_PyFrame_StackPeek(_PyInterpreterFrame *f) {
    assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus);
    assert(f->localsplus[f->stacktop-1] != NULL);
    return f->localsplus[f->stacktop-1];
}

static inline PyObject *_PyFrame_StackPop(_PyInterpreterFrame *f) {
    assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus);
    f->stacktop--;
    return f->localsplus[f->stacktop];
}

static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) {
    f->localsplus[f->stacktop] = value;
    f->stacktop++;
}

#define FRAME_SPECIALS_SIZE ((int)((sizeof(_PyInterpreterFrame)-1)/sizeof(PyObject *)))

static inline int
_PyFrame_NumSlotsForCodeObject(PyCodeObject *code)
{
    /* This function needs to remain in sync with the calculation of
     * co_framesize in Tools/build/deepfreeze.py */
    assert(code->co_framesize >= FRAME_SPECIALS_SIZE);
    return code->co_framesize - FRAME_SPECIALS_SIZE;
}

static inline void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest)
{
    assert(src->stacktop >= _PyFrame_GetCode(src)->co_nlocalsplus);
    *dest = *src;
    for (int i = 1; i < src->stacktop; i++) {
        dest->localsplus[i] = src->localsplus[i];
    }
    // Don't leave a dangling pointer to the old frame when creating generators
    // and coroutines:
    dest->previous = NULL;
}

/* Consumes reference to func and locals.
   Does not initialize frame->previous, which happens
   when frame is linked into the frame stack.
 */
static inline void
_PyFrame_Initialize(
    _PyInterpreterFrame *frame, PyFunctionObject *func,
    PyObject *locals, PyCodeObject *code, int null_locals_from)
{
    frame->f_funcobj = (PyObject *)func;
    frame->f_executable = Py_NewRef(code);
    frame->f_builtins = func->func_builtins;
    frame->f_globals = func->func_globals;
    frame->f_locals = locals;
    frame->stacktop = code->co_nlocalsplus;
    frame->frame_obj = NULL;
    frame->instr_ptr = _PyCode_CODE(code);
    frame->return_offset = 0;
    frame->owner = FRAME_OWNED_BY_THREAD;

    for (int i = null_locals_from; i < code->co_nlocalsplus; i++) {
        frame->localsplus[i] = NULL;
    }
}

/* Gets the pointer to the locals array
 * that precedes this frame.
 */
static inline PyObject**
_PyFrame_GetLocalsArray(_PyInterpreterFrame *frame)
{
    return frame->localsplus;
}

/* Fetches the stack pointer, and sets stacktop to -1.
   Having stacktop <= 0 ensures that invalid
   values are not visible to the cycle GC.
   We choose -1 rather than 0 to assist debugging. */
static inline PyObject**
_PyFrame_GetStackPointer(_PyInterpreterFrame *frame)
{
    PyObject **sp = frame->localsplus + frame->stacktop;
    frame->stacktop = -1;
    return sp;
}

static inline void
_PyFrame_SetStackPointer(_PyInterpreterFrame *frame, PyObject **stack_pointer)
{
    frame->stacktop = (int)(stack_pointer - frame->localsplus);
}

/* Determine whether a frame is incomplete.
 * A frame is incomplete if it is part way through
 * creating cell objects or a generator or coroutine.
 *
 * Frames on the frame stack are incomplete until the
 * first RESUME instruction.
 * Frames owned by a generator are always complete.
 */
static inline bool
_PyFrame_IsIncomplete(_PyInterpreterFrame *frame)
{
    if (frame->owner == FRAME_OWNED_BY_CSTACK) {
        return true;
    }
    return frame->owner != FRAME_OWNED_BY_GENERATOR &&
        frame->instr_ptr < _PyCode_CODE(_PyFrame_GetCode(frame)) + _PyFrame_GetCode(frame)->_co_firsttraceable;
}

static inline _PyInterpreterFrame *
_PyFrame_GetFirstComplete(_PyInterpreterFrame *frame)
{
    while (frame && _PyFrame_IsIncomplete(frame)) {
        frame = frame->previous;
    }
    return frame;
}

static inline _PyInterpreterFrame *
_PyThreadState_GetFrame(PyThreadState *tstate)
{
    return _PyFrame_GetFirstComplete(tstate->current_frame);
}

/* For use by _PyFrame_GetFrameObject
  Do not call directly. */
PyFrameObject *
_PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame);

/* Gets the PyFrameObject for this frame, lazily
 * creating it if necessary.
 * Returns a borrowed reference */
static inline PyFrameObject *
_PyFrame_GetFrameObject(_PyInterpreterFrame *frame)
{

    assert(!_PyFrame_IsIncomplete(frame));
    PyFrameObject *res =  frame->frame_obj;
    if (res != NULL) {
        return res;
    }
    return _PyFrame_MakeAndSetFrameObject(frame);
}

void
_PyFrame_ClearLocals(_PyInterpreterFrame *frame);

/* Clears all references in the frame.
 * If take is non-zero, then the _PyInterpreterFrame frame
 * may be transferred to the frame object it references
 * instead of being cleared. Either way
 * the caller no longer owns the references
 * in the frame.
 * take should  be set to 1 for heap allocated
 * frames like the ones in generators and coroutines.
 */
void
_PyFrame_ClearExceptCode(_PyInterpreterFrame * frame);

int
_PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg);

bool
_PyFrame_HasHiddenLocals(_PyInterpreterFrame *frame);

PyObject *
_PyFrame_GetLocals(_PyInterpreterFrame *frame);

static inline bool
_PyThreadState_HasStackSpace(PyThreadState *tstate, int size)
{
    assert(
        (tstate->datastack_top == NULL && tstate->datastack_limit == NULL)
        ||
        (tstate->datastack_top != NULL && tstate->datastack_limit != NULL)
    );
    return tstate->datastack_top != NULL &&
        size < tstate->datastack_limit - tstate->datastack_top;
}

extern _PyInterpreterFrame *
_PyThreadState_PushFrame(PyThreadState *tstate, size_t size);

PyAPI_FUNC(void) _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame);

/* Pushes a frame without checking for space.
 * Must be guarded by _PyThreadState_HasStackSpace()
 * Consumes reference to func. */
static inline _PyInterpreterFrame *
_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func, int null_locals_from)
{
    CALL_STAT_INC(frames_pushed);
    PyCodeObject *code = (PyCodeObject *)func->func_code;
    _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top;
    tstate->datastack_top += code->co_framesize;
    assert(tstate->datastack_top < tstate->datastack_limit);
    _PyFrame_Initialize(new_frame, func, NULL, code, null_locals_from);
    return new_frame;
}

/* Pushes a trampoline frame without checking for space.
 * Must be guarded by _PyThreadState_HasStackSpace() */
static inline _PyInterpreterFrame *
_PyFrame_PushTrampolineUnchecked(PyThreadState *tstate, PyCodeObject *code, int stackdepth)
{
    CALL_STAT_INC(frames_pushed);
    _PyInterpreterFrame *frame = (_PyInterpreterFrame *)tstate->datastack_top;
    tstate->datastack_top += code->co_framesize;
    assert(tstate->datastack_top < tstate->datastack_limit);
    frame->f_funcobj = Py_None;
    frame->f_executable = Py_NewRef(code);
#ifdef Py_DEBUG
    frame->f_builtins = NULL;
    frame->f_globals = NULL;
#endif
    frame->f_locals = NULL;
    frame->stacktop = code->co_nlocalsplus + stackdepth;
    frame->frame_obj = NULL;
    frame->instr_ptr = _PyCode_CODE(code);
    frame->owner = FRAME_OWNED_BY_THREAD;
    frame->return_offset = 0;
    return frame;
}

static inline
PyGenObject *_PyFrame_GetGenerator(_PyInterpreterFrame *frame)
{
    assert(frame->owner == FRAME_OWNED_BY_GENERATOR);
    size_t offset_in_gen = offsetof(PyGenObject, gi_iframe);
    return (PyGenObject *)(((char *)frame) - offset_in_gen);
}

PyAPI_FUNC(_PyInterpreterFrame *)
_PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func,
                        PyObject *locals, PyObject* const* args,
                        size_t argcount, PyObject *kwnames);

#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_FRAME_H */

SILENT KILLER Tool