diff options
Diffstat (limited to 'include/user/appmgr.h')
-rw-r--r-- | include/user/appmgr.h | 86 |
1 files changed, 57 insertions, 29 deletions
diff --git a/include/user/appmgr.h b/include/user/appmgr.h index e4ba75e..e912ce5 100644 --- a/include/user/appmgr.h +++ b/include/user/appmgr.h @@ -1,6 +1,7 @@ #ifndef _PSP2_APPMGR_H_ #define _PSP2_APPMGR_H_ +#include <psp2/scebase.h> #include <psp2/types.h> #include <psp2/apputil.h> @@ -8,6 +9,8 @@ extern "C" { #endif +#define _SCE_APPMGR_VERSION (SCE_PSP2_SDK_VERSION & 0xffff0000) + typedef enum SceAppMgrErrorCode { SCE_APPMGR_ERROR_BUSY = 0x80802000, //!< Busy SCE_APPMGR_ERROR_STATE = 0x80802013, //!< Invalid state @@ -40,12 +43,6 @@ typedef enum SceAppMgrInfoBarTransparency { SCE_APPMGR_INFOBAR_TRANSPARENCY_TRANSLUCENT = 1 } SceAppMgrInfoBarTransparency; -typedef enum SceAppMgrApplicationMode { - SCE_APPMGR_APPLICATION_MODE_A = 2, //!< Application without physically contiguous memory access - SCE_APPMGR_APPLICATION_MODE_B = 3, //!< Application with physically contiguous memory access - SCE_APPMGR_APPLICATION_MODE_C = 4 //!< Application with physically contiguous memory and extra memory access -} SceAppMgrApplicationMode; - typedef struct SceAppMgrSystemEvent { int systemEvent; //!< One of ::SceAppMgrSystemEventType uint8_t reserved[60]; //!< Reserved data @@ -93,25 +90,6 @@ typedef struct SceAppMgrAppState { SceUInt8 reserved[116]; } SceAppMgrAppState; -typedef struct SceAppMgrBudgetInfo { - int size; //!< Must be 0x88 - int app_mode; //!< One of ::SceAppMgrApplicationMode - int unk0; //!< Unknown Data - unsigned int total_user_rw_mem; //!< Total amount of accessible USER_RW memory - unsigned int free_user_rw; //!< Free amount of accessible USER_RW memory - SceBool extra_mem_allowed; //!< Flag for extra memory accessibility - int unk1; //!< Unknown Data - unsigned int total_extra_mem; //!< Total amount of accessible extra memory - unsigned int free_extra_mem; //!< Free amount of accessible extra memory - int unk2[2]; //!< Unknown Data - unsigned int total_phycont_mem; //!< Total amount of accessible physically contiguous memory - unsigned int free_phycont_mem; //!< Free amount of accessible physically contiguous memory - int unk3[10]; //!< Unknown Data - unsigned int total_cdram_mem; //!< Total amount of accessible CDRAM memory - unsigned int free_cdram_mem; //!< Free amount of accessible CDRAM memory - int reserved[9]; //!< Reserved data -} SceAppMgrBudgetInfo; - typedef struct SceAppMgrExecOptParam SceAppMgrExecOptParam; // Missing struct typedef struct SceAppMgrLaunchAppOptParam SceAppMgrLaunchAppOptParam; // Missing struct @@ -121,6 +99,38 @@ typedef struct sceAppMgrLoadExecOptParam { #define SCE_APPMGR_MAX_APP_NAME_LENGTH (31) +#define SCE_APPMGR_BUDGET_MODE_MAIN 2 +#define SCE_APPMGR_BUDGET_MODE_MAIN_PHYCONT 3 +#define SCE_APPMGR_BUDGET_MODE_MAIN_PHYCONT_CDLG 4 + +typedef struct SceAppMgrBudgetInfo { +// 0x00 + SceSize size; //!< Sizes if 0x88 bytes + SceUInt32 mode; //!< Application budget mode + SceUInt32 unk_8; + SceUInt32 budgetMain; //!< Main LPDDR2 budget in bytes +// 0x10 + SceUInt32 freeMain; //!< Free main LPDDR2 in bytes + SceUInt32 hasCdlg; //!< Has CDLG memory type in budget + SceUInt32 unk_14; //!< Only if CDLG is used, otherwise 0 + SceUInt32 budgetCdlg; //!< CDLG budget in bytes +// 0x20 + SceUInt32 freeCdlg; //!< Free CDLG in bytes + SceUInt32 unk_24; //!< always 0 + SceUInt32 unk_28; //!< Only phycont is used, otherwise 0 + SceUInt32 budgetPhycont; //!< Phycont budget in bytes +// 0x30 + SceUInt32 freePhycont; //!< Free phycont in bytes + SceUInt32 allow; //!< Some memory type? + SceUChar8 unk_38[0x20]; //!< Some memory type? + SceUInt32 unk_58; + SceUInt32 budgetCdram; //!< Cdram budget in bytes +// 0x60 + SceUInt32 freeCdram; //!< Free Cdram in bytes + SceUChar8 reserved_64[0x24]; +// 0x88 +} SceAppMgrBudgetInfo; + /** * Save data on savedata0: partition * @@ -514,16 +524,34 @@ int _sceAppMgrGetRawPath(char *path, char *resolved_path, int resolved_path_size int _sceAppMgrGetRawPathOfApp0ByAppIdForShell(int appId, char resolved_path[292]); /** - * Get memory budget info for a running system application + * Get application memory budget info. * - * @param[out] info - Info related to the memory budget of the running application. - * * @return 0 on success, < 0 on error. * - * @note This function will always return an error if used in a normal application. */ int sceAppMgrGetBudgetInfo(SceAppMgrBudgetInfo *info); +/** + * Shared Framebuffer + */ + +typedef struct SceSharedFbInfo SceSharedFbInfo; + +SceUID _sceSharedFbOpen(int index, SceUInt32 buildVersion); + +static __inline__ +SceUID sceSharedFbOpen(int index, SceUInt32 buildVersion) { + return _sceSharedFbOpen(index, _SCE_APPMGR_VERSION); +} + +int sceSharedFbClose(SceUID fbId); + +int sceSharedFbBegin(SceUID fbId, SceSharedFbInfo *fbInfo); + +int sceSharedFbEnd(SceUID fbId); + +int sceSharedFbGetInfo(SceUID fbId, SceSharedFbInfo *fbInfo); + #ifdef __cplusplus } #endif |