PSPSDK 2025-06-26
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
121int sceKernelStartModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
122
134int sceKernelStopModule(SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
135
144
154int sceKernelSelfStopUnloadModule(int unknown, SceSize argsize, void *argp);
155
166int sceKernelStopUnloadSelfModule(SceSize argsize, void *argp, int *status, SceKernelSMOption *option);
167
168
169typedef struct SceKernelModuleInfo {
172 char reserved[3];
175 unsigned int entry_addr;
176 unsigned int gp_value;
177 unsigned int text_addr;
178 unsigned int text_size;
179 unsigned int data_size;
180 unsigned int bss_size;
181 /* The following is only available in the v1.5 firmware and above,
182 but as sceKernelQueryModuleInfo is broken in v1.0 is doesn't matter ;) */
183 unsigned short attribute;
184 unsigned char version[2];
185 char name[28];
187
201
212int sceKernelGetModuleIdList(SceUID *readbuf, int readbufsize, int *idcount);
213
221int sceKernelGetModuleIdByAddress(const void *moduleAddr);
222
225#ifdef __cplusplus
226}
227#endif
228
229#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:169
unsigned short attribute
Definition pspmodulemgr.h:183
char name[28]
Definition pspmodulemgr.h:185
unsigned int entry_addr
Definition pspmodulemgr.h:175
SceSize size
Definition pspmodulemgr.h:170
int segmentsize[4]
Definition pspmodulemgr.h:174
int segmentaddr[4]
Definition pspmodulemgr.h:173
char reserved[3]
Definition pspmodulemgr.h:172
unsigned int data_size
Definition pspmodulemgr.h:179
unsigned int text_size
Definition pspmodulemgr.h:178
unsigned int bss_size
Definition pspmodulemgr.h:180
unsigned int text_addr
Definition pspmodulemgr.h:177
unsigned int gp_value
Definition pspmodulemgr.h:176
char nsegment
Definition pspmodulemgr.h:171
unsigned char version[2]
Definition pspmodulemgr.h:184
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