microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs
advanced_scanners.hpp File Reference

Type-erased, zero-allocation memory scanners for bounded value ranges and complex data dependencies. More...

#include "../microfmt.hpp"
#include "../reloco.hpp"
#include "address_space.hpp"
#include "memory_pattern_scanner.hpp"
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <limits>
#include <type_traits>
#include <utility>
Include dependency graph for advanced_scanners.hpp:

Go to the source code of this file.

Classes

class  microfmt::value_range_scanner_ref< T >
 Type-erased reference for scanning memory for a scalar value within a [min, max] range. More...
 
struct  microfmt::value_range_scanner_ref< T >::vtable
 
class  microfmt::value_range_scanner< Tag, T, false >
 
class  microfmt::value_range_scanner< Tag, T, true >
 
class  microfmt::dependent_value_scanner_ref
 Type-erased reference for scanning memory using a custom logical predicate. More...
 
struct  microfmt::dependent_value_scanner_ref::vtable
 
class  microfmt::dependent_value_scanner< Tag, false >
 
class  microfmt::dependent_value_scanner< Tag, true >
 
struct  microfmt::linear_value_range_scanner_tag< T >
 
struct  microfmt::linear_dependent_value_scanner_tag
 
struct  microfmt::value_range_scanner_traits< linear_value_range_scanner_tag< T >, T >
 
struct  microfmt::dependent_value_scanner_traits< linear_dependent_value_scanner_tag >
 

Namespaces

namespace  microfmt
 

Typedefs

using microfmt::dependent_predicate_fn = bool(*)(const void *window_bytes, void *user_context) noexcept
 Function pointer type for evaluating a logical predicate over a memory window.
 

Detailed Description

Type-erased, zero-allocation memory scanners for bounded value ranges and complex data dependencies.

Provides specialized scanners to search remote address spaces for specific conditions without allocating heap memory. Includes a value range scanner to find scalars within [min, max] bounds, and a dependent value scanner to evaluate sliding-window predicates (useful for verifying multi-field invariants in OS thread blocks without symbols).