Skip to content

Struct dp_tlm

ClassList > dp_tlm

Telemetry context: probe registry + SPSC record ring. More...

  • #include <dp_tlm_core.h>

Public Attributes

Type Name
dp_tlm_capture_t * capture
int(* capture_drain
uint32_t n_probes
uint64_t now
dp_tlm_probe_t probes
dp_tlmr_t * ring

Detailed Description

Public (not opaque) because the emit path is inline; treat the fields as read-only outside dp_tlm_core.c and dp_tlm_emit.

capture is deliberately LAST: the emit hot path touches ring, now and probes, and appending here leaves their cache layout untouched.

Public Attributes Documentation

variable capture

dp_tlm_capture_t* dp_tlm::capture;

Open capture that dp_tlm_set_now() drains through; NULL when none.


variable capture_drain

int(* dp_tlm::capture_drain) (dp_tlm_capture_t *);

Boundary drain, registered by dp_tlm_capture_open().

A function POINTER rather than a direct call, so this translation unit never references a capture symbol: the inline dp_tlm_set_now() below is pulled into every TU that includes this header, and calling dp_tlm_capture_block() by name would make the capture a link-time dependency of everything an inversion, since the capture depends on the ring and not the other way round. NULL when no capture is open.


variable n_probes

uint32_t dp_tlm::n_probes;

variable now

uint64_t dp_tlm::now;

Caller-stamped sample index for records.


variable probes

dp_tlm_probe_t dp_tlm::probes[DP_TLM_MAX_PROBES];

variable ring

dp_tlmr_t* dp_tlm::ring;

Lock-free SPSC record ring.



The documentation for this class was generated from the following file native/inc/dp_tlm/dp_tlm_core.h