summaryrefslogtreecommitdiffstats
path: root/userspace/cuda/570.144/ghidra
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 13:48:00 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 13:48:00 -0400
commitbfcb856e09207d8edb714373d775537165d06b05 (patch)
tree5404762f261ed0e20bee6a5f484865ae2e18d929 /userspace/cuda/570.144/ghidra
parenta93455bc2e3a10fe070477cad5e098e40b4c069a (diff)
downloadopen-iov-bfcb856e09207d8edb714373d775537165d06b05.tar.gz
open-iov-bfcb856e09207d8edb714373d775537165d06b05.zip
userspace/cuda: complete the analysis pass
* Name recovery: name_candidates.py proposes the hand-written API-layer implementation for each exported wrapper by grouping version variants and intersecting their callees; 180 high-confidence proposals recorded in annotations/name-candidates.tsv, 29 of them body-verified and promoted to names.tsv with evidence in subsystems.tsv. * Engine records: identified the 0x14-byte per-engine descriptor, mapped its fields (kind, engine type, instance, class id, CE caps) and the existence callback, and documented how the missing async copy engine (COPY14) leaves the secondary record zeroed and blocks context creation (docs/05 section 3.7, public-safe). * Targeted type recovery: AnalyzeFunctions.java runs the parameter-ID analyzer over a curated list of 80 functions; 16 improved materially and the typed decompilations are kept under the version run tree. * Cross-version: cudatool.py fdematch measures how names transfer between patch versions (570.144 -> 570.211.01: exports 100%, verified internals ~70%, generated wrappers must be re-resolved by relocation, never by address arithmetic); documented in the upgrade playbook. * Corpus tooling: diff_corpus.py (version-to-version corpus diff) and subsystem_digest.py (per-subsystem call trees). * Deprecate the old per-version helpers whose address handling and analysis timeout produced wrong results. Generated corpora and typed outputs remain untracked under the version run tree.
Diffstat (limited to 'userspace/cuda/570.144/ghidra')
-rw-r--r--userspace/cuda/570.144/ghidra/DecompileAt.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/userspace/cuda/570.144/ghidra/DecompileAt.java b/userspace/cuda/570.144/ghidra/DecompileAt.java
index 5092ee9..f1572c7 100644
--- a/userspace/cuda/570.144/ghidra/DecompileAt.java
+++ b/userspace/cuda/570.144/ghidra/DecompileAt.java
@@ -1,5 +1,18 @@
// SPDX-License-Identifier: BSD-3-Clause
//
+// ###########################################################################
+// # WARNING: DEPRECATED - DO NOT USE FOR NEW ANALYSIS (kept for history). #
+// # #
+// # It treats its argument as a Ghidra program address, but the analysis #
+// # convention here is FILE virtual addresses (libcuda+0x...) and Ghidra #
+// # loads these binaries at image base 0x100000. Called with a file vaddr #
+// # it decompiles the function 0x100000 bytes too low (the bug behind the #
+// # old `helper_453ef0.c` / `fn_0x481360.c` artifacts). #
+// # #
+// # Replacement: tools/ghidra/DecompileAt.java (adds the image base) used #
+// # through tools/ghidra_decompile_at.sh. #
+// ###########################################################################
+//
// DecompileAt.java - Ghidra post-script: decompile the function containing a
// given address (no auto-analysis required).
//