nso/nro: Add NSO arguments structure to data section

Only added if arguments string is non-empty and a pass is requested by loader.
This commit is contained in:
Zach Hilman 2018-09-30 14:04:48 -04:00
parent 6e4d2e672d
commit e09505ff61
4 changed files with 38 additions and 3 deletions

View file

@ -11,6 +11,13 @@
namespace Loader {
struct NSOArgumentHeader {
u32_le allocated_size;
u32_le actual_size;
INSERT_PADDING_BYTES(0x18);
};
static_assert(sizeof(NSOArgumentHeader) == 0x20, "NSOArgumentHeader has incorrect size.");
/// Loads an NSO file
class AppLoader_NSO final : public AppLoader, Linker {
public:
@ -27,7 +34,7 @@ public:
return IdentifyType(file);
}
static VAddr LoadModule(FileSys::VirtualFile file, VAddr load_base,
static VAddr LoadModule(FileSys::VirtualFile file, VAddr load_base, bool should_pass_arguments,
boost::optional<FileSys::PatchManager> pm = boost::none);
ResultStatus Load(Kernel::Process& process) override;