Firmware Fn addSegmentData - krcenov/RNS510-Map-Viewer GitHub Wiki
addSegmentData — DYNA_SegmentList::addSegmentData
Part of Firmware Reversing.
- Naive symbol-table address:
0x798990(VA0xf7026684) - True prologue start:
0x798970(VA0xf7026664) - Status: 🟡* Partially traced — a clean, confirmed epilogue exists
(
0x798a90-0x798ab8: all 8 saved GPRs restored,addi r1,r1,0x30) but with no locally-visibleblrimmediately after it — the same real, repeating anomaly already confirmed ongetNodeVidArmMP0,getIndexOfVidandfilterToggleSeg— see the general note on Firmware Reversing. Code resumes immediately after with no newstwu/mflrprologue, referencingr31again 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.