* 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>
21 lines
643 B
C
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);
|
|
}
|