Skip to content

Add instrumentation/DAQ event types to CTXP examples + linter#2

Merged
accemic merged 4 commits into
mainfrom
albert/ctxp-daq-events
May 21, 2026
Merged

Add instrumentation/DAQ event types to CTXP examples + linter#2
accemic merged 4 commits into
mainfrom
albert/ctxp-daq-events

Conversation

@accemic
Copy link
Copy Markdown
Owner

@accemic accemic commented May 21, 2026

Adds three new event types for representing user-generated ACT-CAP/DAQ messages, reusing existing CTXP events where the semantics match:

  • DAQ_DATA: captured data value and/or packed {context, DirectData} tag
  • DAQ_COUNTER: performance/threshold counter readout
  • DAQ_LAST_PC: previous PC before exception/interrupt

ctxp_lint.py learns the three types; EVENT_PAYLOAD_KIND now supports an optional value1 (None) for DAQ_DATA. Adds examples/daq.* (trace, source, elf, dis, explanation) and lists the new types/example in README.adoc.

Albert Schulz and others added 4 commits May 21, 2026 10:13
Adds three new event types for representing user-generated ACT-CAP/DAQ
messages, reusing existing CTXP events where the semantics match:

- DAQ_DATA: captured data value and/or packed {context, DirectData} tag
- DAQ_COUNTER: performance/threshold counter readout
- DAQ_LAST_PC: previous PC before exception/interrupt

ctxp_lint.py learns the three types; EVENT_PAYLOAD_KIND now supports an
optional value1 (None) for DAQ_DATA. Adds examples/daq.* (trace, source,
elf, dis, explanation) and lists the new types/example in README.adoc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Refines the DAQ representation after review:

- MEMREAD_1/2/4/8 and MEMWRITE_1/2/4/8 may omit the address (value-only
  capture): empty value1 in text, reserved sentinel 0xFFFFFFFFFFFFFFFF in
  binary. The native DATA command maps here instead of to DAQ_DATA.
- DAQ_DATA is now a bare 24-bit DirectData tag carrier; size lives in the
  MEMREAD_N/MEMWRITE_N suffix and direction in the type name, so the
  Dtype/DSize re-encoding was redundant and is dropped.

Linter: MEM_1/2/4/8 value1 optional, DAQ_DATA -> (False,True). Example
trace and explanation reworked; README notes the optional address.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reframe daq.ctxp.txt/daq.md around three configured watchpoints/probes
that demonstrate the four building blocks of DAQ output: a PC sample
(SYNC), a captured data access (MEMWRITE), the last PC before a trap
(DAQ_LAST_PC + SYNC), and the DirectData tag used as a probe id
(DAQ_DATA). Emphasizes that DAQ output depends on how the instrumentation
is configured. Other commands (value-only/address-only captures,
counters) are noted with short snippets + pointer to the spec mapping.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@accemic accemic merged commit a8afae3 into main May 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant