Stratosphere: Implement ldr:dmnt->GetNsoInfos()

This commit is contained in:
Michael Scire 2018-04-19 16:14:48 -06:00
parent b2660c661c
commit b843938b1a
3 changed files with 53 additions and 8 deletions

View file

@ -8,12 +8,16 @@
class Registration {
public:
struct NsoInfo {
bool in_use;
u64 base_address;
u64 size;
unsigned char build_id[0x20];
};
struct NsoInfoHolder {
bool in_use;
NsoInfo info;
};
struct TidSid {
u64 title_id;
FsStorageId storage_id;
@ -25,7 +29,7 @@ class Registration {
u64 process_id;
u64 title_id_min;
Registration::TidSid tid_sid;
Registration::NsoInfo nso_infos[NSO_INFO_MAX];
Registration::NsoInfoHolder nso_infos[NSO_INFO_MAX];
u64 _0x730;
};
@ -36,8 +40,10 @@ class Registration {
static Registration::Process *get_free_process();
static Registration::Process *get_process(u64 index);
static Registration::Process *get_process_by_process_id(u64 pid);
static bool register_tid_sid(const TidSid *tid_sid, u64 *out_index);
static bool unregister_index(u64 index);
static void set_process_id_and_tid_min(u64 index, u64 process_id, u64 tid_min);
static void add_nso_info(u64 index, u64 base_address, u64 size, const unsigned char *build_id);
static Result get_nso_infos_for_process_id(NsoInfo *out, u32 max_out, u64 process_id, u32 *num_written);
};