Talk:LV2 Functions and Syscalls: Difference between revisions
Line 9,530: | Line 9,530: | ||
| syscall_console_putc | | 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) | |||
|- | |||
! colspan="6" id="sys_vm/sys_memory/sys_mmapper Syscalls"|[[#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); | |||
|- | |||
|} | |} |
Revision as of 00:28, 22 May 2017
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); |