PSPSDK 2025-05-14
Loading...
Searching...
No Matches
pspmodulemgr.h
Go to the documentation of this file.
1/*
2 * PSP Software Development Kit - https://github.com/pspdev
3 * -----------------------------------------------------------------------
4 * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
5 *
6 * pspmodulemgr.h - Prototypes to manage modules.
7 *
8 * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
9 * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
10 * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
11 *
12 */
13
14/* Note: Some of the structures, types, and definitions in this file were
15 extrapolated from symbolic debugging information found in the Japanese
16 version of Puzzle Bobble. */
17
18#ifndef __MODLOAD_H__
19#define __MODLOAD_H__
20
21#include <pspkerneltypes.h>
22#include <psptypes.h>
23
28#ifdef __cplusplus
29extern "C" {
30#endif
31
35#define PSP_MEMORY_PARTITION_KERNEL 1
36#define PSP_MEMORY_PARTITION_USER 2
37
47
55
56
68SceUID sceKernelLoadModule(const char *path, int flags, SceKernelLMOption *option);
69
80SceUID sceKernelLoadModuleMs(const char *path, int flags, SceKernelLMOption *option);
81
92
106SceUID sceKernelLoadModuleBufferUsbWlan(SceSize bufsize, void *buf, int flags, SceKernelLMOption *option);
107
119int sceKernelStartModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
120
132int sceKernelStopModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
133
142
152int sceKernelSelfStopUnloadModule(int unknown, SceSize argsize, void *argp);
153
164int sceKernelStopUnloadSelfModule(SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
165
166
167typedef struct SceKernelModuleInfo {
170 char reserved[3];
173 unsigned int entry_addr;
174 unsigned int gp_value;
175 unsigned int text_addr;
176 unsigned int text_size;
177 unsigned int data_size;
178 unsigned int bss_size;
179 /* The following is only available in the v1.5 firmware and above,
180 but as sceKernelQueryModuleInfo is broken in v1.0 is doesn't matter ;) */
181 unsigned short attribute;
182 unsigned char version[2];
183 char name[28];
185
199
210int sceKernelGetModuleIdList(SceUID *readbuf, int readbufsize, int *idcount);
211
219int sceKernelGetModuleIdByAddress(const void *moduleAddr);
220
223#ifdef __cplusplus
224}
225#endif
226
227#endif
int sceKernelStopUnloadSelfModule(SceSize argsize, void *argp, int *status, SceKernelSMOption *option)
Stop and unload the current module.
SceUID sceKernelLoadModuleByID(SceUID fid, int flags, SceKernelLMOption *option)
Load a module from the given file UID.
struct SceKernelLMOption SceKernelLMOption
struct SceKernelSMOption SceKernelSMOption
int sceKernelSelfStopUnloadModule(int unknown, SceSize argsize, void *argp)
Stop and unload the current module.
int sceKernelUnloadModule(SceUID modid)
Unload a stopped module.
SceUID sceKernelLoadModuleBufferUsbWlan(SceSize bufsize, void *buf, int flags, SceKernelLMOption *option)
Load a module from a buffer using the USB/WLAN API.
int sceKernelStartModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option)
Start a loaded module.
SceUID sceKernelLoadModule(const char *path, int flags, SceKernelLMOption *option)
Load a module.
int sceKernelQueryModuleInfo(SceUID modid, SceKernelModuleInfo *info)
Query the information about a loaded module from its UID.
SceUID sceKernelLoadModuleMs(const char *path, int flags, SceKernelLMOption *option)
Load a module from MS.
int sceKernelGetModuleIdByAddress(const void *moduleAddr)
Get the ID of the module occupying the address.
int sceKernelGetModuleIdList(SceUID *readbuf, int readbufsize, int *idcount)
Get a list of module IDs.
struct SceKernelModuleInfo SceKernelModuleInfo
int sceKernelStopModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option)
Stop a running module.
int SceUID
UIDs are used to describe many different kernel objects.
Definition pspkerneltypes.h:24
unsigned int SceSize
Definition psptypes.h:103
Definition pspmodulemgr.h:38
SceSize size
Definition pspmodulemgr.h:39
char creserved[2]
Definition pspmodulemgr.h:45
SceUID mpidtext
Definition pspmodulemgr.h:40
char position
Definition pspmodulemgr.h:43
char access
Definition pspmodulemgr.h:44
SceUID mpiddata
Definition pspmodulemgr.h:41
unsigned int flags
Definition pspmodulemgr.h:42
Definition pspmodulemgr.h:167
unsigned short attribute
Definition pspmodulemgr.h:181
char name[28]
Definition pspmodulemgr.h:183
unsigned int entry_addr
Definition pspmodulemgr.h:173
SceSize size
Definition pspmodulemgr.h:168
int segmentsize[4]
Definition pspmodulemgr.h:172
int segmentaddr[4]
Definition pspmodulemgr.h:171
char reserved[3]
Definition pspmodulemgr.h:170
unsigned int data_size
Definition pspmodulemgr.h:177
unsigned int text_size
Definition pspmodulemgr.h:176
unsigned int bss_size
Definition pspmodulemgr.h:178
unsigned int text_addr
Definition pspmodulemgr.h:175
unsigned int gp_value
Definition pspmodulemgr.h:174
char nsegment
Definition pspmodulemgr.h:169
unsigned char version[2]
Definition pspmodulemgr.h:182
Definition pspmodulemgr.h:48
SceUID mpidstack
Definition pspmodulemgr.h:50
unsigned int attribute
Definition pspmodulemgr.h:53
int priority
Definition pspmodulemgr.h:52
SceSize stacksize
Definition pspmodulemgr.h:51
SceSize size
Definition pspmodulemgr.h:49