102 Patches: Detours to the Rescue
C reference for DttR maintainers and modders.
Loading...
Searching...
No Matches
util_pkg_walk.c File Reference
#include <stdint.h>
#include <string.h>
#include <dttr_util_pkg.h>

Go to the source code of this file.

Enumerations

enum  { PKG_LOAD_ENTRY_TOC_OPERAND_OFFSET = 0x48u }

Functions

static DTTR_Util_PkgWalkResult make_result (DTTR_Util_PkgVisitStatus status)
DTTR_Util_PkgWalkOptions DTTR_Util_PkgWalk_DefaultOptions ()
 Return default options covering all known domains, entry loading included.
const char * DTTR_Util_PkgVisitStatusName (DTTR_Util_PkgVisitStatus status)
 Return a static log-friendly name such as ok or load failed.
static bool default_load_entry (const DTTR_Core_Context *ctx, int32_t toc_index, const DTTR_PCDOGS_T_PKG_TOCEntry *entry, void *userdata, void **out_entry, size_t *out_size, DTTR_Util_PkgVisitStatus *out_status)
static void default_free_entry (const DTTR_Core_Context *ctx, int32_t toc_index, const DTTR_PCDOGS_T_PKG_TOCEntry *entry, void *entry_data, void *userdata)
static bool resolve_toc (const DTTR_Core_Context *ctx, const DTTR_Util_PkgWalkOptions *options, const DTTR_PCDOGS_T_PKG_TOCEntry **out_entries, uint32_t *out_count)
static DTTR_Util_PkgVisitAction emit_visit (DTTR_Util_PkgWalkResult *result, DTTR_Util_PkgVisitor visitor, void *visitor_userdata, const DTTR_Util_PkgVisit *visit)
static DTTR_Util_PkgVisit make_visit (const DTTR_Util_PkgWalkOptions *options, DTTR_Util_PkgVisitKind kind, DTTR_Util_PkgVisitStatus status, uint32_t depth, int32_t toc_index, const DTTR_PCDOGS_T_PKG_TOCEntry *toc_entry, const void *ptr, const void *loaded_entry_base, size_t loaded_entry_size, const DTTR_Util_PkgVisit *parent)
static bool should_recurse (DTTR_Util_PkgVisitAction action)
static bool should_load (const DTTR_Util_PkgWalkOptions *options, DTTR_Util_PkgVisitAction action)
static bool emit_decode_boundary (DTTR_Util_PkgWalkResult *result, const DTTR_Util_PkgWalkOptions *options, DTTR_Util_PkgVisitor visitor, void *visitor_userdata, const DTTR_Util_PkgVisit *loaded_visit)
DTTR_Util_PkgWalkResult DTTR_Util_PkgWalk (const DTTR_Core_Context *ctx, const DTTR_Util_PkgWalkOptions *options, DTTR_Util_PkgVisitor visitor, void *userdata)
 Walk live package structures and call the visitor for each visit.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PKG_LOAD_ENTRY_TOC_OPERAND_OFFSET 

Definition at line 10 of file util_pkg_walk.c.

Function Documentation

◆ default_free_entry()

void default_free_entry ( const DTTR_Core_Context * ctx,
int32_t toc_index,
const DTTR_PCDOGS_T_PKG_TOCEntry * entry,
void * entry_data,
void * userdata )
static

Definition at line 94 of file util_pkg_walk.c.

References BOOL, ctx, DTTR_PCDOGS_F_PKG_FreeResourceData, and FALSE.

Referenced by DTTR_Util_PkgWalk().

◆ default_load_entry()

bool default_load_entry ( const DTTR_Core_Context * ctx,
int32_t toc_index,
const DTTR_PCDOGS_T_PKG_TOCEntry * entry,
void * userdata,
void ** out_entry,
size_t * out_size,
DTTR_Util_PkgVisitStatus * out_status )
static

◆ DTTR_Util_PkgVisitStatusName()

◆ DTTR_Util_PkgWalk()

◆ DTTR_Util_PkgWalk_DefaultOptions()

DTTR_Util_PkgWalkOptions DTTR_Util_PkgWalk_DefaultOptions ( )

Return default options covering all known domains, entry loading included.

Definition at line 18 of file util_pkg_walk.c.

References DTTR_UTIL_PKG_DEFAULT_TOC_COUNT, and DTTR_UTIL_PKG_DOMAIN_ALL_KNOWN.

Referenced by DTTR_Util_PkgWalk().

◆ emit_decode_boundary()

◆ emit_visit()

◆ make_result()

DTTR_Util_PkgWalkResult make_result ( DTTR_Util_PkgVisitStatus status)
static

Definition at line 14 of file util_pkg_walk.c.

Referenced by DTTR_Util_PkgWalk().

◆ make_visit()

◆ resolve_toc()

◆ should_load()

◆ should_recurse()

bool should_recurse ( DTTR_Util_PkgVisitAction action)
static