Files
rea/tests/conformance/psp/main.c
T
e4407dbed5 feat(ghidra): admit bounded PSP ELF through installed Allegrex (#1599)
* feat(ghidra): admit bounded PSP ELF through installed Allegrex

Build on merged generic MIPS without weakening its policy. Bind caller-installed processor files into the analysis profile, check them again before launch, force and verify PSP language selection, retain limitations, and extend the public CLI/MCP verifier with source-owned PSP and target-switching checks. Local actual focused Vitest: 102 passed, one existing permission skip. Hosted static and real-provider results are pending.

* fix(ghidra): validate PSPSDK ABI records in PSP admission

* test(ghidra): bind PSP ABI verification to snapshot profiles

* test(ghidra): declare independent PSP ABI reader contract

* test(ghidra): retain the PSP fixture discriminated type

* test(ghidra): contextually type PSP metadata as the MIPS target variant

* test(ghidra): keep carved firmware checks scoped to generic MIPS fixtures

* style(ghidra): format PSP language-override guard

* style(test): format PSP language override regressions

* fix(ghidra): bound PSP extension enumeration before allocation

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-10-11 19:47:33 +08:00

21 lines
643 B
C

#include <pspkernel.h>
PSP_MODULE_INFO("rea_psp_fixture", 0, 1, 0);
#ifndef REA_PSP_GLOBAL
#define REA_PSP_GLOBAL 7
#endif
volatile unsigned int rea_psp_global = REA_PSP_GLOBAL;
const char rea_psp_marker[] = "rea-psp-source-owned-fixture";
unsigned int rea_psp_probe(void);
__attribute__((noinline)) unsigned int rea_psp_leaf(unsigned int value) {
return value * 3u + rea_psp_global;
}
__attribute__((noinline)) unsigned int rea_psp_entry(unsigned int selector) {
unsigned int adjusted = selector > 10u ? selector : selector + 1u;
return rea_psp_leaf(adjusted) + rea_psp_probe();
}
int main(void) {
return (int)rea_psp_entry(11u);
}