17db96d56Sopenharmony_ci#ifndef Py_TRACEMALLOC_H
27db96d56Sopenharmony_ci#define Py_TRACEMALLOC_H
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci#ifndef Py_LIMITED_API
57db96d56Sopenharmony_ci/* Track an allocated memory block in the tracemalloc module.
67db96d56Sopenharmony_ci   Return 0 on success, return -1 on error (failed to allocate memory to store
77db96d56Sopenharmony_ci   the trace).
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci   Return -2 if tracemalloc is disabled.
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci   If memory block is already tracked, update the existing trace. */
127db96d56Sopenharmony_ciPyAPI_FUNC(int) PyTraceMalloc_Track(
137db96d56Sopenharmony_ci    unsigned int domain,
147db96d56Sopenharmony_ci    uintptr_t ptr,
157db96d56Sopenharmony_ci    size_t size);
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci/* Untrack an allocated memory block in the tracemalloc module.
187db96d56Sopenharmony_ci   Do nothing if the block was not tracked.
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci   Return -2 if tracemalloc is disabled, otherwise return 0. */
217db96d56Sopenharmony_ciPyAPI_FUNC(int) PyTraceMalloc_Untrack(
227db96d56Sopenharmony_ci    unsigned int domain,
237db96d56Sopenharmony_ci    uintptr_t ptr);
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci/* Get the traceback where a memory block was allocated.
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci   Return a tuple of (filename: str, lineno: int) tuples.
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci   Return None if the tracemalloc module is disabled or if the memory block
307db96d56Sopenharmony_ci   is not tracked by tracemalloc.
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci   Raise an exception and return NULL on error. */
337db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
347db96d56Sopenharmony_ci    unsigned int domain,
357db96d56Sopenharmony_ci    uintptr_t ptr);
367db96d56Sopenharmony_ci#endif
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci#endif /* !Py_TRACEMALLOC_H */
39