Talk:LV2 Functions and Syscalls
Lv2 Syscall Services Usage
Documentation about syscalls with packet id
Syscall 621 (0x26D) Gamepad Ycon Interface
syscall(621,packet_id,r4,r5)
Packet ID | Usage |
---|---|
0 | sys_gamepad_ycon_initialize ( 0, 0) |
1 | sys_gamepad_ycon_finalize ( 0, 0) |
2 | sys_gamepad_ycon_has_input_ownership ( inout[8](if==0->autofill), out[1]) |
3 | sys_gamepad_ycon_enumerate_device ( 0, out[0x20]) |
4 | sys_gamepad_ycon_get_device_info ( in[8], out[0x1C]) |
5 | sys_gamepad_ycon_read_raw_report ( in[4], out[4]) |
6 | sys_gamepad_ycon_write_raw_report ( in[0x3C], out[]) |
7 | sys_gamepad_ycon_get_feature ( in[8], out[0x38?]) |
8 | sys_gamepad_ycon_set_feature (in[6+x](4Bytes+1Byte+1Byte[contains size x]+xBytes),0) |
9 | sys_gamepad_ycon_is_gem ( 0,out[1]) |
Syscall 726 (0x2D6) Gelic Device Eurus Post Command
syscall(726,uint16_t cmd, uint8_t *cmdbuf, uint64_t cmdbuf_size)
Packet ID | Description |
---|
Syscall 861 (0x35D)
syscall(861,packet_id, r4,r5,r6,r7,r8,r9,r10)
Note: access to this Syscall requries 0x40 Root Control Flags, else 0x80010003
Packet ID | Usage |
---|---|
0 | not implemented |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | not implemented |
10 | not implemented |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 |
Syscall 862 (0x35E) Virtual TRM Manager Interface
syscall(862,packet_id, r4,r5,r6,r7)
Note: access to this Syscall requries 0x40 Root Control Flags, else 0x80010003
Packet ID | Usage |
---|---|
0x2001 | |
0x2002 | |
0x2003 | |
0x2004 | |
0x2005 | |
0x2006 | |
0x2007 | not implemented |
0x2008 | not implemented |
0x2009 | not implemented |
0x200A | |
0x200B | |
0x200C | |
0x200D | |
0x200E | vtrm_decrypt_master(uint8[0x10],uint8[0x40] |
0x200F | not implemented |
0x2010 | not implemented |
0x2011 | not implemented |
0x2012 | |
0x2013 | |
0x2014 | |
0x2015 | |
0x2016 | |
0x2017 |
Syscall 863 (0x35F) Update Manager Interface
syscall(863,packet_id, r4,r5,r6,r7,r8,r9)
Note: access to this Syscall requries 0x40 Root Control Flags, else 0x80010003
Packet ID | Usage |
---|---|
0x6001 | update_mgr_update_package_tophalf( ,,,) |
0x6002 | update_manager_if::Inspect_Package(int package_type(1-9),sys_addr_tr * alloc_addr,size,r7=9(cex)/5(dex/tool),r8=out:uint64_t*) |
0x6003 | update_manager_if::Get_Package_Info(int package_type,out:uint64_t*) |
0x6004 | update_mgr_get_fix_instruction( ) |
0x6005 | update_mgr_extract_package_tophalf( ,,,,) |
0x6006 | update_mgr_get_extract_package(,,,,,) |
0x6007 | not implemented |
0x6008 | not implemented |
0x6009 | update_manager_if::get_token_seed( out:uint8[size1],size1,out:uint8[size2],size2) size>=0x50 |
0x600A | update_manager_if::set_token(in:token[size],int size), size>=0x80 |
0x600B | update_manager_if::read_eprom(uint32 offset,out:uint8[1]) |
0x600C | update_manager_if::write_eprom(uint32 offset,uint8 value) |
0x600D | update_mgr_get_status( ,,,,,) |
0x600E | update_manager_if::allocate_buffer(size,out:sys_addr_t * alloc_addr) |
0x600F | update_manager_if::release_buffer(in:sys_addr_t * alloc_addr) |
0x6010 | not implemented |
0x6011 | update_manager_if::get_applicable_version(1 ,out:uint8[0x20]) |
0x6012 |
Syscall 864 (0x360) Storage Manager Interface
syscall(864,packet_id, r4)
Note: access to this Syscall requries at least 0x20 Debug Control Flags, else 0x80010003
Packet ID | Description | Notes |
---|---|---|
0x5004 | sys_ss_auth_bd(int) | cellSsDrvPs2DiscInsert(0x52) |
0x5007 | sys_ss_hw_disc_auth_emu(in/out:uint8[0x18]) | use can be restricted to certain authentication id's |
0x5008 | sys_ss_hw_mc(in/out:uint8[0x38]) | use can be restricted to certain authentication id's |
Syscall 865 (0x361) Random Number Generator
syscall(865,packet_id, r4,r5)
Packet ID | Description | Notes |
---|---|---|
1 | syscall(865,1, out[0x18], 0x18) | size is static usage with this packet_id requires either 0x40 Root Flags or [0x1B]=8 and a certain authentication id |
2 | sys_get_random_number(out[size], size) |
Syscall 866 (0x362) Secure RTC Manager Interface
syscall(866,packet_id, r4, r5, r6)
Packet ID | Description | Notes |
---|---|---|
0x3001 | secure_rtc_set_rtc(r4,r5) | requries 0x40 root control flags |
0x3002 | secure_rtc_get_time(r4,r5,r6) | might be restricted to certain authentication id's |
0x3003 | secure_rtc_set_time(r4,r5) | requries 0x40 root control flags |
Syscall 867 (0x363) AIM Manager Interface
syscall(867,packet_id, r4)
Note: access to this Syscall requries 0x40 Root Control Flags, else 0x80010003
Packet ID | Description |
---|---|
0x19002 | cellSsAimGetDeviceType(out:uint8[0x10]) |
0x19003 | cellSsAimGetDeviceId(out:uint8[0x10]) |
0x19004 | cellSsAimGetPsCode(out:uint8[8]) |
0x19005 | cellSsAimGetOpenPsId(out:uint8[0x10]) |
0x19006 | syscall(867,0x19006) |
Syscall 868 (0x364) Indi Info Manager Interface
syscall(868,packet_id, r4,r5,r6,r7)
Note: access to this Syscall requries 0x40 Root Control Flags, but allows 0x20 Debug Flags and certain authentication id's for first packet_id
Packet ID | Description |
---|---|
0x17001 | |
0x17002 | |
0x17003 | |
0x17004 | |
0x17005 | |
0x17006 | |
0x17007 | |
0x17008 | |
0x17009 | |
0x1700A | |
0x1700B | |
0x1700C | |
0x1700D | |
0x1700E | |
0x1700F | |
0x17010 | |
0x17011 | |
0x17012 | |
0x17013 | |
0x17014 | |
0x17015 | |
0x17016 | |
0x17017 |
Syscall 869 (0x365) RTC? Manager Interface
syscall(869,packet_id, r4)
Note: access to this Syscall requries 0x40 Root Control Flags and possibly restricted to certain authentication id's, else 0x80010003
Packet ID | Description |
---|---|
0x22001 | syscall(869,0x22001, out:uint8[0x80]) |
0x22002 | syscall(869,0x22002, out:uint8[0x690]) |
0x22003 | syscall(869,0x22003, in:uint8[8]) |
0x22004 | syscall(869,0x22004, int) |
Syscall 871 (0x367) SS Access Control Engine
syscall(871,packet_id, r4)
Packet ID | Usage | Notes |
---|---|---|
1 | syscall(871,1,sys_pid_t id,out:uint8[8]) | this packet_id requires 0x20 Debug Control Flags or [0x1B]=8 and a certain authentication id, else 0x80010003 |
2 | syscall(871,2,out:uint8[8]) | returns authentication id? |
3 | syscall(871,3,sys_pid_t id) | this packet_id requries 0x20 Debug Control Flags, else 0x80010003, but returns 0x8001009 |
Syscall 876 (0x36C) Disc Access Control
syscall(876,packet_id, r4)
Note: accessing this Syscall is restricted to certain authentication id's
Packet ID | Description |
---|---|
0x20000 | sys_get_disc_access_control(out:uint8[4]) |
0x20001 | sys_set_disc_access_control(0 / 1) |
Syscall 877 (0x36D) User Token Interface
syscall(877,packet_id, r4,size)
Note: access to this Syscall requries 0x40 Root Control Flags, else 0x80010003
Packet ID | Description |
---|---|
0x25003 | sys_ss_utoken_decrypt(uint8[0xC50], 0xC50) |
0x25004 | sys_ss_utoken_get?(out:uint8[0xC50], 0xC50) |
0x25005 | sys_ss_utoken_encrypt(uint8[0xC50], 0xC50) |
Syscall 878 (0x36E) Ad Sign
syscall(878,packet_id, r4,r5)
Note: access to this Syscall is restricted to certain authentication id's
Packet ID | Description |
---|---|
0x26001 | sys_ss_ad_sign(in:uint8[0x14],out:uint[0x80]) |
Syscall 879 (0x36F) Media ID
syscall(862,packet_id, r4)
Note: access to this Syscall is restricted to certain authentication id's
Note2: it uses Storage Service Id 0x5007, 0x4B
Packet ID | Description |
---|---|
0x10001 | sysBdMediaId(out:uint8[0x10]) |
not on the wiki yet
these lv2 syscalls are present, but neither ordinal nor branches are known yet
sys_usbbtaudio_start_recording_ex sys_lwcond_attribute_name_set sys_lwmutex_attribute_name_set sys_event_flag_attribute_name_set sys_semaphore_attribute_name_set sys_cond_attribute_name_set sys_mutex_attribute_name_set sys_raw_spu_mmio_read_ls (no real lv2 syscall, reading mmio address) sys_raw_spu_mmio_write_ls (no real lv2 syscall, reading mmio address) sys_raw_spu_mmio_read (no real lv2 syscall, reading mmio address) sys_raw_spu_mmio_write (no real lv2 syscall, reading mmio address) sys_event_queue_attribute_name_set sys_lwcond_signal sys_lwcond_signal_all sys_lwcond_signal_to sys_lwcond_wait sys_spu_elf_get_segments sys_raw_spu_image_load sys_mmapper_allocate_memory sys_ppu_thread_unregister_atexit sys_ppu_thread_once sys_prx_exitspawn_with_level sys_process_at_Exitspawn sys_process_atexitspawn sys_game_process_exitspawn2 sys_process_is_stack
debug syscalls sys_dbg_set_stacksize_ppu_exception_handler sys_dbg_get_spu_thread_group_ids sys_dbg_get_ppu_thread_ids sys_dbg_get_spu_thread_ids sys_dbg_register_ppu_exception_handler sys_dbg_mat_set_condition sys_dbg_read_spu_thread_context2 sys_dbg_enable_floating_point_enabled_exception sys_dbg_get_event_queue_information sys_dbg_get_spu_thread_name sys_dbg_get_ppu_thread_name sys_dbg_signal_to_ppu_exception_handler sys_dbg_get_mutex_information sys_dbg_vm_get_page_information sys_dbg_mat_get_condition sys_dbg_get_cond_information sys_dbg_get_ppu_thread_status sys_dbg_get_lwcond_information sys_dbg_get_rwlock_information sys_dbg_get_spu_thread_group_status sys_dbg_get_semaphore_information sys_dbg_set_mask_to_ppu_exception_handler sys_dbg_get_coredump_params sys_dbg_get_address_from_dabr sys_dbg_get_spu_thread_group_name sys_dbg_finalize_ppu_exception_handler sys_dbg_read_spu_thread_context sys_dbg_initialize_ppu_exception_handler sys_dbg_read_ppu_thread_context sys_dbg_unregister_ppu_exception_handler sys_dbg_get_lwmutex_information sys_dbg_signal_to_coredump_handler sys_dbg_set_address_to_dabr sys_dbg_get_event_flag_information sys_dbg_disable_floating_point_enabled_exception
see also this pastebin: http://pastebin.com/w2xkNZ9T
Custom Syscalls
This is a fself for testing that when started in 4.21 DEX CFW will add lv2_alloc as Syscall 32(Replaces: UNUSED_SYSCALL). It will then try to use it and printf the received pointer. Please test and report back. http://rghost.net/48803322
firmware version offsets
FW version | Offset | Value | Notes |
---|---|---|---|
3.72 Retail | 0x9150 | ||
3.70 Retail | 0x9088 | ||
3.66 Retail | 0x8ef8 | ||
3.61 Retail | 0x8d04 | ||
3.60 Retail | 0x8ca0 | ||
3.56 Retail | 0x8b10 | ||
3.55 Retail | 0x3329b8 | 0x8aac | |
3.55 DEX | |||
3.50 Retail | 0x88b8 | ||
3.42 Retail | 0x8598 | ||
3.41 Retail | 0x2d7580 | 0x8534 | |
3.41 DEX | |||
3.41 KIOSK | 0x8534 | ||
3.40 Retail | 0x84d0 | ||
3.30 Retail | 0x80e8 | ||
3.21 Retail | 0x7d64 | ||
3.15 Retail | 0x2d6c00 | 0x7b0c | offset seems to be 6 further @ 0x002d6c06 (see below) |
3.10 Retail | 0x7918 | ||
3.01 Retail | 0x7594 | ||
2.85 Retail | 0x6f54 | ||
2.76 Retail | 0x6bd0 | ||
2.70 Retail | 0x6978 | ||
2.60 Retail | 0x6590 | ||
2.53 Retail | 0x62d4 | ||
2.43 Retail | 0x5eec | ||
1.02 Retail | 0x27d8 |
Note: the value is decimal '35500', '34100' and '31500' in hex.
Example
Example from 3.15 with 3.60 spoof:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 002D6C00 00 00 00 00 00 00 8C A0 00 00 00 00 00 00 00 00 ......Œ ........ ^^ ^^ dec: 36000 spoofed
LV2 Process Structures
lv2::process is the same structure that can be found in CobraUSB source code (process.h). This version was reversed from 3.41 lv2_kernel.
struct proc_phys_mem_stat
{
u64 field_0;
u64 field_8;
u64 field_10;
u64 field_18;
u64 field_20;
u64 field_28;
u64 field_30;
};
struct unk_process_struct_1E8
{
u64 field_0;
u64 field_8;
u64 field_10;
u64 field_18;
};
struct unk_process_struct_3A0
{
u64 field_0;
u64 field_8;
};
namespace lv2
{
class wait_queue
{
u64 field_0;
u64 field_8;
u64 field_10;
};
class mutex
{
void *vtable;
u64 field_8;
u64 field_10;
lv2::wait_queue field_18;
u64 field_30;
u64 field_38;
};
class condition_variable
{
void *vtable;
u64 field_8;
lv2::wait_queue field_10;
u64 field_28;
u64 field_30;
};
class pu_thr
{
void *vtable;
char name[28];
int thr_id;
u64 field_28;
u64 field_30;
u64 field_38;
u64 prio;
u64 field_48;
u64 field_50;
u64 field_58;
u64 field_60;
u64 field_68;
u64 stack_address;
u64 stack_size;
lv2::process *my_proc;
u64 field_88;
u64 field_90;
u64 general_purpose_registers[32];
int condition_register;
u64 exception_register;
u64 link_register;
u64 count_register;
u64 save_restore_register_0;
u64 save_restore_register_1;
u64 field_1C8;
double floating_point_registers[32];
int field_2D0;
int floating_point_status_and_control_register;
u64 field_2D8;
u64 field_2E0;
u64 field_2E8;
u64 field_2F0;
u64 field_2F8;
u64 field_300;
u64 field_308;
u64 field_310;
u64 field_318;
u64 field_320;
u64 field_328;
u64 field_330;
u64 field_338;
u64 field_340;
u64 field_348;
u64 field_350;
u64 field_358;
u64 field_360;
u64 field_368;
u64 field_370;
u64 field_378;
u64 field_380;
u64 field_388;
u64 field_390;
u64 field_398;
u64 field_3A0;
u64 field_3A8;
u64 field_3B0;
u64 field_3B8;
u64 field_3C0;
u64 field_3C8;
u64 field_3D0;
u64 field_3D8;
u64 field_3E0;
u64 field_3E8;
u64 field_3F0;
u64 field_3F8;
u64 field_400;
u64 field_408;
u64 field_410;
u64 field_418;
u64 field_420;
u64 field_428;
u64 field_430;
u64 field_438;
u64 field_440;
u64 field_448;
u64 field_450;
u64 field_458;
u64 field_460;
u64 field_468;
u64 field_470;
u64 field_478;
u64 field_480;
u64 field_488;
u64 field_490;
u64 field_498;
u64 field_4A0;
u64 field_4A8;
u64 field_4B0;
u64 field_4B8;
u64 field_4C0;
u64 field_4C8;
u64 field_4D0;
u64 field_4D8;
u64 field_4E0;
u64 field_4E8;
u64 field_4F0;
u64 field_4F8;
u64 field_500;
u64 field_508;
u64 field_510;
u64 field_518;
u64 field_520;
u64 field_528;
u64 field_530;
u64 field_538;
u64 field_540;
u64 field_548;
int stop_info;
u64 field_558;
u64 field_560;
u64 field_568;
u64 field_570;
u64 field_578;
u64 field_580;
u64 field_588;
u64 field_590;
u64 field_598;
u64 field_5A0;
u64 field_5A8;
u64 field_5B0;
u64 field_5B8;
u64 field_5C0;
u64 field_5C8;
u64 field_5D0;
u64 field_5D8;
u64 field_5E0;
u64 field_5E8;
u64 field_5F0;
u64 field_5F8;
};
class id_table
{
u64 field_0[256];
u64 field_800;
lv2::wait_queue field_808;
u64 field_820;
};
class address_space
{
u64 field_0;
u64 field_8;
u64 field_10;
u64 field_18;
u64 field_20;
};
class process_as
{
lv2::address_space field_0;
u64 field_28;
u64 field_30;
u64 field_38;
u64 field_40;
u64 field_48;
u64 field_50;
u64 field_58;
u64 field_60;
u64 field_68;
u64 field_70;
u64 field_78;
u64 field_80;
u64 field_88;
u64 field_90;
u64 field_98;
u64 field_A0;
u64 field_A8;
u64 field_B0;
u64 field_B8;
u64 field_C0;
u64 field_C8;
u64 field_D0;
u64 field_D8;
u64 field_E0;
u64 field_E8;
u64 field_F0;
u64 field_F8;
u64 field_100;
u64 field_108;
u64 field_110;
u64 field_118;
u64 field_120;
u64 field_128;
u64 field_130;
u64 field_138;
u64 field_140;
u64 field_148;
u64 field_150;
u64 field_158;
u64 field_160;
u64 field_168;
u64 field_170;
u64 field_178;
u64 field_180;
u64 field_188;
u64 field_190;
u64 field_198;
u64 field_1A0;
u64 field_1A8;
u64 field_1B0;
u64 field_1B8;
u64 field_1C0;
u64 field_1C8;
u64 field_1D0;
u64 field_1D8;
u64 field_1E0;
u64 field_1E8;
u64 field_1F0;
u64 field_1F8;
u64 field_200;
u64 field_208;
u64 field_210;
u64 field_218;
u64 field_220;
u64 field_228;
u64 field_230;
u64 field_238;
u64 field_240;
u64 field_248;
u64 field_250;
u64 field_258;
u64 field_260;
u64 field_268;
u64 field_270;
u64 field_278;
u64 field_280;
u64 field_288;
u64 field_290;
u64 field_298;
u64 field_2A0;
u64 field_2A8;
u64 field_2B0;
u64 field_2B8;
u64 field_2C0;
u64 field_2C8;
u64 field_2D0;
u64 field_2D8;
u64 field_2E0;
u64 field_2E8;
u64 field_2F0;
u64 field_2F8;
u64 field_300;
u64 field_308;
u64 field_310;
u64 field_318;
u64 field_320;
u64 field_328;
u64 field_330;
u64 field_338;
u64 field_340;
u64 field_348;
u64 field_350;
u64 field_358;
u64 field_360;
u64 field_368;
u64 field_370;
u64 field_378;
u64 field_380;
u64 field_388;
u64 field_390;
u64 field_398;
u64 field_3A0;
u64 field_3A8;
u64 field_3B0;
u64 field_3B8;
u64 field_3C0;
u64 field_3C8;
u64 field_3D0;
u64 field_3D8;
u64 field_3E0;
u64 field_3E8;
u64 field_3F0;
u64 field_3F8;
u64 field_400;
u64 field_408;
u64 field_410;
u64 field_418;
u64 field_420;
u64 field_428;
u64 field_430;
u64 field_438;
u64 field_440;
u64 field_448;
u64 field_450;
u64 field_458;
u64 field_460;
u64 field_468;
u64 field_470;
u64 field_478;
u64 field_480;
u64 field_488;
u64 field_490;
u64 field_498;
u64 field_4A0;
lv2::mutex field_4A8;
u64 field_4E8;
u64 field_4F0;
u64 field_4F8;
u64 field_500;
u64 field_508;
u64 field_510;
u64 field_518;
u64 field_520;
u64 field_528;
};
class process
{
void *sc_table;
lv2::sc_trace *sc_trace;
u64 field_10;
u64 field_18;
u64 field_20;
int pid;
int status;
lv2::process_as *process_as;
lv2::pu_thr *primary_ppu_thread;
u64 field_40;
lv2::pu_thr *field_48;
u64 num_pu_threads_1;
u64 num_pu_threads_2;
u64 field_60;
u64 field_68;
u64 field_70;
u64 field_78;
u64 field_80;
u64 field_88;
u64 field_90;
u64 field_98;
u64 field_A0;
u64 size_of_memory;
lv2::process *parent;
lv2::process *first_child;
lv2::process *last_child;
u64 num_children;
lv2::mutex field_D0;
lv2::condition_variable field_110;
u64 field_148;
u64 field_150;
u64 field_158;
char *proc_image_filename;
lv2::mutex field_168;
u64 field_1A8;
proc_phys_mem_stat field_1B0;
unk_process_struct_1E8 field_1E8;
lv2::id_table *id_table;
u64 field_210;
u64 field_218;
u64 field_220;
u64 field_228;
u64 field_230;
u64 field_238;
u64 field_240;
u64 field_248;
u64 field_250;
u64 field_258;
u64 field_260;
char osabi_type;
int sdk_version;
u64 field_270;
u64 field_278;
u64 field_280;
u64 field_288;
u64 field_290;
u64 field_298;
u64 field_2A0;
u64 field_2A8;
u64 field_2B0;
u64 field_2B8;
u64 field_2C0;
u64 field_2C8;
u64 field_2D0;
u64 field_2D8;
u64 field_2E0;
u64 field_2E8;
u64 field_2F0;
u64 field_2F8;
u64 field_300;
u64 field_308;
u64 field_310;
u64 field_318;
u64 field_320;
u64 field_328;
u64 field_330;
u64 field_338;
u64 field_340;
u64 field_348;
u64 field_350;
u64 field_358;
u64 field_360;
u64 field_368;
u64 field_370;
u64 field_378;
u64 field_380;
u64 field_388;
u64 field_390;
u64 field_398;
unk_process_struct_3A0 field_3A0;
u64 field_3B0;
u64 field_3B8;
u64 field_3C0;
u64 field_3C8;
};
}
LV2 Kernel Syscall Table from SDK 0.80
LV2 Syscalls Merged Table
Dec | Hex | fw_type | needed_flags | Name | Notes |
---|---|---|---|---|---|
#sys_process Syscalls (1-31) | |||||
1 | 0x001 | CEX DEX DECR | sys_process_getpid | sys_pid_t sys_process_getpid(void); | |
2 | 0x002 | CEX DEX DECR | root | sys_process_wait_for_child | 3 params: sys_pid_t, uint32_t *status, unk=0 |
3 | 0x003 | CEX DEX DECR | sys_process_exit | int sys_process_exit(int) | |
4 | 0x004 | CEX DEX DECR | dbg | sys_process_get_status | int sys_process_get_status(sys_pid_t pid) |
5 | 0x005 | CEX DEX DECR | dbg | sys_process_detach_child | 1 param |
6 | 0x006 | ?? | ?? | syscall_sys_process_create_program_segment | ?? |
7 | 0x007 | ?? | ?? | syscall_sys_process_destroy_program_segment | ?? |
8 | 0x008 | ?? | ?? | syscall_sys_process_authenticate_program_segment | ?? |
9 | 0x009 | ?? | ?? | syscall_sys_process_load_program_segment | ?? |
10 | 0x00A | ?? | ?? | syscall_sys_process_unload_program_segment | ?? |
11 | 0x00B | ?? | ?? | syscall_sys_process_find_and_load_program_segment | ?? |
12 | 0x00C | CEX DEX DECR | sys_process_get_number_of_object | int sys_process_get_number_of_object(uint32_t object_type, uint32_t* count); | |
13 | 0x00D | CEX DEX DECR | sys_process_get_id | int sys_process_get_id(uint32_t object, uint32_t * buff, size_t size, size_t * set_size); | |
14 | 0x00E | CEX DEX DECR | sys_process_is_spu_lock_line_reservation_address | int sys_process_is_spu_lock_line_reservation_address(sys_addr_t addr, uint64_t flags); | |
15 | 0x00F | ?? | ?? | syscall_sys_process_create | ?? |
18 | 0x012 | CEX DEX DECR | sys_process_getppid | sys_pid_t sys_process_getppid(void); | |
19 | 0x013 | CEX DEX DECR | sys_process_kill | int sys_process_kill(sys_pid_t pid); | |
20 | 0x014 | ?? | ?? | syscall_sys_process_create_primary_ppu_thread_tls | ?? |
21 | 0x015 | CEX DEX DECR | dbg | _sys_process_spawn | int sys_process_spawn(int *pid, int prio, uint64_t flags, void *stack, int stack_size, int unk1, int unk2) |
22 | 0x016 | CEX DEX DECR | sys_process_exit | void sys_process_exit(int error_code,0,0) | |
23 | 0x017 | CEX DEX DECR | dbg | sys_process_wait_for_child2 | 6 params |
24 | 0x018 | CEX DEX DECR | dbg | 8 params, spawns a self | |
25 | 0x019 | CEX DEX DECR | sys_process_get_sdk_version | 2 params :sys_pid_t pid, uint8_t outbuf[4] | |
26 | 0x01A | CEX DEX DECR | _sys_process_exit as well | 4 params (calls sys_process_exit) | |
27 | 0x01B | CEX DEX DECR | dbg | 8 params, spawns a self | |
28 | 0x01C | CEX DEX DECR | root | _sys_process_get_number_of_object as well kinda | int sys_process_get_number_of_object(uint32_t object) |
29 | 0x01D | CEX DEX DECR | root | sys_process_get_id as well | same as syscall13 just with root flag check, same input etc. |
30 | 0x01E | CEX DEX DECR | _sys_process_get_paramsfo | int _sys_process_get_paramsfo(uint8_t buffer[0x40]); (more info: #sys_process_get_paramsfo) | |
31 | 0x01F | CEX DEX DECR | sys_process_get_ppu_guid | sys_addr_t sys_process_get_ppu_guid(void); | |
#sys_ppu_thread Syscalls (40-58) | |||||
41 | 0x029 | CEX DEX DECR | sys_ppu_thread_exit | int sys_ppu_thread_exit(int errorcode) | |
43 | 0x02B | CEX DEX DECR | sys_ppu_thread_yield | void sys_ppu_thread_yield(void); | |
44 | 0x02C | CEX DEX DECR | sys_ppu_thread_join | int sys_ppu_thread_join(sys_ppu_thread_t thread_id, uint64_t * vptr); | |
45 | 0x02D | CEX DEX DECR | sys_ppu_thread_detach | int sys_ppu_thread_detach(sys_ppu_thread_t thread_id); | |
46 | 0x02E | CEX DEX DECR | sys_ppu_thread_get_join_state | void sys_ppu_thread_get_join_state(int *isjoinable); | |
47 | 0x02F | CEX DEX DECR | dbg | sys_ppu_thread_set_priority | int sys_ppu_thread_set_priority(sys_ppu_thread_t thread_id, int prio); Flags are checked when 3071 > prio < 3199 |
48 | 0x030 | CEX DEX DECR | sys_ppu_thread_get_priority | int sys_ppu_thread_get_priority(sys_ppu_thread_t thread_id, int *prio); | |
49 | 0x031 | CEX DEX DECR | sys_ppu_thread_get_stack_information | int sys_ppu_thread_get_stack_information(sys_ppu_thread_stack_t * info); | |
50 | 0x032 | CEX DEX DECR | root | sys_ppu_thread_stop | int sys_ppu_thread_stop(sys_ppu_thread_t thread_id); |
51 | 0x033 | CEX DEX DECR | root | sys_ppu_thread_restart | int sys_ppu_thread_restart(void); |
52 | 0x034 | CEX DEX DECR | dbg | sys_ppu_thread_create | int sys_ppu_thread_create(sys_ppu_thread_t *thread_id, & void (*entry)(uint64_t), uint64_t arg, 0, int prio, size_t stacksize, uint64_t flags, const char *threadname); |
53 | 0x035 | CEX DEX DECR | sys_ppu_thread_start | int sys_ppu_thread_start(sys_ppu_thread_t thread_id); | |
54 | 0x036 | CEX DEX DECR | root | syscall(0x036, 0x109/0x111, out: uint8[4]), pu_thread get (kernel) allocation information | |
55 | 0x037 | CEX DEX DECR | root | syscall(0x037, 0x111, 0> int <0x100), pu_thread set (kernel) allocation? information | |
56 | 0x038 | CEX DEX DECR | sys_ppu_thread_rename | int sys_ppu_thread_rename(sys_ppu_thread_t thread_id, const char *name); | |
57 | 0x039 | CEX DEX DECR | sys_ppu_thread_recover_page_fault | int sys_ppu_thread_recover_page_fault(sys_ppu_thread_t thread_id); | |
58 | 0x03A | CEX DEX DECR | sys_ppu_thread_get_page_fault_context | int sys_ppu_thread_get_page_fault_context(sys_ppu_thread_t thread_id, sys_ppu_thread_icontext_t * ctxp); | |
#sys_trace Syscalls (60-69+77) | |||||
60 | 0x03C | DEX DECR | sys_trace_create | ||
61 | 0x03D | DEX DECR | sys_trace_start | ||
62 | 0x03E | DEX DECR | sys_trace_stop | ||
63 | 0x03F | DEX DECR | sys_trace_update_top_index | ||
64 | 0x040 | DEX DECR | sys_trace_destroy | ||
65 | 0x041 | DEX DECR | sys_trace_drain | ||
66 | 0x042 | DEX DECR | sys_trace_attach_process | ||
67 | 0x043 | DEX DECR | sys_trace_allocate_buffer | ||
68 | 0x044 | DEX DECR | sys_trace_free_buffer | ||
69 | 0x045 | DEX DECR | sys_trace_create2 | ||
#sys_timer Syscalls (70-76+141+142) | |||||
70 | 0x046 | CEX DEX DECR | sys_timer_create | int sys_timer_create(sys_timer_t * timer_id); | |
71 | 0x047 | CEX DEX DECR | sys_timer_destroy | int sys_timer_destroy(sys_timer_t timer_id); | |
72 | 0x048 | CEX DEX DECR | sys_timer_get_information | int sys_timer_get_information(sys_timer_t timer_id, sys_timer_information_t * info); | |
73 | 0x049 | CEX DEX DECR | sys_timer_start | int sys_timer_start(sys_timer_t timer_id, system_time_t base_time, usecond_t period); | |
74 | 0x04A | CEX DEX DECR | sys_timer_stop | int sys_timer_stop(sys_timer_t timer_id); | |
75 | 0x04B | CEX DEX DECR | sys_timer_connect_event_queue | int sys_timer_connect_event_queue(sys_timer_t timer_id, sys_event_queue_t queue_id, uint64_t name, uint64_t data1, uint64_t data2); | |
76 | 0x04C | CEX DEX DECR | sys_timer_disconnect_event_queue | int sys_timer_disconnect_event_queue(sys_timer_t timer_id); | |
#sys_trace Syscalls (60-69+77) | |||||
77 | 0x04D | DEX DECR | sys_trace_create2_in_cbepm | ||
78 | 0x04E | DECR | sys_trace_ | ||
#sys_interrupt Syscalls (80+81+84+88+89) | |||||
80 | 0x050 | CEX DEX DECR | sys_interrupt_tag_create | int sys_interrupt_tag_create(sys_interrupt_tag_t * intrtag, sys_irqoutlet_id_t irq, sys_hw_thread_t hwthread); | |
81 | 0x051 | CEX DEX DECR | sys_interrupt_tag_destroy | int sys_interrupt_tag_destroy(sys_interrupt_tag_t intrtag); | |
#sys_event Syscalls (82+83+85-87+118+128-140) | |||||
82 | 0x052 | CEX DEX DECR | sys_event_flag_create | int sys_event_flag_create(sys_event_flag_t * id, sys_event_flag_attribute_t * attr, uint64_t init); | |
83 | 0x053 | CEX DEX DECR | sys_event_flag_destroy | int sys_event_flag_destroy(sys_event_flag_t id); | |
#sys_interrupt Syscalls (80+81+84+88+89) | |||||
84 | 0x054 | CEX DEX DECR | sys_interrupt_thread_establish | int sys_interrupt_thread_establish(sys_interrupt_thread_handle_t * ih, sys_interrupt_tag_t intrtag, uint64_t intrthread, uint64_t arg1, uint64_t arg2); | |
#sys_event Syscalls (82+83+85-87+118+128-140) | |||||
85 | 0x055 | CEX DEX DECR | sys_event_flag_wait | int sys_event_flag_wait(sys_event_flag_t id, uint64_t bitptn, uint32_t mode, uint64_t * result, usecond_t timeout); | |
86 | 0x056 | CEX DEX DECR | sys_event_flag_trywait | int sys_event_flag_trywait(sys_event_flag_t id, uint64_t bitptn, uint32_t mode, uint64_t * result); | |
87 | 0x057 | CEX DEX DECR | sys_event_flag_set | int sys_event_flag_set(sys_event_flag_t id, uint64_t bitptn); | |
#sys_interrupt Syscalls (80+81+84+88+89) | |||||
88 | 0x058 | CEX DEX DECR | sys_interrupt_thread_eoi | void sys_interrupt_thread_eoi(void); | |
89 | 0x059 | CEX DEX DECR | sys_interrupt_thread_disestablish | int sys_interrupt_thread_disestablish(sys_interrupt_thread_handle_t ih); | |
#sys_semaphore Syscalls (90-94+114) | |||||
90 | 0x05A | CEX DEX DECR | sys_semaphore_create | int sys_semaphore_create(sys_semaphore_t * sem, sys_semaphore_attribute_t * attr, sys_semaphore_value_t initial_val, sys_semaphore_value_t max_val); | |
91 | 0x05B | CEX DEX DECR | sys_semaphore_destroy | int sys_semaphore_destroy(sys_semaphore_t sem); | |
92 | 0x05C | CEX DEX DECR | sys_semaphore_wait | int sys_semaphore_wait(sys_semaphore_t sem, usecond_t timeout); | |
93 | 0x05D | CEX DEX DECR | sys_semaphore_trywait | int sys_semaphore_trywait(sys_semaphore_t sem); | |
94 | 0x05E | CEX DEX DECR | sys_semaphore_post | int sys_semaphore_post(sys_semaphore_t sem, sys_semaphore_value_t val); | |
#sys_lwmutex Syscalls (95-99) | |||||
95 | 0x05F | CEX DEX DECR | sys_lwmutex_create | int sys_lwmutex_create(sys_lwmutex_t *lwmutex, sys_lwmutex_attribute_t *attr) | |
96 | 0x060 | CEX DEX DECR | sys_lwmutex_destroy | int sys_lwmutex_destroy(sys_lwmutex_t *lwmutex) | |
97 | 0x061 | CEX DEX DECR | sys_lwmutex_lock | int sys_lwmutex_lock(sys_lwmutex_t *lwmutex, usecond_t timeout) | |
98 | 0x062 | CEX DEX DECR | sys_lwmutex_trylock | int sys_lwmutex_trylock(sys_lwmutex_t *lwmutex) | |
99 | 0x063 | CEX DEX DECR | sys_lwmutex_unlock | int sys_lwmutex_unlock(sys_lwmutex_t *lwmutex) | |
#sys_mutex Syscalls (100-104) | |||||
100 | 0x064 | CEX DEX DECR | sys_mutex_create | int sys_mutex_create(sys_mutex_t * mutex_id, sys_mutex_attribute_t * attr); | |
101 | 0x065 | CEX DEX DECR | sys_mutex_destroy | int sys_mutex_destroy(sys_mutex_t mutex_id); | |
102 | 0x066 | CEX DEX DECR | sys_mutex_lock | int sys_mutex_lock(sys_mutex_t mutex_id, usecond_t timeout); | |
103 | 0x067 | CEX DEX DECR | sys_mutex_trylock | int sys_mutex_trylock(sys_mutex_t mutex_id); | |
104 | 0x068 | CEX DEX DECR | sys_mutex_unlock | int sys_mutex_unlock(sys_mutex_t mutex_id); | |
#sys_cond Syscalls (105-110) | |||||
105 | 0x069 | CEX DEX DECR | sys_cond_create | int sys_cond_create(sys_cond_t * cond_id, sys_mutex_t mutex_id, sys_cond_attribute_t * attr); | |
106 | 0x06A | CEX DEX DECR | sys_cond_destroy | int sys_cond_destroy(sys_cond_t cond_id); | |
107 | 0x06B | CEX DEX DECR | sys_cond_wait | int sys_cond_wait(sys_cond_t cond_id, usecond_t timeout); | |
108 | 0x06C | CEX DEX DECR | sys_cond_signal | int sys_cond_signal(sys_cond_t cond_id); | |
109 | 0x06D | CEX DEX DECR | sys_cond_signal_all | int sys_cond_signal_all(sys_cond_t cond_id); | |
110 | 0x06E | CEX DEX DECR | sys_cond_signal_to | int sys_cond_signal_to(sys_cond_t cond_id, sys_ppu_thread_t thread); | |
#sys_lwcond Syscalls (111+112) | |||||
111 | 0x06F | CEX DEX DECR | sys_lwcond_create | int sys_lwcond_create(sys_lwcond_t *lwcond, sys_lwmutex_t *lwmutex, sys_lwcond_attribute_t *attr) | |
112 | 0x070 | CEX DEX DECR | sys_lwcond_destroy | int sys_lwcond_destroy(sys_lwcond_t *lwcond) | |
113 | 0x071 | CEX DEX DECR | sys_lwcond_queue_wait | 3 params | |
#sys_semaphore Syscalls (90-94+114) | |||||
114 | 0x072 | CEX DEX DECR | sys_semaphore_get_value | int sys_semaphore_get_value(sys_semaphore_t sem, sys_semaphore_value_t * val); | |
115 | 0x073 | CEX DEX DECR | 4 params | ||
116 | 0x074 | CEX DEX DECR | 3 params | ||
117 | 0x075 | CEX DEX DECR | 1 params : sys_lwmutex_t *lwmutex | ||
#sys_event Syscalls (82+83+85-87+118+128-140) | |||||
118 | 0x076 | CEX DEX DECR | sys_event_flag_clear | int sys_event_flag_clear(sys_event_flag_t id, uint64_t bitptn); | |
119 | 0x077 | CEX DEX DECR | root | int syscall(119, uint64_t *real_time_clock); Gets ps3 real time clock value, hvsc232 | |
#sys_rwlock Syscalls (120-127+148) | |||||
120 | 0x078 | CEX DEX DECR | sys_rwlock_create | int sys_rwlock_create(sys_rwlock_t * rw_lock_id, sys_rwlock_attribute_t * attr); | |
121 | 0x079 | CEX DEX DECR | sys_rwlock_destroy | int sys_rwlock_destroy(sys_rwlock_t rw_lock_id); | |
122 | 0x07A | CEX DEX DECR | sys_rwlock_rlock | int sys_rwlock_rlock(sys_rwlock_t rw_lock_id, usecond_t timeout); | |
123 | 0x07B | CEX DEX DECR | sys_rwlock_tryrlock | int sys_rwlock_tryrlock(sys_rwlock_t rw_lock_id); | |
124 | 0x07C | CEX DEX DECR | sys_rwlock_runlock | int sys_rwlock_runlock(sys_rwlock_t rw_lock_id); | |
125 | 0x07D | CEX DEX DECR | sys_rwlock_wlock | int sys_rwlock_wlock(sys_rwlock_t rw_lock_id, usecond_t timeout); | |
126 | 0x07E | CEX DEX DECR | sys_rwlock_trywlock | int sys_rwlock_trywlock(sys_rwlock_t rw_lock_id); | |
127 | 0x07F | CEX DEX DECR | sys_rwlock_wunlock | int sys_rwlock_wunlock(sys_rwlock_t rw_lock_id); | |
#sys_event Syscalls (82+83+85-87+118+128-140) | |||||
128 | 0x080 | CEX DEX DECR | sys_event_queue_create | int sys_event_queue_create(sys_event_queue_t * equeue_id, sys_event_queue_attribute_t * attr, sys_ipc_key_t event_queue_key, int size); | |
129 | 0x081 | CEX DEX DECR | sys_event_queue_destroy | int sys_event_queue_destroy(sys_event_queue_t equeue_id, int mode); | |
130 | 0x082 | CEX DEX DECR | sys_event_queue_receive | int sys_event_queue_receive(sys_event_queue_t equeue_id, sys_event_t * event, usecond_t timeout); | |
131 | 0x083 | CEX DEX DECR | sys_event_queue_tryreceive | int sys_event_queue_tryreceive(sys_event_queue_t equeue_id, sys_event_t * event_array, int size, int *number); | |
132 | 0x084 | CEX DEX DECR | sys_event_flag_cancel | int sys_event_flag_cancel(sys_event_flag_t id, int *num); | |
133 | 0x085 | CEX DEX DECR | sys_event_queue_drain | int sys_event_queue_drain(sys_event_queue_t equeue_id); | |
134 | 0x086 | CEX DEX DECR | sys_event_port_create | int sys_event_port_create(sys_event_port_t * eport_id, int port_type, uint64_t name); | |
135 | 0x087 | CEX DEX DECR | sys_event_port_destroy | int sys_event_port_destroy(sys_event_port_t eport_id); | |
136 | 0x088 | CEX DEX DECR | sys_event_port_connect_local | int sys_event_port_connect_local(sys_event_port_t event_port_id, sys_event_queue_t event_queue_id); | |
137 | 0x089 | CEX DEX DECR | sys_event_port_disconnect | int sys_event_port_disconnect(sys_event_port_t event_port_id); | |
138 | 0x08A | CEX DEX DECR | sys_event_port_send | int sys_event_port_send(sys_event_port_t eport_id, unint64_t data1, uint64_t data2, uint64_t data3); | |
139 | 0x08B | CEX DEX DECR | sys_event_flag_get | int sys_event_flag_get(sys_event_flag_t id, uint64_t * bitptn); | |
140 | 0x08C | CEX DEX DECR | sys_event_port_connect_ipc | int sys_event_port_connect_ipc(sys_event_port_t eport_id, sys_ipc_key_t event_queue_key); | |
#sys_timer Syscalls (70-76+141+142) | |||||
141 | 0x08D | CEX DEX DECR | sys_timer_usleep | int sys_timer_usleep(usecond_t sleep_time); | |
142 | 0x08E | CEX DEX DECR | sys_timer_sleep | int sys_timer_sleep(second_t sleep_time); | |
#sys_time Syscalls (143-147) | |||||
143 | 0x08F | CEX DEX DECR | root | sys_time_set_timezone | int sys_time_set_timezone(int timezone, int summertime) |
144 | 0x090 | CEX DEX DECR | sys_time_get_timezone | int sys_time_get_timezone(int *timezone, int *summertime) | |
145 | 0x091 | CEX DEX DECR | sys_time_get_current_time | int sys_time_get_current_time(sys_time_sec_t * sec, sys_time_nsec_t * nsec); | |
146 | 0x092 | CEX DEX DECR | root | sys_time_set_current_time | int sys_time_set_current_time(uint64_t sec, uint64_t nsec); |
147 | 0x093 | CEX DEX DECR | sys_time_get_timebase_frequency | uint64_t sys_time_get_timebase_frequency(void); | |
#sys_rwlock Syscalls (120-127+148) | |||||
148 | 0x094 | CEX DEX DECR | sys_rwlock_trywlock | int sys_rwlock_trywlock(sys_rwlock_t rw_lock_id); | |
#sys_spu/sys_raw_spu Syscalls (150-260) | |||||
150 | 0x096 | CEX DEX DECR | sys_raw_spu_create_interrupt_tag | int sys_raw_spu_create_interrupt_tag(sys_raw_spu_t id,sys_class_id_t class_id, sys_hw_thread_t hwthread, sys_interrupt_tag_t *intrtag) | |
151 | 0x097 | CEX DEX DECR | sys_raw_spu_set_int_mask | int sys_raw_spu_set_int_mask(sys_raw_spu_t id, sys_class_id_t class_id, uint64_t mask) | |
152 | 0x098 | CEX DEX DECR | sys_raw_spu_get_int_mask | int sys_raw_spu_get_int_mask(sys_raw_spu_t id, sys_class_id_t class_id, uint64_t *mask) | |
153 | 0x099 | CEX DEX DECR | sys_raw_spu_set_int_stat | int sys_raw_spu_set_int_stat(sys_raw_spu_t id, sys_class_id_t class_id, uint64_t stat) | |
154 | 0x09A | CEX DEX DECR | sys_raw_spu_get_int_stat | int sys_raw_spu_get_int_stat(sys_raw_spu_t id, sys_class_id_t class_id, uint64_t *stat) | |
155 | 0x09B | CEX DEX DECR | sys_spu_image_get_information? | int sys_spu_image_get_information?(sys_spu_image_t *img, out:uint[4],out:uint[4]) | |
156 | 0x09C | CEX DEX DECR | sys_spu_image_open | int sys_spu_image_open(sys_spu_image_t *img, const char *path) | |
157 | 0x09D | CEX DEX DECR | sys_spu_image_import | int sys_spu_image_import(sys_spu_image_t *img, const void *src, uint32_t type) | |
158 | 0x09E | CEX DEX DECR | sys_spu_image_close | int sys_spu_image_close(sys_spu_image_t *img); | |
159 | 0x09F | CEX DEX DECR | sys_raw_spu_load | 3 Params ( sys_spu_image_t * img, sys_addr_t alloc_addr, int size? ), needs much more proper information | |
160 | 0x0A0 | CEX DEX DECR | sys_raw_spu_create | int sys_raw_spu_create(sys_raw_spu_t *id, sys_raw_spu_attribute_t *attr) | |
161 | 0x0A1 | CEX DEX DECR | sys_raw_spu_destroy | int sys_raw_spu_destroy(sys_raw_spu_t id) | |
163 | 0x0A3 | CEX DEX DECR | sys_raw_spu_read_puint_mb | int sys_raw_spu_read_puint_mb(sys_raw_spu_t id, uint32_t *value) | |
165 | 0x0A5 | CEX DEX DECR | sys_spu_thread_get_exit_status | int sys_spu_thread_get_exit_status(sys_spu_thread_t id, int *status) | |
166 | 0x0A6 | CEX DEX DECR | sys_spu_thread_set_argument | int sys_spu_thread_set_argument(sys_spu_thread_t id, sys_spu_thread_argument_t *arg) | |
167 | 0x0A7 | CEX DEX DECR | sys_spu_thread_group_start_on_exit | ||
169 | 0x0A9 | CEX DEX DECR | sys_spu_initialize | int sys_spu_initialize(unsigned int max_usable_spu, unsigned int max_raw_spu) | |
170 | 0x0AA | CEX DEX DECR | sys_spu_thread_group_create | int sys_spu_thread_group_create(sys_spu_thread_group_t *id, unsigned int num, int prio, sys_spu_thread_group_attribute_t *attr) | |
171 | 0x0AB | CEX DEX DECR | sys_spu_thread_group_destroy | int sys_spu_thread_group_destroy(sys_spu_thread_group_t id) | |
172 | 0x0AC | CEX DEX DECR | sys_spu_thread_initialize | int sys_spu_thread_initialize(sys_spu_thread_t *thread,sys_spu_thread_group_t group,uint spu_num,sys_spu_image_t *img,sys_spu_thread_attribute_t *attr,sys_spu_thread_argument_t *arg) | |
173 | 0x0AD | CEX DEX DECR | sys_spu_thread_group_start | int sys_spu_thread_group_start(sys_spu_thread_group_t id) | |
174 | 0x0AE | CEX DEX DECR | sys_spu_thread_group_suspend | int sys_spu_thread_group_suspend(sys_spu_thread_group_t id) | |
175 | 0x0AF | CEX DEX DECR | sys_spu_thread_group_resume | int sys_spu_thread_group_resume(sys_spu_thread_group_t id) | |
176 | 0x0B0 | CEX DEX DECR | sys_spu_thread_group_yield | int sys_spu_thread_group_yield(sys_spu_thread_group_t id) | |
177 | 0x0B1 | CEX DEX DECR | sys_spu_thread_group_terminate | int sys_spu_thread_group_terminate(sys_spu_thread_group_t id, int value) | |
178 | 0x0B2 | CEX DEX DECR | sys_spu_thread_group_join | int sys_spu_thread_group_join(sys_spu_thread_group_t gid, int *cause, int *status) | |
179 | 0x0B3 | CEX DEX DECR | sys_spu_thread_group_set_priority | int sys_spu_thread_group_set_priority(sys_spu_thread_group_t id, int priority) | |
180 | 0x0B4 | CEX DEX DECR | sys_spu_thread_group_get_priority | int sys_spu_thread_group_get_priority(sys_spu_thread_group_t id, int *priority) | |
181 | 0x0B5 | CEX DEX DECR | sys_spu_thread_write_ls | int sys_spu_thread_write_ls(sys_spu_thread_t id, uint32_t address, uint64_t value, size_t type) | |
182 | 0x0B6 | CEX DEX DECR | sys_spu_thread_read_ls | int sys_spu_thread_read_ls(sys_spu_thread_t id, uint32_t address, uint64_t *value, size_t type) | |
184 | 0x0B8 | CEX DEX DECR | sys_spu_thread_write_snr | int sys_spu_thread_write_snr(sys_spu_thread_t id, int number, uint32_t value) | |
185 | 0x0B9 | CEX DEX DECR | sys_spu_thread_group_connect_event | int sys_spu_thread_group_connect_event(sys_spu_thread_group_t id, sys_event_queue_t eq, sys_event_type_t et) | |
186 | 0x0BA | CEX DEX DECR | sys_spu_thread_group_disconnect_event | int sys_spu_thread_group_disconnect_event(sys_spu_thread_group_t id, sys_event_type_t et) | |
187 | 0x0BB | CEX DEX DECR | sys_spu_thread_set_spu_cfg | int sys_spu_thread_set_spu_cfg(sys_spu_thread_t id, uint64_t value) | |
188 | 0x0BC | CEX DEX DECR | sys_spu_thread_get_spu_cfg | int sys_spu_thread_get_spu_cfg(sys_spu_thread_t id, uint64_t *value) | |
190 | 0x0BE | CEX DEX DECR | sys_spu_thread_write_spu_mb | int sys_spu_thread_write_spu_mb(sys_spu_thread_t id, uint32_t value); | |
191 | 0x0BF | CEX DEX DECR | sys_spu_thread_connect_event | int sys_spu_thread_connect_event(sys_spu_thread_t id, sys_event_queue_t eq, sys_event_type_t et, uint8_t spup) | |
192 | 0x0C0 | CEX DEX DECR | sys_spu_thread_disconnect_event | int sys_spu_thread_disconnect_event(sys_spu_thread_t id, sys_event_type_t et, uint8_t spup) | |
193 | 0x0C1 | CEX DEX DECR | sys_spu_thread_bind_queue | int sys_spu_thread_bind_queue(sys_spu_thread_t id,sys_event_queue_t spuq,uint32_t spuq_num) | |
194 | 0x0C2 | CEX DEX DECR | sys_spu_thread_unbind_queue | int sys_spu_thread_unbind_queue(sys_spu_thread_t id, uint32_t spuq_num) | |
196 | 0x0C4 | CEX DEX DECR | sys_raw_spu_set_spu_cfg | int sys_raw_spu_set_spu_cfg(sys_raw_spu_t id, uint32_t value) | |
197 | 0x0C5 | CEX DEX DECR | sys_raw_spu_get_spu_cfg | int sys_raw_spu_get_spu_cfg(sys_raw_spu_t id, uint32_t *value) | |
198 | 0x0C6 | CEX DEX DECR | sys_spu_thread_recover_page_fault | int sys_spu_thread_recover_page_fault(sys_spu_thread_t id) | |
199 | 0x0C7 | CEX DEX DECR | sys_raw_spu_recover_page_fault | int sys_raw_spu_recover_page_fault(sys_raw_spu_t id) | |
200 | 0x0C8 | ?? | ?? | syscall_console_putc | ?? |
201 | 0x0C9 | ?? | ?? | syscall_console_getc | ?? |
202 | 0x0CA | ?? | ?? | syscall_event_create_port | ?? |
203 | 0x0CB | ?? | ?? | syscall_event_send_locally | ?? |
209 | 0x0D1 | ?? | ?? | syscall_sys_pseudo_fs_read | ?? |
210 | 0x0D2 | ?? | ?? | syscall_sys_pseudo_fs_write | ?? |
211 | 0x0D3 | ?? | ?? | syscall_sys_pseudo_fs_append | ?? |
212 | 0x0D4 | ?? | ?? | syscall_start_debug | ?? |
213 | 0x0D5 | ?? | ?? | syscall_console_write | ?? |
214 | 0x0D6 | ?? | ?? | syscall_sys_pseudo_fs_get_file_size | ?? |
215 | 0x0D7 | DEX DECR | sys_dbg_mat_set_condition | int sys_dbg_mat_set_condition(sys_addr_t,int) | |
216 | 0x0D8 | DEX DECR | sys_dbg_mat_get_condition | int sys_dbg_mat_get_condition(sys_addr_t,int*) | |
217 | 0x0D9 | ?? | ?? | syscall_logical_console_getc | ?? |
218 | 0x0DA | ?? | ?? | syscall_logical_console_putc | ?? |
219 | 0x0DB | ?? | ?? | syscall_logical_console_flush | ?? |
226 | 0x0E2 | ?? | ?? | syscall_get_logical_partition_id | ?? |
230 | 0x0E6 | CEX DEX DECR | root | sys_isolated_spu_create | int sys_isolated_spu_create(sys_raw_spu_t *id, uint8_t *source_spe, in?: args?,0,0,0) |
231 | 0x0E7 | CEX DEX DECR | root | sys_isolated_spu_destroy | int sys_isolated_spu_destroy(sys_raw_spu_t id) |
232 | 0x0E8 | CEX DEX DECR | root | sys_isolated_spu_start | int sys_isolated_spu_start(sys_raw_spu_t id) |
233 | 0x0E9 | CEX DEX DECR | root | sys_isolated_spu_create_interrupt_tag | int sys_isolated_spu_create_interrupt_tag(sys_raw_spu_t id, uint32_t class_id, uint32_t hwthread, sys_interrupt_tag_t *intrtag) |
234 | 0x0EA | CEX DEX DECR | root | sys_isolated_spu_set_int_mask | int sys_isolated_spu_set_int_mask(sys_raw_spu_t id, uint32_t class_id, uint64_t mask) |
235 | 0x0EB | CEX DEX DECR | root | sys_isolated_spu_get_int_mask | int sys_isolated_spu_get_int_mask(sys_raw_spu_t id, uint32_t class_id, uint64_t *mask) |
236 | 0x0EC | CEX DEX DECR | root | sys_isolated_spu_set_int_stat | int sys_isolated_spu_set_int_stat(sys_raw_spu_t id, uint32_t class_id, uint64_t stat) |
237 | 0x0ED | CEX DEX DECR | root | sys_isolated_spu_get_int_stat | int sys_isolated_spu_get_int_stat(sys_raw_spu_t id, uint32_t class_id, uint64_t * stat) |
238 | 0x0EE | CEX DEX DECR | root | sys_isolated_spu_set_spu_cfg | int sys_isolated_spu_set_spu_cfg(sys_spu_thread_t id, uint64_t value) |
239 | 0x0EF | CEX DEX DECR | root | sys_isolated_spu_get_spu_cfg | int sys_isolated_spu_get_spu_cfg(sys_spu_thread_t id, uint64_t * value) |
240 | 0x0F0 | CEX DEX DECR | root | sys_isolated_spu_read_puint_mb | int sys_isolated_spu_read_puint_mb(sys_raw_spu_t id, uint32_t * value) |
244 | 0x0F4 | CEX DEX DECR | root | sys_spu_thread_group_system_set_next_group | int sys_spu_thread_group_system_set_next_group(void) |
245 | 0x0F5 | CEX DEX DECR | root | sys_spu_thread_group_system_unset_next_group | int sys_spu_thread_group_system_unset_next_group(void) |
246 | 0x0F6 | CEX DEX DECR | root | sys_spu_thread_group_system_set_switch_group | int sys_spu_thread_group_system_set_switch_group(void) |
247 | 0x0F7 | CEX DEX DECR | root | sys_spu_thread_group_system_unset_switch_group | int sys_spu_thread_group_system_unset_switch_group(void) |
248 | 0x0F8 | CEX DEX DECR | root | sys_spu_thread_group.... | 5 Params: sys_spu_thread_group_t group,..... |
249 | 0x0F9 | CEX DEX DECR | root | sys_spu_thread_group.... | int sc249(sys_spu_thread_group_t group) |
250 | 0x0FA | CEX DEX DECR | sys_spu_thread_group_set_cooperative_victims | 2 Params | |
251 | 0x0FB | CEX DEX DECR | sys_spu_thread_group_connect_event_all_threads | int sys_spu_thread_group_connect_event_all_threads(sys_spu_thread_group_t id, sys_event_queue_t eq, uint64_t req, uint8_t *spup) | |
252 | 0x0FC | CEX DEX DECR | sys_spu_thread_group_disconnect_event_all_threads | int sys_spu_thread_group_disconnect_event_all_threads(sys_spu_thread_group_t id, uint8_t spup) | |
253 | 0x0FD | CEX DEX DECR | sys_spu_thread_group.. | 2 Params( sys_spu_thread_group_t id, out:uint8[0x40]) | |
254 | 0x0FE | CEX DEX DECR | sys_spu_thread_group_log | int sys_spu_thread_group_log(int command, int *stat) | |
256 | 0x100 | ?? | ?? | syscall_create_repository_node | ?? |
257 | 0x101 | ?? | ?? | syscall_get_repository_node_value | ?? |
258 | 0x102 | ?? | ?? | syscall_modify_repository_node_value | ?? |
259 | 0x103 | ?? | ?? | syscall_remove_repository_node | ?? |
260 | 0x104 | CEX DEX DECR | sys_spu_image_open_by_fd | int sys_spu_image_open_by_fd(sys_spu_image_t *img, int fd, off64_t offset) | |
#sys_vm/sys_memory/sys_mmapper Syscalls (300-352) | |||||
275 | 0x113 | ?? | ?? | syscall_set_vsync_schedule | ?? |
290 | 0x122 | ?? | ?? | syscall_set_l2_cache_replacement_mode | ?? |
291 | 0x123 | ?? | ?? | syscall_change_l2_cache_state_all | ?? |
292 | 0x124 | ?? | ?? | syscall_invalidate_i_cache_blocks_related_kernel | ?? |
294 | 0x126 | ?? | ?? | syscall_proc_get_filename | ?? |
295 | 0x127 | ?? | ?? | syscall_sys_pseudo_fs_truncate | ?? |
296 | 0x128 | ?? | ?? | syscall_sys_pseudo_fs_get_dents | ?? |
300 | 0x12C | CEX DEX DECR | sys_vm_memory_map | int sys_vm_memory_map(size_t vsize, size_t psize, sys_memory_container_t container, uint64_t flag, uint64_t policy, sys_addr_t * addr); | |
301 | 0x12D | CEX DEX DECR | sys_vm_unmap | int sys_vm_unmap(sys_addr_t addr); | |
302 | 0x12E | CEX DEX DECR | sys_vm_append_memory | int sys_vm_append_memory(sys_addr_t addr, size_t size); | |
303 | 0x12F | CEX DEX DECR | sys_vm_return_memory | int sys_vm_return_memory(sys_addr_t addr, size_t size); | |
304 | 0x130 | CEX DEX DECR | sys_vm_lock | int sys_vm_lock(sys_addr_t addr, size_t size); | |
305 | 0x131 | CEX DEX DECR | sys_vm_unlock | int sys_vm_unlock(sys_addr_t addr, size_t size); | |
306 | 0x132 | CEX DEX DECR | sys_vm_touch | int sys_vm_touch(sys_addr_t addr, size_t size); | |
307 | 0x133 | CEX DEX DECR | sys_vm_flush | int sys_vm_flush(sys_addr_t addr, size_t size); | |
308 | 0x134 | CEX DEX DECR | sys_vm_invalidate | int sys_vm_invalidate(sys_addr_t addr, size_t size); | |
309 | 0x135 | CEX DEX DECR | sys_vm_store | int sys_vm_store(sys_addr_t addr, size_t size); | |
310 | 0x136 | CEX DEX DECR | sys_vm_sync | int sys_vm_sync(sys_addr_t addr, size_t size); | |
311 | 0x137 | CEX DEX DECR | sys_vm_test | int sys_vm_test(sys_addr_t addr, size_t size, uint64_t * result); | |
312 | 0x138 | CEX DEX DECR | sys_vm_get_statistics | int sys_vm_get_statistics(sys_addr_t addr, sys_vm_statistics_t * stat); | |
313 | 0x139 | CEX DEX DECR | diff sys_vm_memory_map | same Params (size_t vsize, size_t psize, sys_memory_container_t container, uint64_t flag, uint64_t policy, sys_addr_t * addr); apperently maps different vm memory area | |
314 | 0x13A | CEX DEX DECR | syscall_finalize_user_kernel_shared_memory | 2 Params | |
315 | 0x13B | CEX DEX DECR | syscall_import_user_kernel_shared_memory | 1 Param | |
316 | 0x13C | ?? | ?? | syscall_unimport_user_kernel_shared_memory | ?? |
324 | 0x144 | CEX DEX DECR | dbg | sys_memory_container_create | int sys_memory_container_create(sys_memory_container_t * cid, size_t yield_size); |
325 | 0x145 | CEX DEX DECR | dbg | sys_memory_container_destroy | int sys_memory_container_destroy(sys_memory_container_t cid); |
326 | 0x146 | CEX DEX DECR | sys_mmapper_allocate_fixed_address | int sys_mmapper_allocate_fixed_address(void); | |
327 | 0x147 | CEX DEX DECR | sys_mmapper_enable_page_fault_notification | int sys_mmapper_enable_page_fault_notification(sys_addr_t start_addr, sys_event_queue_t queue_id); | |
328 | 0x148 | CEX DEX DECR | 7 Params | ||
329 | 0x149 | CEX DEX DECR | sys_mmapper_free_shared_memory | int sys_mmapper_free_shared_memory(sys_addr_t start_addr); | |
330 | 0x14A | CEX DEX DECR | sys_mmapper_allocate_address | int sys_mmapper_allocate_address(size_t size, uint64_t flags, size_t alignment, sys_addr_t * alloc_addr); | |
331 | 0x14B | CEX DEX DECR | sys_mmapper_free_address | int sys_mmapper_free_address(sys_addr_t start_addr); | |
332 | 0x14C | CEX DEX DECR | sys_mmapper_allocate_shared_memory | 4 Params: (uint32_t id? ('UMEM'), size_t size, size_t alignment, sys_memory_t * mem_id) | |
333 | 0x14D | CEX DEX DECR | sys_mmapper_set_shared_memory_flag | int sys_mmapper_set_shared_memory_flag(sys_addr_t, flags) ?; | |
334 | 0x14E | CEX DEX DECR | sys_mmapper_map_shared_memory | 3 Params: (sys_addr_t start_addr, sys_memory_t mem_id, uint64_t flags) ? | |
335 | 0x14F | CEX DEX DECR | sys_mmapper_unmap_shared_memory | 2 Params: (sys_addr_t start_addr,sys_memory_t *mem_id ) ? | |
336 | 0x150 | CEX DEX DECR | sys_mmapper_change_address_access_right | int sys_mmapper_change_address_access_right(sys_addr_t start_addr, uint64_t flags); | |
337 | 0x151 | CEX DEX DECR | sys_mmapper_search_and_map | int sys_mmapper_search_and_map(sys_addr_t start_addr, sys_memory_t mem_id, uint64_t flags, sys_addr_t * alloc_addr); | |
338 | 0x152 | CEX DEX DECR | sys_mmapper_get_shared_memory_attribute | 2 Params: | |
339 | 0x153 | CEX DEX DECR | 5 Params | ||
340 | 0x154 | CEX DEX DECR | 2 Params | ||
341 | 0x155 | CEX DEX DECR | _sys_memory_container_create2 ? | int _sys_memory_container_create2(sys_memory_container_t * cid, size_t yield_size); | |
342 | 0x156 | CEX DEX DECR | sys_memory_container_destroy? | int sys_memory_container_destroy? (sys_memory_container_t cid); | |
343 | 0x157 | CEX DEX DECR | sys_memory_container_get_size | int sys_memory_container_get_size(sys_memory_info_t * mem_info, sys_memory_container_t cid); | |
344 | 0x158 | sys_memory_budget_set | |||
345 | 0x159 | CEX DEX DECR | 3 Params, a variation of sys_memory_container_destroy (sys_memory_container_t cid, int, &out) | ||
346 | 0x15A | CEX DEX DECR | |||
348 | 0x15C | CEX DEX DECR | sys_memory_allocate | int sys_memory_allocate(size_t size, uint64_t flags, sys_addr_t * alloc_addr); | |
349 | 0x15D | CEX DEX DECR | sys_memory_free | int sys_memory_free(sys_addr_t start_addr); | |
350 | 0x15E | CEX DEX DECR | sys_memory_allocate_from_container | int sys_memory_allocate_from_container(size_t size, sys_memory_container_t container, uint64_t flags, sys_addr_t * alloc_addr); | |
351 | 0x15F | CEX DEX DECR | sys_memory_get_page_attribute | int sys_memory_get_page_attribute(sys_addr_t addr, sys_page_attr_t * attr); | |
352 | 0x160 | CEX DEX DECR | sys_memory_get_user_memory_size | int sys_memory_get_user_memory_size(sys_memory_info_t * mem_info); | |
353 | 0x161 | CEX DEX DECR | sys_memory_get_user_memory_stat | int sys_memory_get_user_memory_stat(out:uint8[0x1C]) | |
354 | 0x162 | CEX DEX DECR | root | 3 Params | |
355 | 0x163 | CEX DEX DECR | root | 2 Param: uint32_t *, uint32_t * (set 0, reset memory stats?) | |
356 | 0x164 | CEX DEX DECR | sys_memory_allocate_colored | 4 Params | |
357 | 0x165 | CEX DEX DECR | 2 Params | ||
358 | 0x166 | CEX DEX DECR | 5 Params | ||
359 | 0x167 | CEX DEX DECR | 2 Params | ||
360 | 0x168 | CEX DEX DECR | 7 Params | ||
361 | 0x169 | CEX DEX DECR | sys_memory_allocate_from_container_colored | 5 Params | |
362 | 0x16A | CEX DEX DECR | sys_mmapper_allocate_memory_from_container | sys_mmapper_allocate_memory_from_container(size_t size, sys_memory_container_t container, uint64_t flags, sys_memory_t *mem_id) | |
363 | 0x16B | CEX DEX DECR | 6 Params | ||
364 | 0x16C | DECR | |||
#sys_uart Syscalls (367-370) | |||||
367 | 0x16F | CEX DEX DECR | root | sys_uart_initialize | syscall(367, void) |
368 | 0x170 | CEX DEX DECR | root | sys_uart_receive | sys_uart_receive(out: uint8_t buffer[SizeToReceive], int SizeToReceive (0x400/0x800), 0/1) |
369 | 0x171 | CEX DEX DECR | root | sys_uart_send | sys_uart_send(const void *buf, uint64_t size, uint64_t flags) |
370 | 0x172 | CEX DEX DECR | root | sys_uart_get_params | int sys_uart_get_params(out:buffer[0x10]) |
#sys_game Syscalls (372-376+410-412) | |||||
372 | 0x174 | CEX DEX DECR | sys_game_watchdog_start | 1 param: int time(r) | |
373 | 0x175 | CEX DEX DECR | sys_game_watchdog_stop | int sys_game_watchdog_stop(void) | |
374 | 0x176 | CEX DEX DECR | sys_game_watchdog_clear | int sys_game_watchdog_clear(void) | |
375 | 0x177 | CEX DEX DECR | root | sys_game_set_system_sw_version | int sys_game_set_system_sw_version(uint64_t version) |
376 | 0x178 | CEX DEX DECR | root | sys_game_get_system_sw_version | int sys_game_get_system_sw_version(void) |
#sys_sm/sys_ctrl Syscalls (378-396) | |||||
377 | 0x179 | CEX DEX DECR | root | sys_sm_set_shop_mode | int sys_sm_set_shop_mode(int mode (0/1)) ( HV System Manager access - ServiceID 39 (SET_SHOP_DEMO_MODE)) |
378 | 0x17A | CEX DEX DECR | root | sys_sm_get_ext_event2 | 4 Param, sc378(uint64_t * v1,uint64_t * v2, uint64_t * v3, 0=receive buffer/1=get queuing events), v1==7 -> yesHOT |
379 | 0x17B | CEX DEX DECR | root | sys_sm_shutdown | int sys_sm_shutdown(uint16_t op, const void * lpar_parameter, uint64_t parameter_size )
0x1100/0x100 = turn off, 0x1200 = Lv2 Hard Reboot, 0x200 = Lv2 Soft Reboot, 0x8201 = load lpar id 1 0x8202 = load lpar id 2 0x8204 = load lpar id 3 (PS2_NETEMU) HV System Manager access - ServiceID 1 (REQUEST)+ 10 (DELIVER INTER LPAR PARAMETER) |
380 | 0x17C | CEX DEX DECR | dbg | sys_sm_get_params | alias sys_get_system_parameter, 4 Params: uint64_t * unknown1, uint64_t * unknown2, uint64_t * unknown3, uint64_t * bootparam? (more info: #Boot_Parameter) |
381 | 0x17D | CEX DEX DECR | root | sys_sm_get_inter_lpar_parameter? | 2Params: syscall(381,uint8_t lpar_parameter[param_size], int param_size (0x600)); |
382 | 0x17E | CEX DEX DECR | root | sys_sm_ | int syscall(382, void); - prevents ps3 lpar shutdown ? |
383 | 0x17F | CEX DEX DECR | root | sys_game_get_temperature | int sys_game_get_temperature(0=CELL/1=RSX,uint32_t *temperature) ( HV System Manager access - ServiceID 13 (TEMPERATURE))
2nd Byte conversion: r.shift (second_byte * 0x64 ) by 8 |
384 | 0x180 | CEX DEX DECR | root | sys_sm_get_tzpb | 1 Param: syscall(384,uint64_t *tzpb); (uint8_t [0x20]) Get TimeZone Presence HV System Manager access - ServiceID 15 |
385 | 0x181 | CEX DEX DECR | root | sys_sm_request_led | int sys_sm_request_led( int led_id(1=power,2=status or 3=disk), out:uint8_t led_action[1] ) HV System Manager access - ServiceID 17 |
386 | 0x182 | CEX DEX DECR | root | sys_sm_control_led | int sys_sm_control_led(uint8_t led_id, uint8_t led_action) led_id = 0,1 (STATUS),2 (POWER)(red, green, red+green combined: looks like yellow); led_action = 0,1,2,3 (off,on,blink fast, blink slow) |
387 | 0x183 | CEX DEX DECR | dbg | sys_sm_get_platform_info? | syscall(387, uint8_t platform_info[0x18]) / OS Version, Revision, System Software Version? |
388 | 0x184 | CEX DEX DECR | root | sys_sm_ring_buzzer_too | 2 Params,HV System Manager access - ServiceID 21 (RING_BUZZER) |
389 | 0x185 | CEX DEX DECR | pm | sys_sm_set_fan_policy | int sys_sm_set_fan_policy (in:uint8, in:uint8, in:uint8) |
390 | 0x186 | CEX DEX DECR | root | sys_sm_request_error_log | 4 Params, uint8_t offset (0-0x20), uint8_t *, uint32_t *, uint32_t *
HV System Manager access - ServiceID 26 (REQUEST_ERROR_LOG) |
391 | 0x187 | CEX DEX DECR | root | sys_sm_request_be_count | 4 Params
uint8_t *, uint32_t* total_time_in_seconds, uint32_t* power_on_counter, uint32_t* power_off_counter HV System Manager access - ServiceID 28 (REQUEST_BE_COUNT): |
392 | 0x188 | CEX DEX DECR | root | sys_sm_ring_buzzer | 3 Params: PacketID=0x1004, field2, field4 Hypervisor_Reverse_Engineering#Parameters_6 Parameters |
393 | 0x189 | CEX DEX DECR | root | sys_sm_get_hw_config | gets hardware configuration: syscall(393,uint8_t * res, uint64_t * hw_config) |
394 | 0x18A | CEX DEX DECR | root | sys_sm_request_scversion | uint8_t SoftID[8],old_PatchID[8],new_PatchID[8]; lv2syscall3(394, (uint64_t)SoftID, (uint64_t)old_PatchID, (uint64_t)new_PatchID); HV System Manager access - ServiceID 30 (REQUEST_SC_VERSION) System_Controller_Firmware#.27info0.27 SC Firmware |
395 | 0x18B | CEX DEX DECR | pm | sys_sm_request_system_event_log | int sys_sm_request_system_event_log(int offset(0 - 5),uint64_t *out,uint64_t *out,uint64_t *out,uint8_t buf[0x20], int flag ), 6 Params, HV System Manager access - ServiceID 32 (REQUEST_SYSTEM_EVENT_LOG) |
396 | 0x18C | CEX DEX DECR | root | sys_sm_set_rtc_alarm | int sys_sm_set_rtc_alarm(CellRtcTick *pTick), HV System Manager access - ServiceID 34+38 (RTC_ALARM) |
397 | 0x18D | CEX DEX DECR | root | sys_sm_get_rtc_alarm | 1 Param, HV System Manager access - ServiceID 36 |
398 | 0x18E | CEX DEX DECR | root | sys_console_write | int sys_console_write(const char *s, unsigned int len)(lv2,lv1::console::write_async |
400 | 0x190 | CEX DEX DECR | pm | int sys_request_system_event_log(int offset(0 - 5),uint64_t *out, int flag ) , HV System Manager access - ServiceID 32 (REQUEST_SYSTEM_EVENT_LOG) sys_sm_request_system_event_log too | |
401 | 0x191 | CEX DEX DECR | root | 2 Params: uint64_t param,uint8_t * st (status?/state?)
HV System Manager access - ServiceID 40 (BOOT_PARAMETER) also sends the param to syscon related to 404 | |
#sys_tty Syscalls (402-403) | |||||
402 | 0x192 | CEX DEX DECR | sys_tty_read | int sys_tty_read(unsigned int ch, void *buf, unsigned int len, unsigned int *preadlen); | |
403 | 0x193 | CEX DEX DECR | sys_tty_write | int sys_tty_write(unsigned int ch, const void *buf, unsigned int len, unsigned int *pwritelen); | |
404 | 0x194 | CEX DEX DECR | root | 2 Params: uint64_t * param, uint8_t * st
HV System Manager access - ServiceID 42 (BOOT_PARAMETER) [Network Settings for Debug] related, returns single/dual setting flag? | |
405 | 0x195 | CEX DEX DECR | pm | 2 Params: uint16_t * comp?, uint8_t * st (status?/state?)
HV System Manager access - ServiceID 44 factory_process_comp (0,0), dbg_printf comp value | |
406 | 0x196 | CEX DEX DECR | pm | 2 Params: uint32_t comp? ,uint8_t * st
comp? = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x100 HV System Manager access - ServiceID 46 factory_process_comp (1,x) -> OR-Operation with comp | |
407 | 0x197 | CEX DEX DECR | pm | 1 Param: uint8_t * st
HV System Manager access - ServiceID 48 factory_process_comp (2,0) -> ANDC-Operation with comp=0 | |
408 | 0x198 | CEX DEX DECR | pm | sys_sm_get_tzpb too | 1 Param: out:uint8_t [0x20] same as 384 just requires PM |
409 | 0x199 | CEX DEX DECR | pm | sys_sm_get_fan_policy | int sys_sm_get_fan_policy(uint8_t id, uint8_t *st (status? state?), uint8_t *policy (mode), uint8_t * mode (speed), uint8_t *duty) |
#sys_game Syscalls (372-376+410-412) | |||||
410 | 0x19A | CEX DEX DECR | sys_game_board_storage_read | 2 Params,out:uint8_t[0x10], uint8_t[1], HV System Manager access - ServiceID 54 | |
411 | 0x19B | CEX DEX DECR | sys_game_board_storage_write | 2 Params,in:uint8_t[0x10],uint8_t[1], HV System Manager access - ServiceID 52 | |
412 | 0x19C | DEX DECR | sys_game_get_rtc_status | ||
413 | 0x19D | CEX DEX DECR | root | 3 Params, HV System Manager access - ServiceID 56: out:uint8_t[1],out:uint8_t[1],out:uint8_t[1] | |
414 | 0x19E | CEX DEX DECR | root | 3 Params,in:packetid ,in:uint8_t[0x20],out:uint8_t[1], HV System Manager access - ServiceID 58 | |
415 | 0x19F | CEX DEX DECR | root | 3 Params,in:packetid,out:uint8_t[0x20],out:uint8_t[1], HV System Manager access - ServiceID 60 | |
#sys_overlay Syscalls (450-457) | |||||
450 | 0x1C2 | CEX DEX DECR | sys_overlay_load_module | int sys_overlay_load_module(sys_overlay_t * ovlmid, const char *path, uint64_t flags, sys_addr_t * entry) | |
451 | 0x1C3 | CEX DEX DECR | sys_overlay_unload_module | int sys_overlay_unload_module(sys_overlay_t ovlmid) | |
452 | 0x1C4 | CEX DEX DECR | sys_overlay_get_module_list | int sys_overlay_get_module_list(sys_pid_t pid, size_t ovlmids_num, sys_overlay_t * ovlmids, size_t * num_of_modules) | |
453 | 0x1C5 | CEX DEX DECR | sys_overlay_get_module_info | int sys_overlay_get_module_info(sys_pid_t pid,sys_overlay_t ovlmid, sys_overlay_module_info_t * info) | |
454 | 0x1C6 | CEX DEX DECR | sys_overlay_load_module_by_fd | int sys_overlay_load_module_by_fd(sys_overlay_t * ovlmid, int fd, off64_t offset, uint64_t flags, sys_addr_t * entry) | |
455 | 0x1C7 | CEX DEX DECR | sys_overlay_get_module_info2 | int sys_overlay_get_module_info2(sys_pid_t pid, sys_overlay_t ovlmid, sys_overlay_module_info2_t * info) | |
456 | 0x1C8 | CEX DEX DECR | sys_overlay_get_sdk_version | 2 Params | |
457 | 0x1C9 | CEX DEX DECR | sys_overlay_get_module_dbg_info | 3 Params: (sys_pid_t pid, sys_overlay_t ovlmid, sys_overlay_module_dbg_t * info) ? | |
458 | 0x1CA | CEX DEX DECR | sys_overlay_get_module_dbg_info too | 3 Params: | |
#sys_prx Syscalls (460-499) | |||||
460 | 0x1CC | DEX DECR | root | sys_prx_dbg_get_module_id_list | sys_prx_dbg_get_module_id_list(sys_pid_t pid, sys_prx_dbg_get_module_list_t *pInfo) |
461 | 0x1CD | CEX DEX DECR | sys_prx_get_module_id_by_address | sys_prx_id_t sys_prx_get_module_id_by_address(void* addr) | |
462 | 0x1CE | DEX DECR | 1 Param: uint8_t [0x50] | ||
463 | 0x1CF | CEX DEX DECR | sys_prx_load_module_by_fd | sys_prx_id_t sys_prx_load_module_by_fd(int fd, off64_t offset, sys_prx_flags_t flags, sys_prx_load_module_option_t pOpt) | |
464 | 0x1D0 | CEX DEX DECR | sys_prx_load_module_on_memcontainer_by_fd | sys_prx_id_t sys_prx_load_module_on_memcontainer_by_fd(int fd,off64_t offset,sys_memory_container_t mem_container,sys_prx_flags_t flags,sys_prx_load_module_option_t pOpt) | |
465 | 0x1D1 | CEX DEX DECR | sys_prx_load_module_list | int sys_prx_load_module_list(int n, const char **path_list, uint64_t flags, sys_prx_load_module_list_option_t * pOpt, sys_prx_id_t * idlist) | |
466 | 0x1D2 | CEX DEX DECR | sys_prx_load_module_list_on_memcontainer | sys_prx_id_t sys_prx_load_module_by_fd(int fd, off64_t offset, uint64_t flags, sys_prx_load_module_option_t * pOpt) | |
467 | 0x1D3 | CEX DEX DECR | sys_prx_get_ppu_guid | sys_addr_t sys_prx_get_ppu_guid(sys_prx_id_t id) | |
468 | 0x1D4 | DEX DECR | root | ||
470 | 0x1D6 | CEX DEX DECR | root | int syscall 470 (uint32_t type?, void* npd? [0x60]) | |
471 | 0x1D7 | CEX DEX DECR | root | int syscall_471(uint32_t type, char* titleID, void* klicensee, uint8_t* actdat, uint8_t* rif, int32_t licenseType, uint8_t* magicVersion); | |
472 | 0x1D8 | CEX DEX DECR | root | 2 Params: | |
473 | 0x1D9 | CEX DEX DECR | |||
474 | 0x1DA | CEX DEX DECR | |||
475 | 0x1DB | CEX DEX DECR | root | int syscall_475(uint32_t type, void* npd?, void* klicensee, uint8_t* actdat, uint8_t* rif, uint8_t magicVersion) | |
476 | 0x1DC | CEX DEX DECR | root | can only be either syscall476 (1,0) or syscall476 (0,1) | |
480 | 0x1E0 | CEX DEX DECR | sys_prx_load_module | sys_prx_id_t sys_prx_load_module(const char* path, sys_prx_flags_t flags, sys_prx_load_module_option_t* pOpt) | |
481 | 0x1E1 | CEX DEX DECR | sys_prx_start_module | int sys_prx_start_module(sys_prx_id_t id, sys_prx_flags_t flags, sys_prx_start_t* pOpt) | |
482 | 0x1E2 | CEX DEX DECR | sys_prx_stop_module | int sys_prx_stop_module(sys_prx_id_t id, size_t args, void *argp, int *modres, sys_prx_flags_t flags, sys_prx_stop_module_option_t pOpt) | |
483 | 0x1E3 | CEX DEX DECR | sys_prx_unload_module | int sys_prx_unload_module(sys_prx_id_t id, sys_prx_flags_t flags, sys_prx_unload_module_option_t pOpt); | |
484 | 0x1E4 | CEX DEX DECR | sys_prx_register_module | int sys_prx_register_module(char * name, const sys_prx_register_module_option_t * pOpt) | |
485 | 0x1E5 | CEX DEX DECR | sys_prx_query_module | int sys_prx_query_module(void) // only returns 0 | |
486 | 0x1E6 | CEX DEX DECR | sys_prx_register_library | int sys_prx_register_library(void* library) | |
487 | 0x1E7 | CEX DEX DECR | sys_prx_unregister_library | int sys_prx_unregister_library(void* library) // only returns 0 | |
488 | 0x1E8 | CEX DEX DECR | sys_prx_link_library | int sys_prx_link_library(void) // only returns 0 | |
489 | 0x1E9 | CEX DEX DECR | sys_prx_unlink_library | int sys_prx_unlink_library(void) // only returns 0 | |
490 | 0x1EA | CEX DEX DECR | sys_prx_query_library | int sys_prx_query_library(void) // only returns 0 | |
492 | 0x1EC | CEX DEX DECR | dbg | 4 Params: | |
493 | 0x1ED | CEX DEX DECR | dbg | sys_prx_dbg_get_module_info | int sys_prx_dbg_get_module_info(sys_pid_t pid, sys_prx_id_t id, sys_prx_dbg_module_info* info) |
494 | 0x1EE | CEX DEX DECR | sys_prx_get_module_list | int sys_prx_get_module_list(sys_prx_flags_t flags, sys_prx_get_module_list_t *pInfo); | |
495 | 0x1EF | CEX DEX DECR | sys_prx_get_module_info | int sys_prx_get_module_info(sys_prx_id_t id, sys_prx_flags_t flags, sys_prx_module_info_t *pInfo) | |
496 | 0x1F0 | CEX DEX DECR | sys_prx_get_module_id_by_name | sys_prx_id_t sys_prx_get_module_id_by_name(const char* name, sys_prx_flags_t flags, sys_prx_get_module_id_by_name_option_t *pOpt) | |
497 | 0x1F1 | CEX DEX DECR | sys_prx_load_module_on_memcontainer | sys_prx_id_t sys_prx_load_module_on_memcontainer(const char* path, sys_memory_container_t mem_container, sys_prx_flags_t flags, sys_prx_load_module_option_t pOpt) | |
498 | 0x1F2 | CEX DEX DECR | sys_prx_start | int sys_prx_start (void) // only returns 0 | |
499 | 0x1F3 | CEX DEX DECR | sys_prx_stop | int sys_prx_stop(void) | |
#sys_hid_manager Syscalls | |||||
500 | 0x1F4 | CEX DEX DECR | sys_hid_manager_open | 2 Params |