Editing LV2 Functions and Syscalls

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 37: Line 37:
int64_t modres;
int64_t modres;
uint64_t pe_func; //casted to sys_prx_entry_pe_t (see sys/prx.h)
uint64_t pe_func; //casted to sys_prx_entry_pe_t (see sys/prx.h)
};
struct np_drm_info_t {
uint32_t magic;
uint32_t version;
uint32_t drm_type;
uint32_t type;
uint8_t content_id[0x30];
struct CellRtcTick validity_start;
struct CellRtcTick validity_end;
struct CellRtcTick current_tick;
struct CellRtcTick current_secure_tick;
};
};
</source>
</source>
Line 374: Line 362:


=== LV2 Syscalls ===
=== LV2 Syscalls ===
{| class="wikitable mw-datatable sortable" style="line-height:110%;"
{| class="wikitable sortable"
|-
|-
! Dec
! Dec
! Hex
! Hex
! style="width:95px" | <abbr title="Firmware Type Specific (CEX,DEX,..)">fw_type</abbr>
! style="width:100px" | <abbr title="Firmware Type Specific (CEX,DEX,..)">fw_type</abbr>
! <abbr title="Additional Settings/Flags required (Control Flags,Product Mode,..)">needed_flags</abbr>
! <abbr title="Additional Settings/Flags required (Control Flags,Product Mode,..)">needed_flags</abbr>
! Name
! Name
Line 551: Line 539:
| {{Root}}
| {{Root}}
| sys_process_get_sdk_version
| sys_process_get_sdk_version
| int sys_process_get_sdk_version(sys_pid_t pid, uint32_t* sdk_version)
| 2 params :sys_pid_t pid, uint8_t outbuf[4]
Only needs root permission if 'pid' is not the current process.
|-
|-
| 26
| 26
Line 986: Line 973:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_create
| sys_lwmutex_create
| int _sys_lwmutex_create(sys_lwmutex_pseudo_id_t* lwmutex, sys_protocol_t protocol, sys_lwmutex_t *control, int has_name, uint64_t name)
| int sys_lwmutex_create(sys_lwmutex_t *lwmutex, sys_lwmutex_attribute_t *attr)
|-
|-
| 96
| 96
Line 993: Line 980:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_destroy
| sys_lwmutex_destroy
| int _sys_lwmutex_destroy(sys_lwmutex_pseudo_id_t lwmutex)
| int sys_lwmutex_destroy(sys_lwmutex_t *lwmutex)
|-
|-
| 97
| 97
Line 1,000: Line 987:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_lock
| sys_lwmutex_lock
| int _sys_lwmutex_lock(sys_lwmutex_pseudo_id_t lwmutex, usecond_t timeout)
| int sys_lwmutex_lock(sys_lwmutex_t *lwmutex, usecond_t timeout)
|-
|-
| 98
| 98
Line 1,007: Line 994:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_unlock
| sys_lwmutex_unlock
| int _sys_lwmutex_unlock(sys_lwmutex_pseudo_id_t lwmutex)
| int sys_lwmutex_unlock(sys_lwmutex_t *lwmutex)
|-
|-
| 99
| 99
Line 1,014: Line 1,001:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_trylock
| sys_lwmutex_trylock
| int _sys_lwmutex_trylock(sys_lwmutex_pseudo_id_t lwmutex)
| int sys_lwmutex_trylock(sys_lwmutex_t *lwmutex)
|-
|-
! colspan="6" id="sys_mutex Syscalls"|[[#sys_mutex Syscalls]] (100-104)
! colspan="6" id="sys_mutex Syscalls"|[[#sys_mutex Syscalls]] (100-104)
Line 1,104: Line 1,091:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwcond_create
| sys_lwcond_create
| int _sys_lwcond_create(sys_lwcond_pseudo_id_t *lwcond, sys_lwmutex_pseudo_id_t lwmutex, sys_lwcond_t *control, uint64_t name)
| int sys_lwcond_create(sys_lwcond_t *lwcond, sys_lwmutex_t *lwmutex, sys_lwcond_attribute_t *attr)
|-
|-
| 112
| 112
Line 1,111: Line 1,098:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwcond_destroy
| sys_lwcond_destroy
| int _sys_lwcond_destroy(sys_lwcond_pseudo_id_t lwcond)
| int sys_lwcond_destroy(sys_lwcond_t *lwcond)
|-
|-
| 113
| 113
Line 1,118: Line 1,105:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwcond_queue_wait
| sys_lwcond_queue_wait
| int _sys_lwcond_queue_wait(sys_lwcond_pseudo_id_t lwcond, sys_lwmutex_pseudo_id_t lwmutex, usecond_t timeout)
| int sys_lwcond_queue_wait(sys_lwcond_t lwcond, sys_lwmutex_t lwmutex, __int64 timeout)
|-
|-
! colspan="6" id="sys_semaphore Syscalls"|[[#sys_semaphore Syscalls]] (90-94+114)
! colspan="6" id="sys_semaphore Syscalls"|[[#sys_semaphore Syscalls]] (90-94+114)
Line 1,134: Line 1,121:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwcond_signal
| sys_lwcond_signal
| int _sys_lwcond_signal(sys_lwcond_pseudo_id_t lwcond, sys_lwmutex_pseudo_id_t lwmutex, sys_ppu_thread_t ppu_thread_id, uint32_t mode)
| 4 params
|-
|-
| 116
| 116
Line 1,141: Line 1,128:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwcond_signal_all
| sys_lwcond_signal_all
| int _sys_lwcond_signal_all(sys_lwcond_pseudo_id_t lwcond, sys_lwmutex_pseudo_id_t lwmutex, uint32_t mode)
| 3 params
|-
|-
| 117
| 117
Line 1,148: Line 1,135:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| _sys_lwmutex_unlock2
| sys_lwmutex
| int _sys_lwmutex_unlock2(sys_lwmutex_pseudo_id_t lwmutex)
| 1 params : sys_lwmutex_t *lwmutex
Sets a different "unlocked" flag than _sys_lwmutex_unlock.
|-
|-
! colspan="6" id="sys_event Syscalls"|[[#sys_event Syscalls]] (82+83+85-87+118+128-140)
! colspan="6" id="sys_event Syscalls"|[[#sys_event Syscalls]] (82+83+85-87+118+128-140)
Line 1,422: Line 1,408:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_spu_image_get_information
| sys_spu_image_get_information?
| int sys_spu_image_get_information(sys_spu_image_t *img, int *entry_point, int *nsegs)
| int sys_spu_image_get_information?(sys_spu_image_t *img, out:uint[4],out:uint[4])
|-
|-
| 156
| 156
Line 1,450: Line 1,436:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_spu_image_get_segments
| sys_raw_spu_load
| int sys_spu_image_get_segments(sys_spu_image_t *img, sys_spu_segment_t* segments, int size)
| 3 Params ( sys_spu_image_t * img, sys_addr_t alloc_addr, int size? ), needs much more proper information
Used by sys_raw_spu_load liblv2 function.
|-
|-
| 160
| 160
Line 1,501: Line 1,486:
|
|
| sys_spu_initialize
| sys_spu_initialize
| int sys_spu_initialize(uint32_t max_usable_spu, uint32_t max_raw_spu)
| int sys_spu_initialize(unsigned int max_usable_spu, unsigned int max_raw_spu)
|-
|-
| 170
| 170
Line 1,508: Line 1,493:
|
|
| sys_spu_thread_group_create
| sys_spu_thread_group_create
| int sys_spu_thread_group_create(sys_spu_thread_group_t *id, uint32_t num, int prio, sys_spu_thread_group_attribute_t *attr)
| 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
| 171
Line 1,522: Line 1,507:
|
|
| sys_spu_thread_initialize
| sys_spu_thread_initialize
| int sys_spu_thread_initialize(sys_spu_thread_t *thread, sys_spu_thread_group_t group, uint32_t spu_num, sys_spu_image_t *img, sys_spu_thread_attribute_t *attr, sys_spu_thread_argument_t *arg)
| 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
| 173
Line 1,944: Line 1,929:
|
|
| sys_spu_thread_group_set_cooperative_victims
| sys_spu_thread_group_set_cooperative_victims
| int sys_spu_thread_group_set_cooperative_victims(sys_spu_thread_group_t group, u32 threads_mask)
| 2 Params
Only allowed for COOPERATE_WITH_SYSTEM spu thread group types.
|-
|-
| 251
| 251
Line 1,965: Line 1,949:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_spu_thread_group_get_cooperative_information
| sys_spu_thread_group..
| int sys_spu_thread_group_get_cooperative_information(sys_spu_thread_group_t id, sys_spu_thread_group_cooperative_info_t* info)
| 2 Params( sys_spu_thread_group_t id, out:uint8[0x40])
Only allowed for COOPERATE_WITH_SYSTEM spu thread group types.
|-
|-
| 254
| 254
Line 2,143: Line 2,126:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_mmapper_allocate_shared_memory_from_container_ext
|sys_mmapper_allocate_shared_memory_ext
| int sys_mmapper_allocate_shared_memory_from_container_ext(uint64_t shmem_key, uint32_t size, uint64_t pageSizeFlags, sys_memory_container_t memory_container_id, void *entries, uint32_t entry_count, sys_memory_t *mem_id)
| int sys_mmapper_allocate_shared_memory_ext(u64 shmem_key, u32 size, u64 pageSizeFlags, u32 memory_container_id, void *entries, u32 entry_count, u32 *mem_id)
|-
|-
| 329
| 329
Line 2,172: Line 2,155:
|
|
| sys_mmapper_allocate_shared_memory
| sys_mmapper_allocate_shared_memory
| int sys_mmapper_allocate_shared_memory(u64 shmem_key, size_t size, size_t alignment, sys_memory_t* mem_id)  
| 4 Params: (uint32_t id? ('UMEM'), size_t size, size_t alignment, sys_memory_t * mem_id)  
|-
|-
| 333
| 333
Line 2,186: Line 2,169:
|
|
| sys_mmapper_map_shared_memory
| sys_mmapper_map_shared_memory
| int sys_mmapper_map_shared_memory(sys_addr_t start_addr, sys_memory_t mem_id, uint64_t flags)
| 3 Params: (sys_addr_t start_addr, sys_memory_t mem_id, uint64_t flags) ?
|-
|-
| 335
| 335
Line 2,193: Line 2,176:
|
|
| sys_mmapper_unmap_shared_memory
| sys_mmapper_unmap_shared_memory
| int sys_mmapper_unmap_shared_memory(sys_addr_t start_addr,sys_memory_t *mem_id)
| 2 Params: (sys_addr_t start_addr,sys_memory_t *mem_id ) ?
|-
|-
| 336
| 336
Line 2,220: Line 2,203:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_mmapper_allocate_shared_memory_ext
|
| int sys_mmapper_allocate_shared_memory_ext(uint64_t shmem_key, uint32_t size, uint64_t pageSizeFlags, void *entries, uint32_t entry_count, sys_memory_t *mem_id)
| 5 Params
|-
|-
| 340
| 340
Line 2,527: Line 2,510:
| {{Root}}
| {{Root}}
| sys_game_get_temperature
| sys_game_get_temperature
| int sys_game_get_temperature(uint8_t tzone, uint32_t *temperature) ( HV System Manager access - ServiceID 13 (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<br>
2nd Byte conversion: r.shift (second_byte * 0x64 ) by 8<br>
Example: 195 = 0xC3 -> 0xC3 * 0x64 -> 0x4C2C ->> shift -> 0x4C -> XX.76°C
Example: 195 = 0xC3 -> 0xC3 * 0x64 -> 0x4C2C ->> shift -> 0x4C -> XX.76°C
tzone =
0x00 = CELL
0x01 = RSX
0x14 = SB  (tested only on COK-00x, but according to
        https://www.psdevwiki.com/ps3/Thermal#Temperature_Monitors sensor is available and connected up to DIA-001)
other = Untested, but likely unavailable on retail models.
|-
|-
| 384
| 384
Line 2,542: Line 2,519:
| {{Root}}
| {{Root}}
| sys_sm_get_tzpb
| sys_sm_get_tzpb
| 1 Param: syscall(384,uint64_t *tzpb); (uint8_t [0x20]) Get Thermal Zone (Presence/Broadcast?) <br> HV System Manager access - ServiceID 15
| 1 Param: syscall(384,uint64_t *tzpb); (uint8_t [0x20]) Get TimeZone Presence <br> HV System Manager access - ServiceID 15
|-
|-
| 385
| 385
Line 2,583: Line 2,560:
| {{Productmode}}
| {{Productmode}}
| sys_sm_set_fan_policy
| sys_sm_set_fan_policy
| int sys_sm_set_fan_policy (in:uint8, in:uint8, in:uint8)<!--// int sys_sm_set_fan_policy(u8 arg0, u8 arg1, u8 arg2) //--><br>Similar than the [[Syscon Firmware|syscon UART]] external command ''"FAN SETPOLICY"'' or the internal command ''"fanconpolicy set"''
| int sys_sm_set_fan_policy (in:uint8, in:uint8, in:uint8)<!--// int sys_sm_set_fan_policy(u8 arg0, u8 arg1, u8 arg2) //-->
|-
|-
| 390
| 390
Line 2,599: Line 2,576:
| sys_sm_request_be_count
| sys_sm_request_be_count
| 4 Params
| 4 Params
  uint8_t * status,
  uint8_t *,
  uint32_t* total_time_in_seconds,
  uint32_t* total_time_in_seconds,
  uint32_t* power_on_counter,
  uint32_t* power_on_counter,
Line 2,637: Line 2,614:
| {{Root}}
| {{Root}}
| sys_sm_request_scversion
| 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);<br />HV System Manager access - ServiceID 30 (REQUEST_SC_VERSION) [[Syscon_Firmware#.27info0.27 SC Firmware]]
| uint8_t SoftID[8],old_PatchID[8],new_PatchID[8]; lv2syscall3(394, (uint64_t)SoftID, (uint64_t)old_PatchID, (uint64_t)new_PatchID);<br />HV System Manager access - ServiceID 30 (REQUEST_SC_VERSION) [[System_Controller_Firmware#.27info0.27 SC Firmware]]
|-
|-
| 395
| 395
Line 2,644: Line 2,621:
| {{Productmode}}
| {{Productmode}}
| sys_sm_request_system_event_log
| 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). See also syscall 400 and [[Factory_Service_Mode#Game_OS|this]]
| 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
| 396
Line 2,665: Line 2,642:
| {{Root}}
| {{Root}}
| sys_console_write
| sys_console_write
| int sys_console_write(const char *s, uint32_t len)(lv2,lv1::console::write_async <!--///*
| int sys_console_write(const char *s, unsigned int len)(lv2,lv1::console::write_async <!--///*
  * lv2_lv1_log_write
  * lv2_lv1_log_write
  */
  */
static inline int lv2_lv1_log_write(const char *s, uint32_t len)
static inline int lv2_lv1_log_write(const char *s, unsigned int len)
{
{
return Lv2Syscall2(398, (uint64_t) s, len);
return Lv2Syscall2(398, (uint64_t) s, len);
Line 2,685: Line 2,662:
| {{Productmode}}
| {{Productmode}}
|  
|  
| 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) <br> sys_sm_request_system_event_log too. See also syscall 395 and [[Factory_Service_Mode#Game_OS|this]]
| 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) <br> sys_sm_request_system_event_log too
|-
|-
| 401
| 401
Line 2,694: Line 2,671:
| 2 Params: uint64_t param,uint8_t * st (status?/state?)
| 2 Params: uint64_t param,uint8_t * st (status?/state?)
  HV System Manager access - ServiceID 40 (BOOT_PARAMETER)
  HV System Manager access - ServiceID 40 (BOOT_PARAMETER)
See also syscall 404, [[SC_EEPROM|syscon EEPROM]] "boot param" and [[Factory_Service_Mode#Game_OS|this]], also sends the param to syscon
also sends the param to syscon
related to 404
|-
|-
! colspan="6" id="sys_tty Syscalls"|[[#sys_tty Syscalls]] (402-403)
! colspan="6" id="sys_tty Syscalls"|[[#sys_tty Syscalls]] (402-403)
Line 2,703: Line 2,681:
|
|
| sys_tty_read
| sys_tty_read
| int sys_tty_read(uint32_t ch, void *buf, uint32_t len, uint32_t *preadlen);
| int sys_tty_read(unsigned int ch, void *buf, unsigned int len, unsigned int *preadlen);
|-
|-
| 403
| 403
Line 2,710: Line 2,688:
|
|
| sys_tty_write
| sys_tty_write
| int sys_tty_write(uint32_t ch, const void *buf, uint32_t len, uint32_t *pwritelen);
| int sys_tty_write(unsigned int ch, const void *buf, unsigned int len, unsigned int *pwritelen);
|-
|-
| 404
| 404
Line 2,720: Line 2,698:
  HV System Manager access - ServiceID 42 (BOOT_PARAMETER)
  HV System Manager access - ServiceID 42 (BOOT_PARAMETER)
  [Network Settings for Debug] related, returns single/dual setting flag?
  [Network Settings for Debug] related, returns single/dual setting flag?
See also syscall 401, [[SC_EEPROM|syscon EEPROM]] "boot param" and [[Factory_Service_Mode#Game_OS|this]]
|-
|-
| 405
| 405
Line 2,730: Line 2,707:
  HV System Manager access - ServiceID 44  
  HV System Manager access - ServiceID 44  
  factory_process_comp (0,0),  dbg_printf comp value
  factory_process_comp (0,0),  dbg_printf comp value
See [[SC_EEPROM|syscon EEPROM]] "factory process completion" and [[Factory_Service_Mode#Game_OS|this]]
|-
|-
| 406
| 406
Line 2,741: Line 2,717:
  HV System Manager access - ServiceID 46  
  HV System Manager access - ServiceID 46  
  factory_process_comp (1,x) -> OR-Operation with comp
  factory_process_comp (1,x) -> OR-Operation with comp
See [[SC_EEPROM|syscon EEPROM]] "factory process completion" and [[Factory_Service_Mode#Game_OS|this]]
|-
|-
| 407
| 407
Line 2,751: Line 2,726:
  HV System Manager access - ServiceID 48
  HV System Manager access - ServiceID 48
  factory_process_comp (2,0) -> ANDC-Operation with comp=0
  factory_process_comp (2,0) -> ANDC-Operation with comp=0
See [[SC_EEPROM|syscon EEPROM]] "factory process completion" and [[Factory_Service_Mode#Game_OS|this]]
|-
|-
| 408
| 408
Line 2,765: Line 2,739:
| {{Productmode}}
| {{Productmode}}
| sys_sm_get_fan_policy
| 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)<br>Similar than the [[Syscon Firmware|syscon UART]] external command ''"FAN GETPOLICY"'' or the internal command ''"fanconpolicy get"''
| 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)
|-
|-
! colspan="6" id="sys_game Syscalls"|[[#sys_game Syscalls]] (372-376+410-412)
! colspan="6" id="sys_game Syscalls"|[[#sys_game Syscalls]] (372-376+410-412)
Line 2,860: Line 2,834:
|
|
| sys_overlay_get_sdk_version
| sys_overlay_get_sdk_version
| int sys_overlay_get_sdk_version(sys_overlay_t ovlmid, uint32_t* sdk_ver)
| 2 Params
|-
|-
| 457
| 457
Line 2,946: Line 2,920:
| {{Root}}
| {{Root}}
| sys_npdrm_check_ekc
| sys_npdrm_check_ekc
| int syscall 470 (sys_pid_t pid, np_drm_info_t* np_drm_info)
| int syscall 470 (uint32_t type?, void* npd? [0x60])
|-
|-
| 471
| 471
Line 2,955: Line 2,929:
| int syscall_471(uint32_t type, char* titleID, void* klicensee, uint8_t* actdat, uint8_t* rif, int32_t licenseType, uint8_t* magicVersion);<!--//The function has different parameters depending if the content is debug, free or paid:
| int syscall_471(uint32_t type, char* titleID, void* klicensee, uint8_t* actdat, uint8_t* rif, int32_t licenseType, uint8_t* magicVersion);<!--//The function has different parameters depending if the content is debug, free or paid:
FREE: syscall471(npd.type, &npd.titleID, freeklicensee, NULL, NULL, npd.license, &npd);
FREE: syscall471(npd.type, &npd.titleID, freeklicensee, NULL, NULL, npd.license, &npd);
PAID: syscall471(npd.type, &npd.titleID, NULL, &actdat.keyTable[rif.actDatIndex], &rif.key, npd.license, &npd);
PAID: syscall471(npd.type, &npd.titleID, NULL, &actdat.keyTable[rif.actDatIndex], &rif.key, npd.license, &npd);//-->
Deprecated on modern firmwares, use syscall 475 instead; //-->
|-
|-
| 472
| 472
Line 2,983: Line 2,956:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
| {{Root}}
| {{Root}}
| sys_npdrm_regist_ekc2 ?
|
| int syscall_475(sys_pid_t pid, np_drm_info_t* np_drm_info, void* klicensee, uint8_t* actdat, uint8_t* rif, uint8_t magicVersion)
| int syscall_475(uint32_t type, void* npd?, void* klicensee, uint8_t* actdat, uint8_t* rif, uint8_t magicVersion)
|-
|-
| 476
| 476
Line 3,508: Line 3,481:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_usbd_unregister_extra_ldd
|
| 3 Params,  , name, name_len
| 3 Params
|-
|-
| 559
| 559
Line 3,640: Line 3,613:
| sys_pad_manager_....
| sys_pad_manager_....
| int sys_pad_manager_.... (int8_t device_number?)
| int sys_pad_manager_.... (int8_t device_number?)
Intended to be used under [[Factory_Service_Mode#Game_OS|Factory Service Mode]]
|-
|-
! colspan="6" id="sys_bluetooth Syscalls"|[[#sys_bluetooth Syscalls]]
! colspan="6" id="sys_bluetooth Syscalls"|[[#sys_bluetooth Syscalls]]
Line 3,655: Line 3,627:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|  
|  
| sys_bluetooth_aud_serial_unk1...
| sys_bluetooth_aud_serial_unk1(0x243,0,unk1*,aud_serial*,unk2*,unk3*,unk4*)
| sys_bluetooth_aud_serial_unk1(0x243,0,unk1*,aud_serial*,unk2*,unk3*,unk4*) <br> 0xD0044D40  00 00 00 00 / 0xD0044D44  00 82 8E 18 --> 00 7D 39 A0 --> 0x007D39A0  5F 61 75 64 5F 53 45 52 49 41 4C 00 00 00 00 00 _aud_SERIAL..... / 0xD0044D48  00 00 00 00 / 0xD0044D4C  00 00 00 00
|0xD0044D40  00 00 00 00 / 0xD0044D44  00 82 8E 18 --> 00 7D 39 A0 --> 0x007D39A0  5F 61 75 64 5F 53 45 52 49 41 4C 00 00 00 00 00 _aud_SERIAL..... / 0xD0044D48  00 00 00 00 / 0xD0044D4C  00 00 00 00
|-
|-
| 580
| 580
Line 3,841: Line 3,813:
|
|
| sys_storage_send_device_command
| sys_storage_send_device_command
| int sys_storage_send_device_command(uint32_t device_handle, uint32_t command, void *indata, uint64_t inlen, void *outdata, uint64_t outlen)
| int sys_storage_send_device_command(uint32_t device_handle, unsigned int command, void *indata, uint64_t inlen, void *outdata, uint64_t outlen)


|-
|-
Line 4,178: Line 4,150:
|
|
| sys_rsxaudio_initialize
| sys_rsxaudio_initialize
| int sys_rsxaudio_initialize(uint32_t* out_handle)
| int sys_rsxaudio_initialize(out:uint8[4])
|-
|-
| 651
| 651
Line 4,185: Line 4,157:
|
|
| sys_rsxaudio_finalize
| sys_rsxaudio_finalize
| int sys_rsxaudio_finalize(uint32_t handle)
| 1 Params
|-
|-
| 652
| 652
Line 4,192: Line 4,164:
|
|
| sys_rsxaudio_import_shared_memory
| sys_rsxaudio_import_shared_memory
| int sys_rsxaudio_import_shared_memory(uint32_t handle, uint64_t* out_addr)
| 2 Params
|-
|-
| 653
| 653
Line 4,199: Line 4,171:
|
|
| sys_rsxaudio_unimport_shared_memory
| sys_rsxaudio_unimport_shared_memory
| int sys_rsxaudio_unimport_shared_memory(uint32_t handle, uint64_t* addr)
| 2 Params
|-
|-
| 654
| 654
Line 4,206: Line 4,178:
|
|
| sys_rsxaudio_create_connection
| sys_rsxaudio_create_connection
| int sys_rsxaudio_create_connection(uint32_t handle)
| 1 Params
|-
|-
| 655
| 655
Line 4,213: Line 4,185:
|
|
| sys_rsxaudio_close_connection
| sys_rsxaudio_close_connection
| int sys_rsxaudio_close_connection(uint32_t handle)
| 1 Params
|-
|-
| 656
| 656
Line 4,220: Line 4,192:
|
|
| sys_rsxaudio_prepare_process
| sys_rsxaudio_prepare_process
| int sys_rsxaudio_prepare_process(uint32_t handle)
| 1 Params
|-
|-
| 657
| 657
Line 4,227: Line 4,199:
|
|
| sys_rsxaudio_start_process
| sys_rsxaudio_start_process
| int sys_rsxaudio_start_process(uint32_t handle)
| 1 Params
|-
|-
| 658
| 658
Line 4,234: Line 4,206:
|
|
| sys_rsxaudio_stop_process
| sys_rsxaudio_stop_process
| int sys_rsxaudio_stop_process(uint32_t handle)
| 1 Params
|-
|-
| 659
| 659
Line 4,240: Line 4,212:
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
|
|
| sys_rsxaudio_get_dma_param
| sys_rsxaudio_
| int sys_rsxaudio_get_dma_param(uint32_t handle, uint32_t flag, uint64_t* param_out)
| 3 Params
Flag:
0 = dma io address
1 = dma io id
|-
|-
! colspan="6" id="sys_rsx Syscalls"|[[#sys_rsx Syscalls]] (666-677)
! colspan="6" id="sys_rsx Syscalls"|[[#sys_rsx Syscalls]] (666-677)
Line 4,267: Line 4,236:
|
|
| sys_rsx_memory_allocate
| sys_rsx_memory_allocate
| (uint32_t *mem_ctx_id, uint32_t *local_addr, uint64_t tile_max_size, uint64_t zcull_max_size, uint64_t tile_max_areas, uint64_t zcull_max_areas);
| (uint32_t *mem_ctx_id, uint32_t *local_addr, uint64_t arg_4, uint64_t arg_5, uint64_t arg_6, uint64_t arg_7);
|-
|-
| 669
| 669
Line 4,770: Line 4,739:
|
|
| sys_fs_link
| sys_fs_link
| int sys_fs_link(const char* path_from, const char* path_to)
| int sys_fs_link(char  const*, char  const*)
|-
|-
| 811
| 811
Line 4,819: Line 4,788:
|
|
| sys_fs_fcntl
| sys_fs_fcntl
| int sys_fs_fcntl(int fd, int operation, void* ptr, uint64_t)
| int sys_fs_fcntl(int, int, void *, unsigned long)
'fd' may be set to -1 or other invalid values if the operation is not using it.
'ptr' may be casted to different types depends on the operation or not be used at all.
|-
|-
| 818
| 818
Line 4,849: Line 4,816:
|
|
| sys_fs_fget_block_size
| sys_fs_fget_block_size
| int sys_fs_fget_block_size(int fd, uint64_t* sector_size, uint64_t* block_size, uint64_t* arg4, int* out_flags)
| int sys_fs_fget_block_size(int, unsigned long *, unsigned long *, unsigned long *, int *)
|-
|-
| 822
| 822
Line 4,856: Line 4,823:
|
|
| sys_fs_get_block_size
| sys_fs_get_block_size
| int sys_fs_get_block_size(const char* path, uint64_t* block_size, uint64_t* arg4)
| int sys_fs_get_block_size(char  const*, unsigned long *, unsigned long *, unsigned long *)
|-
|-
| 823
| 823
Line 4,863: Line 4,830:
|
|
| sys_fs_acl_read
| sys_fs_acl_read
| int sys_fs_acl_read(const char* path, CellFsAcl *)
| int sys_fs_acl_read(char  const*, CellFsAcl *)
|-
|-
| 824
| 824
Line 4,870: Line 4,837:
|
|
| sys_fs_acl_write
| sys_fs_acl_write
| int sys_fs_acl_read(const char* path, CellFsAcl *)
| int sys_fs_acl_read(char  const*, CellFsAcl *)
|-
|-
| 825
| 825
Line 4,877: Line 4,844:
|
|
| sys_fs_lsn_get_cda_size
| sys_fs_lsn_get_cda_size
| int sys_fs_lsn_get_cda_size(int fd, uint64_t*)
| int sys_fs_lsn_get_cda_size(int, unsigned long *)
|-
|-
| 826
| 826
Line 4,884: Line 4,851:
|
|
| sys_fs_lsn_get_cda
| sys_fs_lsn_get_cda
| int sys_fs_lsn_get_cda(int fd, CellFsCda*, uint64_t, uint64_t*)
| int sys_fs_lsn_get_cda(int, CellFsCda *, unsigned long, unsigned long *)
|-
|-
| 827
| 827
Line 4,891: Line 4,858:
|
|
| sys_fs_lsn_lock
| sys_fs_lsn_lock
| int sys_fs_lsn_lock(int fd)
| int sys_fs_lsn_lock(int)
|-
|-
| 828
| 828
Line 4,898: Line 4,865:
|
|
| sys_fs_lsn_unlock
| sys_fs_lsn_unlock
| int sys_fs_lsn_unlock(int fd)
| int sys_fs_lsn_unlock(int)
|-
|-
| 829
| 829
Line 4,905: Line 4,872:
|
|
| sys_fs_lsn_read
| sys_fs_lsn_read
| int sys_fs_lsn_read(int fd, const CellFsCda*, uint64_t size)
| int sys_fs_lsn_read(int, CellFsCda  const*, unsigned long)
|-
|-
| 830
| 830
Line 4,912: Line 4,879:
|
|
| sys_fs_lsn_write
| sys_fs_lsn_write
| int sys_fs_lsn_write(int fd, const CellFsCda*, uint64_t size)
| int sys_fs_lsn_write(int, CellFsCda  const*, unsigned long)
|-
|-
| 831
| 831
Line 4,933: Line 4,900:
|
|
| sys_fs_symbolic_link
| sys_fs_symbolic_link
| int sys_fs_symbolic_link(const char* target_path, const char* link_path)
| int sys_fs_symbolic_link(char  const*, char  const*)
|-
|-
| 834
| 834
Line 4,947: Line 4,914:
|
|
| sys_fs_chown
| sys_fs_chown
| int sys_fs_chown(const char* path, int uid, int gid)
| int sys_fs_chown(char  const*, int, int)
|-
|-
| 836
| 836
Line 4,954: Line 4,921:
|
|
| sys_fs_newfs
| sys_fs_newfs
| int sys_fs_newfs(const char* deviceName, const char*, int, const char**)  
| int sys_fs_newfs(char const* deviceName, char  const*, int, char  const**)  
|-
|-
| 837
| 837
Line 4,961: Line 4,928:
|
|
| sys_fs_mount
| sys_fs_mount
| int sys_fs_mount(const char* deviceName, const char*, const char*, int, int, int, const char**) <br>Example: Device Name (e.g CELL_FS_IOS:BUILTIN_FLSH1), Device File System (e.g CELL_FS_FAT), Device Path (e.g. /dev_flash), 0, Write Protection (0 or 1), 0, 0, 0
| int sys_fs_mount(char const* deviceName, char  const*, char  const*, int, int, int, char  const**) <br>Example: Device Name (e.g CELL_FS_IOS:BUILTIN_FLSH1), Device File System (e.g CELL_FS_FAT), Device Path (e.g. /dev_flash), 0, Write Protection (0 or 1), 0, 0, 0
|-
|-
| 838
| 838
Line 4,968: Line 4,935:
|
|
| sys_fs_unmount
| sys_fs_unmount
| int sys_fs_unmount(const char* device_path, int, int)<br>Parameters: Device Path (e.g. /dev_flash)
| int sys_fs_unmount(char  const*, int, int)<br>Parameters: Device Path (e.g. /dev_flash)
|-
|-
| 839
| 839
Line 4,988: Line 4,955:
|
|
| sys_fs_disk_free
| sys_fs_disk_free
| int sys_fs_disk_free(const char* path, uint64_t* total_free, uint64_t* avail_free)
| int sys_fs_disk_free(char  const*, unsigned long *, unsigned long *)
|-
|-
| 841
| 841
Line 4,995: Line 4,962:
|
|
| sys_fs_get_mount_info_size
| sys_fs_get_mount_info_size
| int sys_fs_get_mount_info_size(uint64_t* out_length)
| int sys_fs_get_mount_info_size(unsigned long *)
'out_length' is set to the number of mounted devices sys_fs_get_mount_info may write at max.
|-
|-
| 842
| 842
Line 5,003: Line 4,969:
|
|
| sys_fs_get_mount_info
| sys_fs_get_mount_info
| int sys_fs_get_mount_info(CellFsMountInformation* info, uint64_t buffer_length, uint64_t* written_length)
| int sys_fs_get_mount_info(CellFsMountInformation *, unsigned long, unsigned long *)
'buffer_length' is the number entries 'info' points.
'written_length' is the number of entries written to 'info', lower/equal to 'buffer_length'.
|-
|-
| 843
| 843
Line 5,012: Line 4,976:
|
|
| sys_fs_get_fs_info_size
| sys_fs_get_fs_info_size
| int sys_fs_get_fs_info_size(uint64_t *)
| int sys_fs_get_fs_info_size(unsigned long *)
|-
|-
| 844
| 844
Line 5,019: Line 4,983:
|
|
| sys_fs_get_fs_info
| sys_fs_get_fs_info
| int sys_fs_get_fs_info(uint64_t, uint64_t *, CellFsInfo *)
| int sys_fs_get_fs_info(ulong, ulong*, CellFsInfo *)
|-
|-
| 845
| 845
Line 5,026: Line 4,990:
|
|
| sys_fs_mapped_allocate
| sys_fs_mapped_allocate
| int sys_fs_mapped_allocate(int, uint64_t, void **)
| int sys_fs_mapped_allocate(int, unsigned long, void **)
|-
|-
| 846
| 846
Line 5,146: Line 5,110:
| 0x364
| 0x364
| {{DECR}} {{DEX}} {{CEX}}
| {{DECR}} {{DEX}} {{CEX}}
| {{Root}}&nbsp;{{Dbg}}&nbsp;{{Authid}}
| {{Root}} / {{Dbg}} {{Authid}}
| sys_ss_individual_info_manager
| sys_ss_individual_info_manager
| [[Indi_Info_Manager|indi_info_manager_if (Interface)]] <!--///*
| [[Indi_Info_Manager|indi_info_manager_if (Interface)]] <!--///*
Line 5,172: Line 5,136:
| sys_ss_get_console_id
| sys_ss_get_console_id
| int sys_ss_get_console_id(uint8_t *buf) //returns [[IDPS]] in buf
| int sys_ss_get_console_id(uint8_t *buf) //returns [[IDPS]] in buf
later firmwares require root flags, QA flag, not allowed on DEX/TOOL
|-
|-
| 871
| 871
Line 5,179: Line 5,142:
| {{dbg}}
| {{dbg}}
| sys_ss_access_control_engine
| sys_ss_access_control_engine
| 3 params, their types and usage depends on 'pkg_id'.
| 3 params
  (pkg_id=1,sys_pid_t,out:uint64_t)  
  (1,sys_pid_t,out:uint8_t [8])  
  (pkd_id=2,out:uint64_t,0) // returns [[Program Authority ID]]
  (2,out:uint8_t [8],0) // returns [[Authentication_IDs]]
  (pkg_id=3,out:uint64_t,0)
  (3,out:uint8_t [8],0)
|-
|-
| 872
| 872
Line 5,727: Line 5,690:
|
|
| sys_dbg_get_lwcond_information
| sys_dbg_get_lwcond_information
| int sys_dbg_get_lwcond_information (sys_pid_t id, sys_lwcond_pseudo_id_t id, sys_dbg_lwcond_information_t* info )
| int sys_dbg_get_lwcond_information (sys_pid_t id,   sys_lwcond_pseudo_id_t id, sys_dbg_lwcond_information_t* info )
|-
|-
| 952
| 952
Line 5,741: Line 5,704:
|  
|  
| sys_dbg_vm_get_page_information  
| sys_dbg_vm_get_page_information  
| int sys_dbg_vm_get_page_information (sys_pid_t id, sys_addr_t addr, uint32_t num, sys_vm_page_information_t *pageinfo )
| int sys_dbg_vm_get_page_information (sys_pid_t id, sys_addr_t addr, unsigned int num, sys_vm_page_information_t *pageinfo )
|-
|-
| 954
| 954
Line 5,838: Line 5,801:
| {{DECR}}
| {{DECR}}
|
|
| sys_rsx_trace_ioctl
| ys_rsx_trace_ioctl
|
|
|-
|-
Line 6,049: Line 6,012:
!Name
!Name
!Value
!Value
|-
|Default
|0x00L
|-
|ReleaseMode
|0x01L
|-
|MemSizeConsole
|0x02L
|-
|-
|BluRayEmuOff
|BluRayEmuOff
|0x04L
|0x04L
|-
|-
|HDDSpeedBluRayEmu
|BluRayEmuUSB
|0x08L
|0x20L
|-
|-
|DebugMode
|DebugMode
|0x10L
|0x10L
|-
|-
|SystemMode
|Default
|0x11L
|0x00L
|-
|DualNIC
|0x80L
|-
|-
|BluRayEmuUSB
|HDDSpeedBluRayEmu
|0x20L
|0x08L
|-
|-
|HostFSTarget
|HostFSTarget
|0x40L
|0x40L
|-
|-
|DualNIC
|MemSizeConsole
|0x80L
|0x02L
|-
|ReleaseMode
|0x01L
|-
|SystemMode
|0x11L
|-
|-
|}
|}
Line 6,137: Line 6,100:
|cellFsDirent
|cellFsDirent
|u8 d_type; u8 d_namlen; char d_name[256];
|u8 d_type; u8 d_namlen; char d_name[256];
|no
|-
|sys_spu_thread_group_cooperative_info_t
|u32 deadlineMeetCounter; u32 deadlineMissCounter; u64 timestamp; u8 unknown[48];
|no
|no
|-
|-
Line 6,390: Line 6,349:
|-  
|-  
| 8
| 8
| lv2_lv1_peek - graf_chokolo / (4.3x peek) /
| lv2_lv1_peek - graf_chokolo / (4.3x peek)
| r3 is a 64 bit address to read. A 64 bit value will be returned in r3
| r3 is a 64 bit address to read. A 64 bit value will be returned in r3
|-  
|-  
Line 6,396: Line 6,355:
| Peek - ps3cobra
| Peek - ps3cobra
| r3 is a 64 bit address to read. A 64 bit value will be returned in r3
| r3 is a 64 bit address to read. A 64 bit value will be returned in r3
| write - system_call_6(8, 0x7777, 0x32, (uint64_t)sys_process_getpid(), (uint64_t)ea, (uint64_t)data, (uint64_t)size); Read - system_call_6(8, 0x7777, 0x31, (uint64_t)sys_process_getpid(), (uint64_t)ea, (uint64_t)data, (uint64_t)size);
|-  
|-  
| 8
| 8
Line 6,442: Line 6,400:
| Remapper - Hermes, PSJailbreak / (4.2x BD-Emulator)
| Remapper - Hermes, PSJailbreak / (4.2x BD-Emulator)
| hardcoded /dev_bdvd & /app_home remapping
| hardcoded /dev_bdvd & /app_home remapping
|-
| 38
| New sk1e / Hermes payload
| Syscall 8 in Iris Manager, changed to syscall 38 in IRISMAN
|-
|-
| 200
| 200
Line 6,469: Line 6,423:
| 203
| 203
| lv2_peek - [[CCAPI]]
| lv2_peek - [[CCAPI]]
| false info look ccapi section
|  
|-
|-
| 204
| 204
| lv2_poke - [[CCAPI]]
| lv2_poke - [[CCAPI]]
| false info look ccapi section
|  
|-
|-
| 1022
| 1022
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)