Loader: Implement ldr:ro->LoadNRR(). NOTE: No sigchecks, at the moment.

This commit is contained in:
Michael Scire 2018-04-26 20:27:52 -06:00
parent 789afe7929
commit 8524f284fd
6 changed files with 143 additions and 25 deletions

View file

@ -104,7 +104,7 @@ void Registration::AddNsoInfo(u64 index, u64 base_address, u64 size, const unsig
}
Result Registration::AddNrrInfo(u64 index, u64 base_address, u64 size, u64 code_memory_address, u64 loader_address) {
Result Registration::AddNrrInfo(u64 index, MappedCodeMemory *nrr_info) {
Registration::Process *target_process = GetProcess(index);
if (target_process == NULL) {
/* TODO: panic() */
@ -112,11 +112,8 @@ Result Registration::AddNrrInfo(u64 index, u64 base_address, u64 size, u64 code_
}
for (unsigned int i = 0; i < NSO_INFO_MAX; i++) {
if (!target_process->nrr_infos[i].in_use) {
target_process->nrr_infos[i].info.base_address = base_address;
target_process->nrr_infos[i].info.size = size;
target_process->nrr_infos[i].info.code_memory_address = code_memory_address;
target_process->nrr_infos[i].info.loader_address = loader_address;
if (!target_process->nrr_infos[i].IsActive()) {
target_process->nrr_infos[i] = *nrr_info;
return 0;
}
}