Skip to content

Firmware Fn addSegmentData

Kristiyan edited this page Oct 1, 2026 · 2 revisions

addSegmentData — DYNA_SegmentList::addSegmentData

Part of Firmware Reversing.

  • Naive symbol-table address: 0x798990 (VA 0xf7026684)
  • True prologue start: 0x798970 (VA 0xf7026664)
  • Status: 🟡* Partially traced — a clean, confirmed epilogue exists (0x798a90-0x798ab8: all 8 saved GPRs restored, addi r1,r1,0x30) but with no locally-visible blr immediately after it — the same real, repeating anomaly already confirmed on getNodeVidArmMP0, getIndexOfVid and filterToggleSeg — see the general note on Firmware Reversing. Code resumes immediately after with no new stwu/mflr prologue, referencing r31 again in a way inconsistent with straight-line fallthrough from an exited frame — not chased further, treated as the real function boundary.
  • Full mangled name: addSegmentData__16DYNA_SegmentListP8_tmc_segUsiP4vsegRUi

Takes a _tmc_seg and a vseg — directly relevant to this project's own TMC/segment work. DYNA_SegmentList ("DYNAmic Segment List") is real, previously-unexamined evidence this ties into dynamic (traffic/rerouting) segment handling, not the static map-disc segment data this wiki otherwise documents.

Real, confirmed structure

A small, 48-byte-plus-8-GPR stack frame, with a real doubly-linked- list traversal loop at its core (lwz r31,0(r9) / cmpw r31,r9 / beq — walk until back to the sentinel head node) over the segment list the class name promises.

Real, confirmed call targets

Target What it suggests
__nw__35CfcAspectGuidanceStatusChangedEventUi Operator new for a real CfcAspectGuidanceStatusChangedEvent — adding a dynamic segment fires a real guidance-status-changed event
getDbPartitions__22CfcTypeMapPOIPartition Queries real POI-partition data via CfcTypeMapPOIPartition — dynamic segment insertion touches POI-partition bookkeeping too
__nw__42CfcAnnouncementCommandChangedListenerProxyUi Operator new for a real CfcAnnouncementCommandChangedListenerProxy — a 2nd real event/listener class fired here, voice-guidance-announcement-related (the same general "announcement changed" family as CfcAspectAnnouncementCommandChangedEvent, found separately on mv_lefthand_traffic)
getCertainty_total__23CfcTypePossibleLocation Reads a real map-matching confidence value off a CfcTypePossibleLocation object

Net read

DYNA_SegmentList::addSegmentData is not a plain list-insert helper: inserting a dynamic segment also triggers real guidance-status and announcement-changed events and touches both POI-partition data and map-matching location-certainty data — consistent with this being part of the live traffic/rerouting pipeline, where adding a new dynamic segment can immediately affect what guidance is currently being announced to the driver.

Clone this wiki locally