mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
ldr: update SetProgramArguments for 11.0.0 abi change (#507)
This commit is contained in:
parent
e5ae43f4c2
commit
8ce231e7c9
@ -24,7 +24,7 @@ LDR_GENERATE_SERVICE_INIT(Shell, shel);
|
||||
LDR_GENERATE_SERVICE_INIT(Dmnt, dmnt);
|
||||
LDR_GENERATE_SERVICE_INIT(Pm, pm);
|
||||
|
||||
static Result _ldrSetProgramArguments(Service* srv, u64 program_id, const void *args, size_t args_size) {
|
||||
static Result _ldrSetProgramArgumentsDeprecated(Service* srv, u64 program_id, const void *args, size_t args_size) {
|
||||
const struct {
|
||||
u32 args_size;
|
||||
u32 pad;
|
||||
@ -37,6 +37,21 @@ static Result _ldrSetProgramArguments(Service* srv, u64 program_id, const void *
|
||||
);
|
||||
}
|
||||
|
||||
static Result _ldrSetProgramArgumentsModern(Service* srv, u64 program_id, const void *args, size_t args_size) {
|
||||
return serviceDispatchIn(srv, 0, program_id,
|
||||
.buffer_attrs = { SfBufferAttr_In | SfBufferAttr_HipcPointer },
|
||||
.buffers = { { args, args_size } },
|
||||
);
|
||||
}
|
||||
|
||||
static Result _ldrSetProgramArguments(Service* srv, u64 program_id, const void *args, size_t args_size) {
|
||||
if (hosversionAtLeast(11,0,0)) {
|
||||
return _ldrSetProgramArgumentsModern(srv, program_id, args, args_size);
|
||||
} else {
|
||||
return _ldrSetProgramArgumentsDeprecated(srv, program_id, args, args_size);
|
||||
}
|
||||
}
|
||||
|
||||
static Result _ldrFlushArguments(Service* srv) {
|
||||
return serviceDispatch(srv, 1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user