diff options
author | Reiko Asakura | 2020-10-10 15:27:06 -0400 |
---|---|---|
committer | Reiko Asakura | 2020-10-10 15:27:06 -0400 |
commit | 70004ae88d2bdb1feb56e5d2b4ba35c3b309dc92 (patch) | |
tree | 7326f8b3c4cb850880b98c884149d2f5538d4e26 /include/user/kernel/sysmem.h | |
parent | SceIniFileProcessor: fixes for type and names (diff) | |
download | vds-libraries-70004ae88d2bdb1feb56e5d2b4ba35c3b309dc92.tar.gz |
Add memblock.h
Diffstat (limited to '')
-rw-r--r-- | include/user/kernel/sysmem.h | 83 |
1 files changed, 4 insertions, 79 deletions
diff --git a/include/user/kernel/sysmem.h b/include/user/kernel/sysmem.h index 6a55a46..04e3ea2 100644 --- a/include/user/kernel/sysmem.h +++ b/include/user/kernel/sysmem.h @@ -1,99 +1,24 @@ #ifndef _PSP2_KERNEL_SYSMEM_H_ #define _PSP2_KERNEL_SYSMEM_H_ -#include <psp2/kernel/types.h> +#include <psp2/kernel/sysmem/memblock.h> #ifdef __cplusplus extern "C" { #endif -typedef enum _SceKernelMemBlockType { - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW_UNCACHE = 0x0C208060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_RX = 0x0C20D050, - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW = 0x0C20D060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_RW = 0x0C80D060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_NC_RW = 0x0D808060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW = 0x09408060 -} _SceKernelMemBlockType; - -typedef struct SceKernelAllocMemBlockOpt { - SceSize size; - SceUInt32 attr; - SceSize alignment; - SceUInt32 uidBaseBlock; - const char *strBaseBlockName; - int flags; //! Unknown flags 0x10 or 0x30 for ::sceKernelOpenMemBlock - int reserved[10]; -} SceKernelAllocMemBlockOpt; - typedef struct SceKernelFreeMemorySizeInfo { int size; //!< sizeof(SceKernelFreeMemorySizeInfo) int size_user; //!< Free memory size for *_USER_RW memory int size_cdram; //!< Free memory size for USER_CDRAM_RW memory int size_phycont; //!< Free memory size for USER_MAIN_PHYCONT_*_RW memory -} SceKernelFreeMemorySizeInfo; - +} SceKernelFreeMemorySizeInfo; + typedef enum SceKernelModel { SCE_KERNEL_MODEL_VITA = 0x10000, SCE_KERNEL_MODEL_VITATV = 0x20000 } SceKernelModel; -typedef struct SceKernelMemBlockInfo { - SceSize size; - void *mappedBase; - SceSize mappedSize; - int memoryType; - SceUInt32 access; - SceKernelMemBlockType type; -} SceKernelMemBlockInfo; - -typedef enum SceKernelMemoryAccessType { - SCE_KERNEL_MEMORY_ACCESS_X = 0x01, - SCE_KERNEL_MEMORY_ACCESS_W = 0x02, - SCE_KERNEL_MEMORY_ACCESS_R = 0x04 -} SceKernelMemoryAccessType; - -typedef enum SceKernelMemoryType { - SCE_KERNEL_MEMORY_TYPE_NORMAL_NC = 0x80, - SCE_KERNEL_MEMORY_TYPE_NORMAL = 0xD0 -} SceKernelMemoryType; - -/** - * Allocates a new memory block - * - * @param[in] name - Name for the memory block - * @param[in] type - Type of the memory to allocate - * @param[in] size - Size of the memory to allocate - * @param[in] opt - Memory block options? - * - * @return SceUID of the memory block on success, < 0 on error. -*/ -SceUID sceKernelAllocMemBlock(const char *name, SceKernelMemBlockType type, SceSize size, SceKernelAllocMemBlockOpt *opt); - -/** - * Frees new memory block - * - * @param[in] uid - SceUID of the memory block to free - * - * @return 0 on success, < 0 on error. -*/ -int sceKernelFreeMemBlock(SceUID uid); - -/** - * Gets the base address of a memory block - * - * @param[in] uid - SceUID of the memory block to free - * @param[out] base - Base address of the memory block identified by SceUID - * - * @return 0 on success, < 0 on error. -*/ -int sceKernelGetMemBlockBase(SceUID uid, void **base); - -SceUID sceKernelFindMemBlockByAddr(const void *addr, SceSize size); - -int sceKernelGetMemBlockInfoByAddr(void *base, SceKernelMemBlockInfo *info); -int sceKernelGetMemBlockInfoByRange(void *base, SceSize size, SceKernelMemBlockInfo *info); - SceUID sceKernelAllocMemBlockForVM(const char *name, SceSize size); int sceKernelSyncVMDomain(SceUID uid, void *data, SceSize size); int sceKernelOpenVMDomain(void); @@ -115,7 +40,7 @@ int sceKernelGetModelForCDialog(void); * @return A value from SCE_KERNEL_MODEL */ int sceKernelGetModel(void); - + /** * Get free memory size in bytes * |