libnx
ldr.h
Go to the documentation of this file.
1 /**
2  * @file ldr.h
3  * @brief Loader (ldr*) service IPC wrapper.
4  * @author SciresM
5  * @copyright libnx Authors
6  */
7 #pragma once
8 #include "../types.h"
9 #include "../services/sm.h"
10 #include "../services/fs.h"
11 
12 typedef struct {
13  u8 main_thread_priority;
14  u8 default_cpu_id;
15  u16 application_type;
16  u32 main_thread_stack_size;
17  u64 title_id;
18  u32 acid_sac_size;
19  u32 aci0_sac_size;
20  u32 acid_fac_size;
21  u32 aci0_fah_size;
22  u8 ac_buffer[0x3E0];
24 
25 typedef struct {
26  u64 base_address;
27  u64 size;
28  u8 build_id[0x20];
30 
31 Result ldrShellInitialize(void);
32 void ldrShellExit(void);
33 
34 Result ldrDmntInitialize(void);
35 void ldrDmntExit(void);
36 
37 Result ldrPmInitialize(void);
38 void ldrPmExit(void);
39 
40 Result ldrShellAddTitleToLaunchQueue(u64 tid, const void *args, size_t args_size);
41 Result ldrShellClearLaunchQueue(void);
42 
43 Result ldrDmntAddTitleToLaunchQueue(u64 tid, const void *args, size_t args_size);
44 Result ldrDmntClearLaunchQueue(void);
45 Result ldrDmntGetNsoInfos(u64 pid, LoaderNsoInfo *out_nso_infos, size_t out_size, u32 *num_out);
46 
47 Result ldrPmCreateProcess(u64 flags, u64 launch_index, Handle reslimit_h, Handle *out_process_h);
48 Result ldrPmGetProgramInfo(u64 title_id, FsStorageId storage_id, LoaderProgramInfo *out_program_info);
49 Result ldrPmRegisterTitle(u64 title_id, FsStorageId storage_id, u64 *out_index);
50 Result ldrPmUnregisterTitle(u64 launch_index);
uint16_t u16
16-bit unsigned integer.
Definition: types.h:22
u32 Handle
Kernel object handle.
Definition: types.h:45
u32 Result
Function error code result type.
Definition: types.h:46
uint8_t u8
8-bit unsigned integer.
Definition: types.h:21
uint64_t u64
64-bit unsigned integer.
Definition: types.h:24
uint32_t u32
32-bit unsigned integer.
Definition: types.h:23
Definition: ldr.h:25
Definition: ldr.h:12