Line 2,533: |
Line 2,533: |
| ! Version !! NID | | ! Version !! NID |
| |- | | |- |
− | | 1.69-3.60 || 0xA841EDDA | + | | 0.990-3.60 || 0xA841EDDA |
| |} | | |} |
| | | |
− | <source lang="c">int sceKernelGetMemBlockBaseForDriver(SceUID uid, void **basep);</source> | + | <source lang="C"> |
| + | /** |
| + | * @brief Get mapped base address of memory block. |
| + | * |
| + | * Get base address of memory block. |
| + | * @param[in] uid block id |
| + | * @param[out] ppBase base address of memory block |
| + | * @retval SCE_OK success |
| + | * @retval <SCE_OK Error |
| + | */ |
| + | int sceKernelGetMemBlockBaseForDriver(SceUID uid, void **ppBase); |
| + | </source> |
| | | |
| === sceKernelGetMemBlockVBaseForDriver === | | === sceKernelGetMemBlockVBaseForDriver === |
Line 3,527: |
Line 3,538: |
| The SceSysmem library is responsible for both low-level and high-level memory management. There are functions for allocating raw blocks of memory (similar to Linux <code>sbrk</code>) as well as functions for maintaining a heap-like structure (similar to <code>malloc</code>) for kernel, however [[SceLibKernel]] implements a proper heap and that is used for user code. | | The SceSysmem library is responsible for both low-level and high-level memory management. There are functions for allocating raw blocks of memory (similar to Linux <code>sbrk</code>) as well as functions for maintaining a heap-like structure (similar to <code>malloc</code>) for kernel, however [[SceLibKernel]] implements a proper heap and that is used for user code. |
| | | |
− | === sceKernelMapMemBlockForUser === | + | === sceKernelMapMemBlock === |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 3,542: |
Line 3,553: |
| ! Version !! NID | | ! Version !! NID |
| |- | | |- |
− | | 1.69 || 0x3B29E0F5 | + | | 0.990-1.69 || 0x3B29E0F5 |
| |- | | |- |
| | 3.60 || not present | | | 3.60 || not present |
Line 3,551: |
Line 3,562: |
| |- | | |- |
| ! Version !! NID | | ! Version !! NID |
| + | |- |
| + | | 0.990 || not present |
| |- | | |- |
| | 1.69 || 0xC0A59868 | | | 1.69 || 0xC0A59868 |
Line 3,557: |
Line 3,570: |
| |} | | |} |
| | | |
− | === sceKernelUnmapMemBlockForUser === | + | === sceKernelUnmapMemBlock === |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 3,567: |
Line 3,580: |
| |} | | |} |
| | | |
− | <source lang="C">int sceKernelUnmapMemBlockForUser(SceUID uid);</source> | + | <source lang="C">int sceKernelUnmapMemBlock(SceUID uid);</source> |
| | | |
| === sceKernelPartialUnmapMemBlock === | | === sceKernelPartialUnmapMemBlock === |
Line 3,598: |
Line 3,611: |
| </source> | | </source> |
| | | |
− | === sceKernelGetMemBlockInfoByAddrForUser === | + | === sceKernelGetMemBlockInfoByAddr === |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 3,614: |
Line 3,627: |
| * @param[inout] pInfo Information structure | | * @param[inout] pInfo Information structure |
| */ | | */ |
− | int sceKernelGetMemBlockInfoByAddrForUser(void *vbase, SceKernelMemBlockInfo *pInfo); | + | int sceKernelGetMemBlockInfoByAddr(void *vbase, SceKernelMemBlockInfo *pInfo); |
| </source> | | </source> |
| | | |
Line 3,656: |
Line 3,669: |
| <source lang="c">SceUID sceKernelOpenMemBlock(const char *name, int flags);</source> | | <source lang="c">SceUID sceKernelOpenMemBlock(const char *name, int flags);</source> |
| | | |
− | === sceKernelFindMemBlockByAddrForUser === | + | === sceKernelFindMemBlockByAddr === |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 3,724: |
Line 3,737: |
| |} | | |} |
| | | |
− | <source lang="c"> | + | <source lang="C"> |
| /** | | /** |
| * @brief Get mapped base address of memory block. | | * @brief Get mapped base address of memory block. |
Line 3,737: |
Line 3,750: |
| </source> | | </source> |
| | | |
− | === sceKernelAllocMemBlockForUser === | + | === sceKernelAllocMemBlock === |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 3,764: |
Line 3,777: |
| * @retval <SCE_OK Error code | | * @retval <SCE_OK Error code |
| */ | | */ |
− | SceUID sceKernelAllocMemBlockForUser(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOpt *pOpt); | + | SceUID sceKernelAllocMemBlock(const char *name, SceKernelMemBlockType type, SceSize vsize, const struct SceKernelAllocMemBlockOpt *pOpt); |
| </source> | | </source> |
| | | |
Line 8,796: |
Line 8,809: |
| | 0.940-1.80 || 0xE1DEDFF4 | | | 0.940-1.80 || 0xE1DEDFF4 |
| |} | | |} |
| + | |
| + | <source lang="C"> |
| + | /** |
| + | * @brief Get mapped base address of memory block. |
| + | * |
| + | * Get base address of memory block. |
| + | * @param[in] uid block id |
| + | * @param[out] ppBase base address of memory block |
| + | * @retval SCE_OK success |
| + | * @retval <SCE_OK Error |
| + | */ |
| + | int sceKernelGetMemBlockBaseForTZS(SceUID uid, void **ppBase); |
| + | </source> |
| | | |
| === sceKernelFreeMemBlockForTZS === | | === sceKernelFreeMemBlockForTZS === |