uofw/include/mediaman.h

109 lines
3.4 KiB
C
Raw Normal View History

/* Copyright (C) 2011, 2012, 2013, 2014 The uOFW team
See the file COPYING for copying permission.
*/
#include "common_header.h"
/** @defgroup UMDDriveManagement UMD Drive Management
* Manages the UMD drive and accessing data on it.
*/
/** @defgroup MediaMan Media_Manager
* @ingroup UMDDriveManagement
*
* Mediaman enables users to access the UMD drive. The drive can be accessed through files or sectors. \n
*
* To access the UMD drive via a file, the PSP provides the ISO-9660 file system. A file can be accessed \n
* by standard I/O functions as in sceIoOpen(), sceIoClose() and sceIoRead(). The general path format is the \n
* following: "device alias name" + "unit number" + ":" + "file path name". Here, the device alias name and \n
* the unit number are set by the sceUmdActivate() function ("disc0:" being the standard). \n
* To open a file, consider this example: \n
* sceIoOpen("disc0:PSP_GAME/EXAMPLEDIR/examplefile.exp"); \n
*
* To access the UMD drive by sectors, the PSP provides a UMD block device driver. You can read the sectors \n
* by using standard I/O functions (i.e. sceIoOpen(), sceIoClose() and sceIoRead()). The general path format \n
* is the following: "block device name" + "unit number" + ':'. Note that the block device is set by the \n
* sceUmdActivate() function to "umd0:". \n
* To open a phyisical device as a device file, consider this example: \n
* sceIoOpen("UMD0:...."); \n
* By default, opening a new physical device sets the first sector to read at sector_0. \n
*
* A sector contains 2048 bytes and reading is performed sector wise. That is, in sceIoRead() the read size \n
* has to be specified in the number of sectors you want to read. \n
*
* @{
*/
#ifndef MEDIAMAN_H
#define MEDIAMAN_H
#ifdef __cplusplus
extern "C" {
#endif
/** UMD file system alias name. */
Add Module Manager (#69) * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * added current work from months ago * src/modulemgr: Cleaned modulemgr directory and added first code. * src/modulemgr: Finished ModuleMgrInit(). * src/modulemgr: ModuleMgrInit(): Added ChunkInit() call. * src/modulemgr: Added _ModuleMgrRebootBefore(). * include/threadman_kernel.h: Added sceKernelSuspendThread(). * src\modulemgr\modulemgr.c: Added functions to reverse * src/modulemgr: Fixed ModuleMgrRebootBefore prefix ModuleMgrRebootBefore was prefixed with _ although it's not an internal function * src/modulmgr: Added ModuleMgrRebootPhase(). * src/modulemgr: Added exe_thread(). * src/modulemgr: Added_UnloadModule(). * src/modulemgr: Fixed a mistake in_UnloadModule(). * src/modulemgr: Added sceKernelGetModuleId(). * src/modulemgr: sceKernelGetModuleId(): Clarified variable name and type. * src/modulemgr: sceKernelGetModuleId(): Changed return type (forgot it in last commit) for clarification reasons. * src/modulemgr: sceKernelGetModuleId(): Fixed K1 register handling. * include/iofilemgr_kernel.h: Added more sceIoOpen() flags. * src/modulemgr: Added sceKernelGetModuleIdByAddress() * src/modulemgr: Documentation for sceKernelGetModuleId() * src/modulemgr: sceKernelGetModuleIdByAddress(): Fixed pspK1PtrOk() argument * src/modulemgr: Added sceKernelGetModuleGPByAddress() * src/modulemgr: Fixed missing const statement in arguments * include/iofilemgr_kernel.h: Added sceKernelLoadModuleForLoadExecForUser(). * src/modulemgr.c: sceKernelGetModuleGPByAddress(): Added retVal declaration. * src/modulemgr.c: sceKernelLoadModuleForLoadExecForUser(): Added back SCeUID fd declaration (it was eaten by some ghosts I guess). * src/modulemgr: Added sceKernelGetModuleIdList() * src/modulemgr: Added sceKernelLoadModule() * src/modulemgr: sceKernelLoadModuleForLoadExecForUser(): Fixed pointer issues, added some comments * src/modulemgr: sceKernelLoadModule(): Fixed missing structure field set * src/modulemgr: sceKernelLoadModuleForLoadExecForUser() and sceKernelLoadModule(): Added documentation * src/modulemgr: struct SceKernelLMOption: Added documentation * src/modulemgr: sceKernelLoadModule(): Fixed return value * src/modulemgr.c: Removed SceKernelLMOption declaration (it is already declared in include/modulemgr_options.h). * include/modulemgr_options.h: Added back the doxygen documentation for SceKernelLMOption. * src/modulemgr.c: Added sceKernelLoadModuleByID(). * src/modulemgr.c: sceKernelLoadModule(): Fixed ioctl command. * src/modulemgr.c: Renamed sceKernelLoadModule() -> sceKernelLoadModuleForUser(). * src/modulemgr.c: sceKernelLoadModuleForUser(): Fixed ioctl command (another one). * src/modulemgr: Added sceKernelQueryModuleInfo() * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs2(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs3(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs4(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs5(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs6(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_8DD336D4(). * src/modulemgr: Simplified ModuleMgrRebootBefore(() * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecNpDrm(). * src/modulemgr/modulemgr.c: Minor line indentation corrections. * src/modulemgr/modulemgr.c: option-> pOpt name change in several functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSHByID(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDForKernel(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitGame() and sceKernelLoadModuleBufferMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferApp(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlan(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlanDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitVSHVSH(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByName(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByAddress(). * src/modulemgr/modulemgr.c: Added sceKernelSetNpDrmGetModuleKeyFunction(). * src/modulemgr/modulemgr.c: Added sceKernelNpDrmGetModuleKey(). * src/modulemgr/modulemgr.c: Added sceKernelModuleMgrMode(). * src/modulemgr/modulemgr.c: Added _StartModule(). * src/modulemgr/modulemgr.c: Added __StopModule(). * src/modulemgr/modulemgr.c: Added _PrologueModule(). * src/modulemgr/modulemgr.c: Added _ModuleRegisterLibraries(). * src/modulemgr/modulemgr.c: Fixed error in _ModuleReleaseLibraries(). * Moved NID_MODULE_* NIDs from src/loadcore/nid.h -> include/modulemgr_nids.h. * src/modulemgr/modulemgr.c: Added _ProcessModuleExportEnt(). * include/loadcore.h: Renamed SceLoadCoreExecFileInfo.unk104 -> SceLoadCoreExecFileInfo.secureInstallId. * include/sysmem_user.h: SceSysMemBlockType: Added more members. * src/modulemgr/modulemgr.c: Added _LoadModule(). * src/modulemgr/modulemgr.c: Added _PartitionCheck(). * src/modulemgr/modulemgr.c: Added _CheckSkipPbpHeader(). * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers (2) * src/modulemgr/modulemgr.c: Fixed mistake in sceKernelQueryModuleInfo(). * src/modulemgr/modulemgr.c: More small fixes and code cleanup. * Modulemgr: Remove already reverse-engineered function * src/modulemgr/modulemgr.c: Fixed a few compilation issues. * src/modulemgr: Broke up modulemgr.c into several .c files. * modulemgr: Reverse _CheckOverride() - Move _CheckOverride() into a separate file - Reverse _CheckOverride() - Add the rules for overriding modules' file descriptors * src/modulemgr/modulemgr.c: Fixed _CheckSkipPbpHeader. * src/modulemgr/override.c: Fixed syntax errors. * modulemgr: Fix more mistakes in override * src/modulemgr: Added pbp.h ( .PBP header description). * src/modulemgr/modulemgr.c: Added _RelocateModule(). * src/modulemgr/modulemgr.c: Fixed mistake in ModuleRegisterLibraries(). * include/sysmem_kernel.h: Updated prototype of sceKernelGetId(). * src/modulemgr/modulemgr.c: Added ModuleMgrForUser_CDE1C1FE(). * src/modulemgr/modulemgr.c: Added allocate_module_block(). * src/modulemgr/override.c: Fixed mistakes in _CheckOverride() and added more documentation about its purpose. * modulemgr/rebootModule: Replace hexa with constant * modulemgr/modulemgr: ModuleMgrForUser_CDE1C1FE(): s32 -> SceBool * modulemgr: Fixes, re-writes, improved naming, added some documentation. It does not compile yet! * modulemgr: Make it compilable. * Removed include/modulemgr.h. * src/modulemgr: Added missing Makefile. * modulemgr: Updated its static libraries to reflect name changes of its exported functions. * modulemgr: Made Loadcore and Loadexec compilable again. They were broken after changes have been made for modulemgr. * modulemgr: Fixed a few mistakes. * modulemgr: More fixes and updated some documentation. * modulemgr: Added .PBP file layout and PARAM.SFO information. * include/modulemgr_init.h: Added more SCE_EXEC_FILE_* members. * include/common/errors.h: Added error-value format description. * modulemgr: More fixes. Also added debug code for modulemgr (dbg.c). It will be removed before merging into 'master'. * modulemgr: Added missing debug code. * src/modulemgr: Fixed more errors. * update .gitignore with version on master * update .gitignore * update .gitignore * Module manager: Remove debug code * Revert changes made to debug header. * Add modulemgr to global makefile. Co-authored-by: devnoname120 <devnoname120@gmail.com> Co-authored-by: Felix-Dev <FelixDev91.gmail.com> Co-authored-by: Kern Walster <wals0323@umn.edu> Co-authored-by: Martin Charles <martincharles07@gmail.com> Co-authored-by: devnoname120 <devnoname120+gh@gmail.com>
2021-01-02 15:30:44 +00:00
#define SCE_UMD_ALIAS_NAME "disc0:"
/** LBA raw sector access. */
#define SCE_UMD_LBA_DEVICE_NAME "umd1:"
/**
* SCE UMD disc states.
*/
enum SceUmdDiscStates {
/** The UMD driver has been initiated. */
Add Module Manager (#69) * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * added current work from months ago * src/modulemgr: Cleaned modulemgr directory and added first code. * src/modulemgr: Finished ModuleMgrInit(). * src/modulemgr: ModuleMgrInit(): Added ChunkInit() call. * src/modulemgr: Added _ModuleMgrRebootBefore(). * include/threadman_kernel.h: Added sceKernelSuspendThread(). * src\modulemgr\modulemgr.c: Added functions to reverse * src/modulemgr: Fixed ModuleMgrRebootBefore prefix ModuleMgrRebootBefore was prefixed with _ although it's not an internal function * src/modulmgr: Added ModuleMgrRebootPhase(). * src/modulemgr: Added exe_thread(). * src/modulemgr: Added_UnloadModule(). * src/modulemgr: Fixed a mistake in_UnloadModule(). * src/modulemgr: Added sceKernelGetModuleId(). * src/modulemgr: sceKernelGetModuleId(): Clarified variable name and type. * src/modulemgr: sceKernelGetModuleId(): Changed return type (forgot it in last commit) for clarification reasons. * src/modulemgr: sceKernelGetModuleId(): Fixed K1 register handling. * include/iofilemgr_kernel.h: Added more sceIoOpen() flags. * src/modulemgr: Added sceKernelGetModuleIdByAddress() * src/modulemgr: Documentation for sceKernelGetModuleId() * src/modulemgr: sceKernelGetModuleIdByAddress(): Fixed pspK1PtrOk() argument * src/modulemgr: Added sceKernelGetModuleGPByAddress() * src/modulemgr: Fixed missing const statement in arguments * include/iofilemgr_kernel.h: Added sceKernelLoadModuleForLoadExecForUser(). * src/modulemgr.c: sceKernelGetModuleGPByAddress(): Added retVal declaration. * src/modulemgr.c: sceKernelLoadModuleForLoadExecForUser(): Added back SCeUID fd declaration (it was eaten by some ghosts I guess). * src/modulemgr: Added sceKernelGetModuleIdList() * src/modulemgr: Added sceKernelLoadModule() * src/modulemgr: sceKernelLoadModuleForLoadExecForUser(): Fixed pointer issues, added some comments * src/modulemgr: sceKernelLoadModule(): Fixed missing structure field set * src/modulemgr: sceKernelLoadModuleForLoadExecForUser() and sceKernelLoadModule(): Added documentation * src/modulemgr: struct SceKernelLMOption: Added documentation * src/modulemgr: sceKernelLoadModule(): Fixed return value * src/modulemgr.c: Removed SceKernelLMOption declaration (it is already declared in include/modulemgr_options.h). * include/modulemgr_options.h: Added back the doxygen documentation for SceKernelLMOption. * src/modulemgr.c: Added sceKernelLoadModuleByID(). * src/modulemgr.c: sceKernelLoadModule(): Fixed ioctl command. * src/modulemgr.c: Renamed sceKernelLoadModule() -> sceKernelLoadModuleForUser(). * src/modulemgr.c: sceKernelLoadModuleForUser(): Fixed ioctl command (another one). * src/modulemgr: Added sceKernelQueryModuleInfo() * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs2(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs3(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs4(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs5(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs6(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_8DD336D4(). * src/modulemgr: Simplified ModuleMgrRebootBefore(() * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecNpDrm(). * src/modulemgr/modulemgr.c: Minor line indentation corrections. * src/modulemgr/modulemgr.c: option-> pOpt name change in several functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSHByID(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDForKernel(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitGame() and sceKernelLoadModuleBufferMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferApp(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlan(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlanDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitVSHVSH(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByName(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByAddress(). * src/modulemgr/modulemgr.c: Added sceKernelSetNpDrmGetModuleKeyFunction(). * src/modulemgr/modulemgr.c: Added sceKernelNpDrmGetModuleKey(). * src/modulemgr/modulemgr.c: Added sceKernelModuleMgrMode(). * src/modulemgr/modulemgr.c: Added _StartModule(). * src/modulemgr/modulemgr.c: Added __StopModule(). * src/modulemgr/modulemgr.c: Added _PrologueModule(). * src/modulemgr/modulemgr.c: Added _ModuleRegisterLibraries(). * src/modulemgr/modulemgr.c: Fixed error in _ModuleReleaseLibraries(). * Moved NID_MODULE_* NIDs from src/loadcore/nid.h -> include/modulemgr_nids.h. * src/modulemgr/modulemgr.c: Added _ProcessModuleExportEnt(). * include/loadcore.h: Renamed SceLoadCoreExecFileInfo.unk104 -> SceLoadCoreExecFileInfo.secureInstallId. * include/sysmem_user.h: SceSysMemBlockType: Added more members. * src/modulemgr/modulemgr.c: Added _LoadModule(). * src/modulemgr/modulemgr.c: Added _PartitionCheck(). * src/modulemgr/modulemgr.c: Added _CheckSkipPbpHeader(). * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers (2) * src/modulemgr/modulemgr.c: Fixed mistake in sceKernelQueryModuleInfo(). * src/modulemgr/modulemgr.c: More small fixes and code cleanup. * Modulemgr: Remove already reverse-engineered function * src/modulemgr/modulemgr.c: Fixed a few compilation issues. * src/modulemgr: Broke up modulemgr.c into several .c files. * modulemgr: Reverse _CheckOverride() - Move _CheckOverride() into a separate file - Reverse _CheckOverride() - Add the rules for overriding modules' file descriptors * src/modulemgr/modulemgr.c: Fixed _CheckSkipPbpHeader. * src/modulemgr/override.c: Fixed syntax errors. * modulemgr: Fix more mistakes in override * src/modulemgr: Added pbp.h ( .PBP header description). * src/modulemgr/modulemgr.c: Added _RelocateModule(). * src/modulemgr/modulemgr.c: Fixed mistake in ModuleRegisterLibraries(). * include/sysmem_kernel.h: Updated prototype of sceKernelGetId(). * src/modulemgr/modulemgr.c: Added ModuleMgrForUser_CDE1C1FE(). * src/modulemgr/modulemgr.c: Added allocate_module_block(). * src/modulemgr/override.c: Fixed mistakes in _CheckOverride() and added more documentation about its purpose. * modulemgr/rebootModule: Replace hexa with constant * modulemgr/modulemgr: ModuleMgrForUser_CDE1C1FE(): s32 -> SceBool * modulemgr: Fixes, re-writes, improved naming, added some documentation. It does not compile yet! * modulemgr: Make it compilable. * Removed include/modulemgr.h. * src/modulemgr: Added missing Makefile. * modulemgr: Updated its static libraries to reflect name changes of its exported functions. * modulemgr: Made Loadcore and Loadexec compilable again. They were broken after changes have been made for modulemgr. * modulemgr: Fixed a few mistakes. * modulemgr: More fixes and updated some documentation. * modulemgr: Added .PBP file layout and PARAM.SFO information. * include/modulemgr_init.h: Added more SCE_EXEC_FILE_* members. * include/common/errors.h: Added error-value format description. * modulemgr: More fixes. Also added debug code for modulemgr (dbg.c). It will be removed before merging into 'master'. * modulemgr: Added missing debug code. * src/modulemgr: Fixed more errors. * update .gitignore with version on master * update .gitignore * update .gitignore * Module manager: Remove debug code * Revert changes made to debug header. * Add modulemgr to global makefile. Co-authored-by: devnoname120 <devnoname120@gmail.com> Co-authored-by: Felix-Dev <FelixDev91.gmail.com> Co-authored-by: Kern Walster <wals0323@umn.edu> Co-authored-by: Martin Charles <martincharles07@gmail.com> Co-authored-by: devnoname120 <devnoname120+gh@gmail.com>
2021-01-02 15:30:44 +00:00
SCE_UMD_INIT = (0),
/** A medium has been removed. */
SCE_UMD_MEDIA_OUT = (1 << 0),
/** A medium has been inserted. */
SCE_UMD_MEDIA_IN = (1 << 1),
/** The inserted medium has changed. */
SCE_UMD_MEDIA_CHG = (1 << 2),
/** The UMD device is not ready. */
SCE_UMD_NOT_READY = (1 << 3),
/** The UMD device is ready. */
Add Module Manager (#69) * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * added current work from months ago * src/modulemgr: Cleaned modulemgr directory and added first code. * src/modulemgr: Finished ModuleMgrInit(). * src/modulemgr: ModuleMgrInit(): Added ChunkInit() call. * src/modulemgr: Added _ModuleMgrRebootBefore(). * include/threadman_kernel.h: Added sceKernelSuspendThread(). * src\modulemgr\modulemgr.c: Added functions to reverse * src/modulemgr: Fixed ModuleMgrRebootBefore prefix ModuleMgrRebootBefore was prefixed with _ although it's not an internal function * src/modulmgr: Added ModuleMgrRebootPhase(). * src/modulemgr: Added exe_thread(). * src/modulemgr: Added_UnloadModule(). * src/modulemgr: Fixed a mistake in_UnloadModule(). * src/modulemgr: Added sceKernelGetModuleId(). * src/modulemgr: sceKernelGetModuleId(): Clarified variable name and type. * src/modulemgr: sceKernelGetModuleId(): Changed return type (forgot it in last commit) for clarification reasons. * src/modulemgr: sceKernelGetModuleId(): Fixed K1 register handling. * include/iofilemgr_kernel.h: Added more sceIoOpen() flags. * src/modulemgr: Added sceKernelGetModuleIdByAddress() * src/modulemgr: Documentation for sceKernelGetModuleId() * src/modulemgr: sceKernelGetModuleIdByAddress(): Fixed pspK1PtrOk() argument * src/modulemgr: Added sceKernelGetModuleGPByAddress() * src/modulemgr: Fixed missing const statement in arguments * include/iofilemgr_kernel.h: Added sceKernelLoadModuleForLoadExecForUser(). * src/modulemgr.c: sceKernelGetModuleGPByAddress(): Added retVal declaration. * src/modulemgr.c: sceKernelLoadModuleForLoadExecForUser(): Added back SCeUID fd declaration (it was eaten by some ghosts I guess). * src/modulemgr: Added sceKernelGetModuleIdList() * src/modulemgr: Added sceKernelLoadModule() * src/modulemgr: sceKernelLoadModuleForLoadExecForUser(): Fixed pointer issues, added some comments * src/modulemgr: sceKernelLoadModule(): Fixed missing structure field set * src/modulemgr: sceKernelLoadModuleForLoadExecForUser() and sceKernelLoadModule(): Added documentation * src/modulemgr: struct SceKernelLMOption: Added documentation * src/modulemgr: sceKernelLoadModule(): Fixed return value * src/modulemgr.c: Removed SceKernelLMOption declaration (it is already declared in include/modulemgr_options.h). * include/modulemgr_options.h: Added back the doxygen documentation for SceKernelLMOption. * src/modulemgr.c: Added sceKernelLoadModuleByID(). * src/modulemgr.c: sceKernelLoadModule(): Fixed ioctl command. * src/modulemgr.c: Renamed sceKernelLoadModule() -> sceKernelLoadModuleForUser(). * src/modulemgr.c: sceKernelLoadModuleForUser(): Fixed ioctl command (another one). * src/modulemgr: Added sceKernelQueryModuleInfo() * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs2(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs3(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs4(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs5(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs6(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_8DD336D4(). * src/modulemgr: Simplified ModuleMgrRebootBefore(() * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecNpDrm(). * src/modulemgr/modulemgr.c: Minor line indentation corrections. * src/modulemgr/modulemgr.c: option-> pOpt name change in several functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSHByID(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDForKernel(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitGame() and sceKernelLoadModuleBufferMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferApp(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlan(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlanDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitVSHVSH(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByName(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByAddress(). * src/modulemgr/modulemgr.c: Added sceKernelSetNpDrmGetModuleKeyFunction(). * src/modulemgr/modulemgr.c: Added sceKernelNpDrmGetModuleKey(). * src/modulemgr/modulemgr.c: Added sceKernelModuleMgrMode(). * src/modulemgr/modulemgr.c: Added _StartModule(). * src/modulemgr/modulemgr.c: Added __StopModule(). * src/modulemgr/modulemgr.c: Added _PrologueModule(). * src/modulemgr/modulemgr.c: Added _ModuleRegisterLibraries(). * src/modulemgr/modulemgr.c: Fixed error in _ModuleReleaseLibraries(). * Moved NID_MODULE_* NIDs from src/loadcore/nid.h -> include/modulemgr_nids.h. * src/modulemgr/modulemgr.c: Added _ProcessModuleExportEnt(). * include/loadcore.h: Renamed SceLoadCoreExecFileInfo.unk104 -> SceLoadCoreExecFileInfo.secureInstallId. * include/sysmem_user.h: SceSysMemBlockType: Added more members. * src/modulemgr/modulemgr.c: Added _LoadModule(). * src/modulemgr/modulemgr.c: Added _PartitionCheck(). * src/modulemgr/modulemgr.c: Added _CheckSkipPbpHeader(). * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers (2) * src/modulemgr/modulemgr.c: Fixed mistake in sceKernelQueryModuleInfo(). * src/modulemgr/modulemgr.c: More small fixes and code cleanup. * Modulemgr: Remove already reverse-engineered function * src/modulemgr/modulemgr.c: Fixed a few compilation issues. * src/modulemgr: Broke up modulemgr.c into several .c files. * modulemgr: Reverse _CheckOverride() - Move _CheckOverride() into a separate file - Reverse _CheckOverride() - Add the rules for overriding modules' file descriptors * src/modulemgr/modulemgr.c: Fixed _CheckSkipPbpHeader. * src/modulemgr/override.c: Fixed syntax errors. * modulemgr: Fix more mistakes in override * src/modulemgr: Added pbp.h ( .PBP header description). * src/modulemgr/modulemgr.c: Added _RelocateModule(). * src/modulemgr/modulemgr.c: Fixed mistake in ModuleRegisterLibraries(). * include/sysmem_kernel.h: Updated prototype of sceKernelGetId(). * src/modulemgr/modulemgr.c: Added ModuleMgrForUser_CDE1C1FE(). * src/modulemgr/modulemgr.c: Added allocate_module_block(). * src/modulemgr/override.c: Fixed mistakes in _CheckOverride() and added more documentation about its purpose. * modulemgr/rebootModule: Replace hexa with constant * modulemgr/modulemgr: ModuleMgrForUser_CDE1C1FE(): s32 -> SceBool * modulemgr: Fixes, re-writes, improved naming, added some documentation. It does not compile yet! * modulemgr: Make it compilable. * Removed include/modulemgr.h. * src/modulemgr: Added missing Makefile. * modulemgr: Updated its static libraries to reflect name changes of its exported functions. * modulemgr: Made Loadcore and Loadexec compilable again. They were broken after changes have been made for modulemgr. * modulemgr: Fixed a few mistakes. * modulemgr: More fixes and updated some documentation. * modulemgr: Added .PBP file layout and PARAM.SFO information. * include/modulemgr_init.h: Added more SCE_EXEC_FILE_* members. * include/common/errors.h: Added error-value format description. * modulemgr: More fixes. Also added debug code for modulemgr (dbg.c). It will be removed before merging into 'master'. * modulemgr: Added missing debug code. * src/modulemgr: Fixed more errors. * update .gitignore with version on master * update .gitignore * update .gitignore * Module manager: Remove debug code * Revert changes made to debug header. * Add modulemgr to global makefile. Co-authored-by: devnoname120 <devnoname120@gmail.com> Co-authored-by: Felix-Dev <FelixDev91.gmail.com> Co-authored-by: Kern Walster <wals0323@umn.edu> Co-authored-by: Martin Charles <martincharles07@gmail.com> Co-authored-by: devnoname120 <devnoname120+gh@gmail.com>
2021-01-02 15:30:44 +00:00
SCE_UMD_READY = (1 << 4),
/** The inserted medium is readable. */
SCE_UMD_READABLE = (1 << 5),
};
/**
* UMD drive power modes.
*/
enum SceUmdDevicePowerModes {
/** Set the UMD drive's power state to ON. */
SCE_UMD_MODE_POWER_ON = (1 << 0),
/** Set the UMD drive's power state to the cuurent power state. */
SCE_UMD_MODE_POWER_CUR = (1 << 1),
};
enum SceUmdMediaTypeFormats {
/** Unknown format. */
SCE_UMD_FMT_UNKNOWN = 0x00000,
/** Game format. */
SCE_UMD_FMT_GAME = 0x00010,
/** Video format. */
SCE_UMD_FMT_VIDEO = 0x00020,
/** Audio format. */
SCE_UMD_FMT_AUDIO = 0x00040,
/** Cleaning format. */
SCE_UMD_FMT_CLEAN = 0x00080,
};
typedef struct {
/** The size of the used SceUmdDiscInfo version. uiSize = sizeof(SceUmdDiscInfo). */
Add Module Manager (#69) * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * added current work from months ago * src/modulemgr: Cleaned modulemgr directory and added first code. * src/modulemgr: Finished ModuleMgrInit(). * src/modulemgr: ModuleMgrInit(): Added ChunkInit() call. * src/modulemgr: Added _ModuleMgrRebootBefore(). * include/threadman_kernel.h: Added sceKernelSuspendThread(). * src\modulemgr\modulemgr.c: Added functions to reverse * src/modulemgr: Fixed ModuleMgrRebootBefore prefix ModuleMgrRebootBefore was prefixed with _ although it's not an internal function * src/modulmgr: Added ModuleMgrRebootPhase(). * src/modulemgr: Added exe_thread(). * src/modulemgr: Added_UnloadModule(). * src/modulemgr: Fixed a mistake in_UnloadModule(). * src/modulemgr: Added sceKernelGetModuleId(). * src/modulemgr: sceKernelGetModuleId(): Clarified variable name and type. * src/modulemgr: sceKernelGetModuleId(): Changed return type (forgot it in last commit) for clarification reasons. * src/modulemgr: sceKernelGetModuleId(): Fixed K1 register handling. * include/iofilemgr_kernel.h: Added more sceIoOpen() flags. * src/modulemgr: Added sceKernelGetModuleIdByAddress() * src/modulemgr: Documentation for sceKernelGetModuleId() * src/modulemgr: sceKernelGetModuleIdByAddress(): Fixed pspK1PtrOk() argument * src/modulemgr: Added sceKernelGetModuleGPByAddress() * src/modulemgr: Fixed missing const statement in arguments * include/iofilemgr_kernel.h: Added sceKernelLoadModuleForLoadExecForUser(). * src/modulemgr.c: sceKernelGetModuleGPByAddress(): Added retVal declaration. * src/modulemgr.c: sceKernelLoadModuleForLoadExecForUser(): Added back SCeUID fd declaration (it was eaten by some ghosts I guess). * src/modulemgr: Added sceKernelGetModuleIdList() * src/modulemgr: Added sceKernelLoadModule() * src/modulemgr: sceKernelLoadModuleForLoadExecForUser(): Fixed pointer issues, added some comments * src/modulemgr: sceKernelLoadModule(): Fixed missing structure field set * src/modulemgr: sceKernelLoadModuleForLoadExecForUser() and sceKernelLoadModule(): Added documentation * src/modulemgr: struct SceKernelLMOption: Added documentation * src/modulemgr: sceKernelLoadModule(): Fixed return value * src/modulemgr.c: Removed SceKernelLMOption declaration (it is already declared in include/modulemgr_options.h). * include/modulemgr_options.h: Added back the doxygen documentation for SceKernelLMOption. * src/modulemgr.c: Added sceKernelLoadModuleByID(). * src/modulemgr.c: sceKernelLoadModule(): Fixed ioctl command. * src/modulemgr.c: Renamed sceKernelLoadModule() -> sceKernelLoadModuleForUser(). * src/modulemgr.c: sceKernelLoadModuleForUser(): Fixed ioctl command (another one). * src/modulemgr: Added sceKernelQueryModuleInfo() * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs2(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs3(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs4(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs5(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs6(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_8DD336D4(). * src/modulemgr: Simplified ModuleMgrRebootBefore(() * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecNpDrm(). * src/modulemgr/modulemgr.c: Minor line indentation corrections. * src/modulemgr/modulemgr.c: option-> pOpt name change in several functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSHByID(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDForKernel(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitGame() and sceKernelLoadModuleBufferMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferApp(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlan(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlanDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitVSHVSH(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByName(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByAddress(). * src/modulemgr/modulemgr.c: Added sceKernelSetNpDrmGetModuleKeyFunction(). * src/modulemgr/modulemgr.c: Added sceKernelNpDrmGetModuleKey(). * src/modulemgr/modulemgr.c: Added sceKernelModuleMgrMode(). * src/modulemgr/modulemgr.c: Added _StartModule(). * src/modulemgr/modulemgr.c: Added __StopModule(). * src/modulemgr/modulemgr.c: Added _PrologueModule(). * src/modulemgr/modulemgr.c: Added _ModuleRegisterLibraries(). * src/modulemgr/modulemgr.c: Fixed error in _ModuleReleaseLibraries(). * Moved NID_MODULE_* NIDs from src/loadcore/nid.h -> include/modulemgr_nids.h. * src/modulemgr/modulemgr.c: Added _ProcessModuleExportEnt(). * include/loadcore.h: Renamed SceLoadCoreExecFileInfo.unk104 -> SceLoadCoreExecFileInfo.secureInstallId. * include/sysmem_user.h: SceSysMemBlockType: Added more members. * src/modulemgr/modulemgr.c: Added _LoadModule(). * src/modulemgr/modulemgr.c: Added _PartitionCheck(). * src/modulemgr/modulemgr.c: Added _CheckSkipPbpHeader(). * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers (2) * src/modulemgr/modulemgr.c: Fixed mistake in sceKernelQueryModuleInfo(). * src/modulemgr/modulemgr.c: More small fixes and code cleanup. * Modulemgr: Remove already reverse-engineered function * src/modulemgr/modulemgr.c: Fixed a few compilation issues. * src/modulemgr: Broke up modulemgr.c into several .c files. * modulemgr: Reverse _CheckOverride() - Move _CheckOverride() into a separate file - Reverse _CheckOverride() - Add the rules for overriding modules' file descriptors * src/modulemgr/modulemgr.c: Fixed _CheckSkipPbpHeader. * src/modulemgr/override.c: Fixed syntax errors. * modulemgr: Fix more mistakes in override * src/modulemgr: Added pbp.h ( .PBP header description). * src/modulemgr/modulemgr.c: Added _RelocateModule(). * src/modulemgr/modulemgr.c: Fixed mistake in ModuleRegisterLibraries(). * include/sysmem_kernel.h: Updated prototype of sceKernelGetId(). * src/modulemgr/modulemgr.c: Added ModuleMgrForUser_CDE1C1FE(). * src/modulemgr/modulemgr.c: Added allocate_module_block(). * src/modulemgr/override.c: Fixed mistakes in _CheckOverride() and added more documentation about its purpose. * modulemgr/rebootModule: Replace hexa with constant * modulemgr/modulemgr: ModuleMgrForUser_CDE1C1FE(): s32 -> SceBool * modulemgr: Fixes, re-writes, improved naming, added some documentation. It does not compile yet! * modulemgr: Make it compilable. * Removed include/modulemgr.h. * src/modulemgr: Added missing Makefile. * modulemgr: Updated its static libraries to reflect name changes of its exported functions. * modulemgr: Made Loadcore and Loadexec compilable again. They were broken after changes have been made for modulemgr. * modulemgr: Fixed a few mistakes. * modulemgr: More fixes and updated some documentation. * modulemgr: Added .PBP file layout and PARAM.SFO information. * include/modulemgr_init.h: Added more SCE_EXEC_FILE_* members. * include/common/errors.h: Added error-value format description. * modulemgr: More fixes. Also added debug code for modulemgr (dbg.c). It will be removed before merging into 'master'. * modulemgr: Added missing debug code. * src/modulemgr: Fixed more errors. * update .gitignore with version on master * update .gitignore * update .gitignore * Module manager: Remove debug code * Revert changes made to debug header. * Add modulemgr to global makefile. Co-authored-by: devnoname120 <devnoname120@gmail.com> Co-authored-by: Felix-Dev <FelixDev91.gmail.com> Co-authored-by: Kern Walster <wals0323@umn.edu> Co-authored-by: Martin Charles <martincharles07@gmail.com> Co-authored-by: devnoname120 <devnoname120+gh@gmail.com>
2021-01-02 15:30:44 +00:00
SceSize uiSize;
/** Defines the media type of the UMD. One of ::SceUmdMediaTypeFormats. */
Add Module Manager (#69) * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * added current work from months ago * src/modulemgr: Cleaned modulemgr directory and added first code. * src/modulemgr: Finished ModuleMgrInit(). * src/modulemgr: ModuleMgrInit(): Added ChunkInit() call. * src/modulemgr: Added _ModuleMgrRebootBefore(). * include/threadman_kernel.h: Added sceKernelSuspendThread(). * src\modulemgr\modulemgr.c: Added functions to reverse * src/modulemgr: Fixed ModuleMgrRebootBefore prefix ModuleMgrRebootBefore was prefixed with _ although it's not an internal function * src/modulmgr: Added ModuleMgrRebootPhase(). * src/modulemgr: Added exe_thread(). * src/modulemgr: Added_UnloadModule(). * src/modulemgr: Fixed a mistake in_UnloadModule(). * src/modulemgr: Added sceKernelGetModuleId(). * src/modulemgr: sceKernelGetModuleId(): Clarified variable name and type. * src/modulemgr: sceKernelGetModuleId(): Changed return type (forgot it in last commit) for clarification reasons. * src/modulemgr: sceKernelGetModuleId(): Fixed K1 register handling. * include/iofilemgr_kernel.h: Added more sceIoOpen() flags. * src/modulemgr: Added sceKernelGetModuleIdByAddress() * src/modulemgr: Documentation for sceKernelGetModuleId() * src/modulemgr: sceKernelGetModuleIdByAddress(): Fixed pspK1PtrOk() argument * src/modulemgr: Added sceKernelGetModuleGPByAddress() * src/modulemgr: Fixed missing const statement in arguments * include/iofilemgr_kernel.h: Added sceKernelLoadModuleForLoadExecForUser(). * src/modulemgr.c: sceKernelGetModuleGPByAddress(): Added retVal declaration. * src/modulemgr.c: sceKernelLoadModuleForLoadExecForUser(): Added back SCeUID fd declaration (it was eaten by some ghosts I guess). * src/modulemgr: Added sceKernelGetModuleIdList() * src/modulemgr: Added sceKernelLoadModule() * src/modulemgr: sceKernelLoadModuleForLoadExecForUser(): Fixed pointer issues, added some comments * src/modulemgr: sceKernelLoadModule(): Fixed missing structure field set * src/modulemgr: sceKernelLoadModuleForLoadExecForUser() and sceKernelLoadModule(): Added documentation * src/modulemgr: struct SceKernelLMOption: Added documentation * src/modulemgr: sceKernelLoadModule(): Fixed return value * src/modulemgr.c: Removed SceKernelLMOption declaration (it is already declared in include/modulemgr_options.h). * include/modulemgr_options.h: Added back the doxygen documentation for SceKernelLMOption. * src/modulemgr.c: Added sceKernelLoadModuleByID(). * src/modulemgr.c: sceKernelLoadModule(): Fixed ioctl command. * src/modulemgr.c: Renamed sceKernelLoadModule() -> sceKernelLoadModuleForUser(). * src/modulemgr.c: sceKernelLoadModuleForUser(): Fixed ioctl command (another one). * src/modulemgr: Added sceKernelQueryModuleInfo() * src/modulemgr: sceKernelQueryModuleInfo(): Improved documentation * src/modulemgr: Fixed various incorrect SDK versions * src/modulemgr.c: sceKernelQueryModuleInfo(): Fixed two syntax errors. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed wrong handling of various sceIoIoctl() status values. * src/modulemgr/modulemgr.c: Added missing sysmem_kernel.h include. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr/modulemgr.c: Fixed register K1 permission checks in various user-exported loadModule() functions. * src/modulemgr/modulemgr.c: sceKernelLoadModuleForUser(): Fixed handling of parameter "opt" when being NULL. * src/modulemgr/modulemgr.c: Fixed sdkVersion return codes in various LoadModule() functions. * include/iofilemgr_kernel.h: Added back SCE_O_UNKNOWN0. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleDNAS(). * src/modulemgr: Updated and added documentation - Added documentation for sceKernelLoadModuleById(), sceKernelLoadModuleWithBlockOffset(), and sceKernelLoadModuleDNAS - Updated documentation of ModuleMgrForKernel_2B7FC10D(), sceKernelLoadModule(), sceKernelGetModuleIdList(), sceKernelQueryModuleInfo(), sceKernelGetModuleId(), sceKernelGetModuleIdByAddress(), and sceKernelGetModuleGPByAddress() * src/modulemgr: Updated documentation: case when SCE_ERROR_KERNEL_ILLEGAL_ADDRESS is returned Affects sceKernelLoadModuleWithBlockOffset() and sceKernelLoadModuleByIDWithBlockOffset(). * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot a word in documentation * src/modulemgr: sceKernelLoadModuleDNAS(): Forgot quotation marks in documentation * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleNpDrm(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelSelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelStopModule(). * src/modulemgr: sceKernelLoadModuleNpDrm(): Fixed a pointer issue * include/common/memory.h: Added pspClearMemory*() functions. These functions should be used as an alternative to corresponding memset calls. * src/modulemgr/modulemgr.c: Replaced the variable <modParams> clearing-for-loops with the pspClearMemory32() function. * src/modulemgr: sceKernelLoadModuleNpDrm(): Added documentation * src/modulemgr: Added sceKernelLoadModuleBufferUsbWlan() * src/modulemgr: sceKernelLoadModuleBufferUsbWlan(): Fixed return type * src/modulemgr: Added _LoadModuleByBufferID() * src/modulemgr: Added _start_exe_thread() * src/modulemgr: Added sub_00007620() * src/modulemgr: Added sub_00007698() * src/modulemgr: Rename sub_00007620() to _CheckOption() * src/modulemgr: _CheckOption(): Fix return type * src/modulemgr: Added _SelfStopUnloadModule() * src/modulemgr/: Added loadModuleChecks_inline.h containing commonly used checks in loadModule() functions. The check functions introduced there should be used in loadModule() functions. * src/modulemgr/modulemgr.c: Preparations for the use of _check functions(). * src/modulemgr/modulemgr.c: Removed _CheckOptions(). Its equivalent function is _checkLMOptionConditions() defined in loadModuleChecks_inline.h. * src/modulemgr/modulemgr.c: loadModule _check() functions are now being used. * src/modulemgr/loadModuleChecks_inline.h: Removed _setupChecks() and _terminateChecks(). * src/modulemgr/modulemgr.c: Fixed _SelfStopUnloadModule(). * src/modulemgr/modulemgr.c: Forgot to fix pointer errors in _SelfStopUnloadModule() in previous commit. * src/modulemgr/modulemgr.c: Added _EpilogueModule(). * src/modulemgr: Added sub_000077F0() * src/modulemgr: _EpilogueModule(): Replaced hardcoded size by sizeof() * modulemgr: renamed sub_000077F0 to _StopUnloadSelfModuleWithStatus() * src/modulemgr/modulemgr.c: Added _ModuleReleaseLibraries(). * src/modulemgr: Added _checkSMOptionConditions() and fixed small issues in _StopUnloadSelfModuleWithStatus(). * src/modulemgr/modulemgr.c: Added sceKernelStartModule(). * include/threadman_kernel: Added more thread attribute values. * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForUser(). * src/modulemgr/modulemgr.c: Added sceKernelRebootPhaseForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelRebootBeforeForKernel(). * include/modulemgr_user.h: Added documentation for sceKernelLoadModuleMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDisc(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscUpdater(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHDiscEmu(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_C2A5E6CA(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs1(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs2(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs3(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs4(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs5(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecVSHMs6(). * src/modulemgr/modulemgr.c: Added ModuleMgrForKernel_8DD336D4(). * src/modulemgr: Simplified ModuleMgrRebootBefore(() * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForLoadExecNpDrm(). * src/modulemgr/modulemgr.c: Minor line indentation corrections. * src/modulemgr/modulemgr.c: option-> pOpt name change in several functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleVSHByID(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleForKernel(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleByIDForKernel(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitGame() and sceKernelLoadModuleBufferMs(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferApp(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlan(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForLoadExecBufferVSHUsbWlanDebug(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferVSH(). * src/modulemgr/modulemgr.c: Added sceKernelLoadModuleBufferForExitVSHVSH(). * src/modulemgr/modulemgr.c: Added more functions. * src/modulemgr/modulemgr.c: Added sceKernelUnloadModule(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByName(). * src/modulemgr/modulemgr.c: Added sceKernelSearchModuleByAddress(). * src/modulemgr/modulemgr.c: Added sceKernelSetNpDrmGetModuleKeyFunction(). * src/modulemgr/modulemgr.c: Added sceKernelNpDrmGetModuleKey(). * src/modulemgr/modulemgr.c: Added sceKernelModuleMgrMode(). * src/modulemgr/modulemgr.c: Added _StartModule(). * src/modulemgr/modulemgr.c: Added __StopModule(). * src/modulemgr/modulemgr.c: Added _PrologueModule(). * src/modulemgr/modulemgr.c: Added _ModuleRegisterLibraries(). * src/modulemgr/modulemgr.c: Fixed error in _ModuleReleaseLibraries(). * Moved NID_MODULE_* NIDs from src/loadcore/nid.h -> include/modulemgr_nids.h. * src/modulemgr/modulemgr.c: Added _ProcessModuleExportEnt(). * include/loadcore.h: Renamed SceLoadCoreExecFileInfo.unk104 -> SceLoadCoreExecFileInfo.secureInstallId. * include/sysmem_user.h: SceSysMemBlockType: Added more members. * src/modulemgr/modulemgr.c: Added _LoadModule(). * src/modulemgr/modulemgr.c: Added _PartitionCheck(). * src/modulemgr/modulemgr.c: Added _CheckSkipPbpHeader(). * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers * src/modulemgr/modulemgr.c: Fixes and reduced use of magic numbers (2) * src/modulemgr/modulemgr.c: Fixed mistake in sceKernelQueryModuleInfo(). * src/modulemgr/modulemgr.c: More small fixes and code cleanup. * Modulemgr: Remove already reverse-engineered function * src/modulemgr/modulemgr.c: Fixed a few compilation issues. * src/modulemgr: Broke up modulemgr.c into several .c files. * modulemgr: Reverse _CheckOverride() - Move _CheckOverride() into a separate file - Reverse _CheckOverride() - Add the rules for overriding modules' file descriptors * src/modulemgr/modulemgr.c: Fixed _CheckSkipPbpHeader. * src/modulemgr/override.c: Fixed syntax errors. * modulemgr: Fix more mistakes in override * src/modulemgr: Added pbp.h ( .PBP header description). * src/modulemgr/modulemgr.c: Added _RelocateModule(). * src/modulemgr/modulemgr.c: Fixed mistake in ModuleRegisterLibraries(). * include/sysmem_kernel.h: Updated prototype of sceKernelGetId(). * src/modulemgr/modulemgr.c: Added ModuleMgrForUser_CDE1C1FE(). * src/modulemgr/modulemgr.c: Added allocate_module_block(). * src/modulemgr/override.c: Fixed mistakes in _CheckOverride() and added more documentation about its purpose. * modulemgr/rebootModule: Replace hexa with constant * modulemgr/modulemgr: ModuleMgrForUser_CDE1C1FE(): s32 -> SceBool * modulemgr: Fixes, re-writes, improved naming, added some documentation. It does not compile yet! * modulemgr: Make it compilable. * Removed include/modulemgr.h. * src/modulemgr: Added missing Makefile. * modulemgr: Updated its static libraries to reflect name changes of its exported functions. * modulemgr: Made Loadcore and Loadexec compilable again. They were broken after changes have been made for modulemgr. * modulemgr: Fixed a few mistakes. * modulemgr: More fixes and updated some documentation. * modulemgr: Added .PBP file layout and PARAM.SFO information. * include/modulemgr_init.h: Added more SCE_EXEC_FILE_* members. * include/common/errors.h: Added error-value format description. * modulemgr: More fixes. Also added debug code for modulemgr (dbg.c). It will be removed before merging into 'master'. * modulemgr: Added missing debug code. * src/modulemgr: Fixed more errors. * update .gitignore with version on master * update .gitignore * update .gitignore * Module manager: Remove debug code * Revert changes made to debug header. * Add modulemgr to global makefile. Co-authored-by: devnoname120 <devnoname120@gmail.com> Co-authored-by: Felix-Dev <FelixDev91.gmail.com> Co-authored-by: Kern Walster <wals0323@umn.edu> Co-authored-by: Martin Charles <martincharles07@gmail.com> Co-authored-by: devnoname120 <devnoname120+gh@gmail.com>
2021-01-02 15:30:44 +00:00
u32 uiMediaType;
} SceUmdDiscInfo;
#ifdef __cplusplus
}
#endif
#endif /* MEDIAMAN_H */
/** @} */