Difference between revisions of "SceSysLibTrace"

From Vita Development Wiki
Jump to navigation Jump to search
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Module ==
 
== Module ==
  
=== Known NIDs ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege !! NID
+
! Version !! World !! Privilege
 
|-
 
|-
| 3.65 || SceSysLibTrace || Non-secure || Kernel || 0xC333D512
+
| 0.940-3.65 || Non-secure || Kernel
 
|}
 
|}
  
Line 17: Line 16:
 
! Version !! Name !! World !! Visibility !! NID
 
! Version !! Name !! World !! Visibility !! NID
 
|-
 
|-
| 0.990-3.65 || [[SceSysLibTrace#SceSyslibtraceForKernel|SceSyslibtraceForKernel]] || Non-secure || Kernel || 0x9D33EE8D
+
| 0.940-0.990 || [[SceSysLibTrace#SceSyslibtrace|SceSyslibtrace]] || Non-secure || User || 0x696ED3DB
 
|-
 
|-
| 0.990 || [[SceSysLibTrace#SceSyslibtrace|SceSyslibtrace]] || Non-secure || User || 0x696ED3DB
+
| 0.940-3.65 || [[SceSysLibTrace#SceSyslibtraceForKernel|SceSyslibtraceForKernel]] || Non-secure || Kernel || 0x9D33EE8D
 
|-
 
|-
| 0.990-3.65 || [[SceSysLibTrace#SceNidsymtblForDriver|SceNidsymtblForDriver]] || Non-secure || Kernel || 0x3F9BEA99
+
| 0.940-3.65 || [[SceSysLibTrace#SceNidsymtblForDriver|SceNidsymtblForDriver]] || Non-secure || Kernel || 0x3F9BEA99
 
|}
 
|}
 +
 +
== Internal types ==
 +
 +
<source lang="C">
 +
typedef struct SceSysLibTraceTable { // size is 0x18-bytes
 +
ScePVoid entry;
 +
SceNID libnid;
 +
SceNID entnid;
 +
SceUInt32 syscall_index;
 +
SceUInt32 data_0x10; // from LibEnt->data_0x24
 +
SceUInt32 data_0x14; // from LibEnt->data_0x28
 +
} SceSysLibTraceTable;
 +
</source>
  
 
== SceSyslibtraceForKernel ==
 
== SceSyslibtraceForKernel ==
  
          SceSyslibtraceForKernel_1EDA3691: 0x1EDA3691
+
=== sceSyslibtraceSetTargetSyscallLibForKernel ===
          SceSyslibtraceForKernel_5DEF9EDF: 0x5DEF9EDF
+
{| class="wikitable"
          SceSyslibtraceForKernel_7CC73CDA: 0x7CC73CDA
+
|-
          SceSyslibtraceForKernel_7E843A85: 0x7E843A85
+
! Version !! NID
          SceSyslibtraceForKernel_AB6A0C53: 0xAB6A0C53
+
|-
          SceSyslibtraceForKernel_BD326721: 0xBD326721
+
| 0.931-3.65 || 0xAB6A0C53
          SceSyslibtraceForKernel_DD47649F: 0xDD47649F
+
|}
          SceSyslibtraceForKernel_EA56BE7C: 0xEA56BE7C
 
          SceSyslibtraceForKernel_F9CB8BA9: 0xF9CB8BA9
 
  
Known names from 0.931:
+
<source lang="C">int sceSyslibtraceSetTargetSyscallLibForKernel(SceNID libnid);</source>
  
    sceSyslibtraceCallbackRegisterLibs
+
=== sceSyslibtraceClearTargetSyscallLibForKernel ===
    sceSyslibtraceClearTargetSyscallLib
+
{| class="wikitable"
    sceSyslibtraceStopSyscallTrace
+
|-
    sceSyslibtraceStartSyscallTrace
+
! Version !! NID
    sceSyslibtraceSetTargetSyscallLib
+
|-
 +
| 0.931-3.65 || 0x7E843A85
 +
|}
 +
 
 +
<source lang="C">int sceSyslibtraceClearTargetSyscallLibForKernel(SceNID libnid);</source>
 +
 
 +
=== sceSyslibtraceStartSyscallTraceForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-3.65 || 0x5DEF9EDF
 +
|}
 +
 
 +
<source lang="C">int sceSyslibtraceStartSyscallTraceForKernel(void);</source>
 +
 
 +
=== sceSyslibtraceStopSyscallTraceForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-3.65 || 0xDD47649F
 +
|}
 +
 
 +
<source lang="C">int sceSyslibtraceStopSyscallTraceForKernel(void);</source>
 +
 
 +
=== sceSyslibtraceCallbackRegisterLibsForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-0.940 || 0x1EDA3691
 +
|}
 +
 
 +
<source lang="C">int sceSyslibtraceCallbackRegisterLibsForKernel(int a1);</source>
 +
 
 +
=== sceSyslibtraceCallbackDeregisterLibsForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-0.940 || 0xEA56BE7C
 +
|}
 +
 
 +
<source lang="C">int sceSyslibtraceCallbackDeregisterLibsForKernel(int a1);</source>
 +
 
 +
=== sceSyslibtraceCreateSyscallTraceForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.940 || 0xF9CB8BA9
 +
|}
 +
 
 +
This is a guessed name.
 +
 
 +
<source lang="C">int sceSyslibtraceCreateSyscallTraceForKernel(void *param, int a2);</source>
 +
 
 +
=== sceSyslibtraceDestroySyscallTraceForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.940 || 0xBD326721
 +
|}
 +
 
 +
This is a guessed name.
 +
 
 +
<source lang="C">int sceSyslibtraceDestroySyscallTraceForKernel(int a1);</source>
 +
 
 +
=== sceSyslibtraceGetSyscallNIDForKernel ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.65 || 0x7CC73CDA
 +
|}
 +
 
 +
This is a guessed name.
 +
 
 +
<source lang="C">int sceSyslibtraceGetSyscallNIDForKernel(SceUInt32 syscall, SceNID *dst);</source>
  
 
== SceSyslibtrace ==
 
== SceSyslibtrace ==
Line 104: Line 194:
 
== SceNidsymtblForDriver ==
 
== SceNidsymtblForDriver ==
  
=== get_functions_table ===
+
=== sceNidsymtblGetTableForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990-3.65 || 0x138A9106
+
| 0.940-3.65 || 0x138A9106
 
|}
 
|}
 +
 +
This is a guessed name.
  
 
<source lang="C">
 
<source lang="C">
// Return the number of functions in the buffer
+
// Returns the number of functions in the buffer
// functions_table_addr is a pointer overwritten by a pointer to SceSysLibTrace functions table
+
// functions_table_addr is a pointer overwritten by a pointer to SceSysLibTrace nid_symbol_table
int get_functions_table(void *functions_table_addr);
+
SceUInt32 sceNidsymtblGetTableForDriver(const void **table_addr);
 
</source>
 
</source>
  
=== SceNidsymtblForDriver_985E2935 ===
+
=== sceNidsymtblGetFunctionNameByNIDForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 +
|-
 +
| 0.931-0.940 || not present
 
|-
 
|-
 
| 3.60-3.65 || 0x985E2935
 
| 3.60-3.65 || 0x985E2935
 
|}
 
|}
 +
 +
This is a guessed name.
 +
 +
This function is registered using [[SceSysmem#sceKernelSysrootSetGetFunctionNameByNIDFuncForKernel]].
 +
 +
<source lang="C">int sceNidsymtblGetFunctionNameByNIDForDriver(SceNID funcnid, const char **name);</source>
  
  
 
[[Category:Modules]]
 
[[Category:Modules]]
 
[[Category:Kernel]]
 
[[Category:Kernel]]

Revision as of 18:31, 5 October 2022

Module

Version World Privilege
0.940-3.65 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.940-0.990 SceSyslibtrace Non-secure User 0x696ED3DB
0.940-3.65 SceSyslibtraceForKernel Non-secure Kernel 0x9D33EE8D
0.940-3.65 SceNidsymtblForDriver Non-secure Kernel 0x3F9BEA99

Internal types

typedef struct SceSysLibTraceTable { // size is 0x18-bytes
	ScePVoid entry;
	SceNID libnid;
	SceNID entnid;
	SceUInt32 syscall_index;
	SceUInt32 data_0x10; // from LibEnt->data_0x24
	SceUInt32 data_0x14; // from LibEnt->data_0x28
} SceSysLibTraceTable;

SceSyslibtraceForKernel

sceSyslibtraceSetTargetSyscallLibForKernel

Version NID
0.931-3.65 0xAB6A0C53
int sceSyslibtraceSetTargetSyscallLibForKernel(SceNID libnid);

sceSyslibtraceClearTargetSyscallLibForKernel

Version NID
0.931-3.65 0x7E843A85
int sceSyslibtraceClearTargetSyscallLibForKernel(SceNID libnid);

sceSyslibtraceStartSyscallTraceForKernel

Version NID
0.931-3.65 0x5DEF9EDF
int sceSyslibtraceStartSyscallTraceForKernel(void);

sceSyslibtraceStopSyscallTraceForKernel

Version NID
0.931-3.65 0xDD47649F
int sceSyslibtraceStopSyscallTraceForKernel(void);

sceSyslibtraceCallbackRegisterLibsForKernel

Version NID
0.931-0.940 0x1EDA3691
int sceSyslibtraceCallbackRegisterLibsForKernel(int a1);

sceSyslibtraceCallbackDeregisterLibsForKernel

Version NID
0.931-0.940 0xEA56BE7C
int sceSyslibtraceCallbackDeregisterLibsForKernel(int a1);

sceSyslibtraceCreateSyscallTraceForKernel

Version NID
0.940 0xF9CB8BA9

This is a guessed name.

int sceSyslibtraceCreateSyscallTraceForKernel(void *param, int a2);

sceSyslibtraceDestroySyscallTraceForKernel

Version NID
0.940 0xBD326721

This is a guessed name.

int sceSyslibtraceDestroySyscallTraceForKernel(int a1);

sceSyslibtraceGetSyscallNIDForKernel

Version NID
3.65 0x7CC73CDA

This is a guessed name.

int sceSyslibtraceGetSyscallNIDForKernel(SceUInt32 syscall, SceNID *dst);

SceSyslibtrace

_sceSyslibtraceClearInfo

Version NID
0.940-0.990 0xA92D1FD0

_sceSyslibtraceClearTargetLib

Version NID
0.940-0.990 0xC3A9F28D

_sceSyslibtraceKttyWrite

Version NID
0.940-0.990 0xE4458A16

_sceSyslibtraceRegisterInfo

Version NID
0.940-0.990 0x96B1409F

_sceSyslibtraceSetTargetLib

Version NID
0.940-0.990 0x303152C8

_sceSyslibtraceStartTrace

Version NID
0.940-0.990 0x61A80614

_sceSyslibtraceStopTrace

Version NID
0.940-0.990 0x1D534834

SceNidsymtblForDriver

sceNidsymtblGetTableForDriver

Version NID
0.940-3.65 0x138A9106

This is a guessed name.

// Returns the number of functions in the buffer
// functions_table_addr is a pointer overwritten by a pointer to SceSysLibTrace nid_symbol_table
SceUInt32 sceNidsymtblGetTableForDriver(const void **table_addr);

sceNidsymtblGetFunctionNameByNIDForDriver

Version NID
0.931-0.940 not present
3.60-3.65 0x985E2935

This is a guessed name.

This function is registered using SceSysmem#sceKernelSysrootSetGetFunctionNameByNIDFuncForKernel.

int sceNidsymtblGetFunctionNameByNIDForDriver(SceNID funcnid, const char **name);