Skip to content

Latest commit

 

History

History
168 lines (166 loc) · 12.9 KB

syscalls.md

File metadata and controls

168 lines (166 loc) · 12.9 KB

Source for the table below: psdevwiki.com

Changes, rewriting of text, and other forms of improvements will be made for this table. Such as for example: confirmation of whether or not the syscall ID is accurate for higher firmwares such as 6.72, 7.02, 7.55, 9.00, additional notes, etc.

NETWORK RELATED

Syscall ID PS4 Firmware Syscall Name Syscall Usermode prototype Notes
99 1.01, 6.72 sys_netcontrol int sys_netcontrol(int fd, uint op, void *buf, uint nbuf) -
101 1.01, 6.72 sys_netabort Unknown atm... -
102 1.01, 6.72 sys_netgetsockinfo Unknown atm... -
104 6.72 sys_bind int sys_bind(int unk1, struct sockaddr * unk2, int unk3) -
105 6.72 sys_setsockopt int sys_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) -
106 6.72 sys_listen int sys_listen(int unk1, int unk2) -
113 1.01, 6.72 sys_socketex int sys_socketex(const char *name, int domain, int type, int protocol) Like existing socket syscall, but with the addition of a name argument.
114 1.01, 6.72 sys_socketclose int sys_socketclose(int unk1) -

OTHER (UNFINISHED)

Syscall ID PS4 Firmware Syscall Name Syscall Usermode prototype Notes
116 6.72 sys_gettimeofday Unknown atm... -
125 <=1.01? sys_netgetiflist Unknown atm... -
141 <=1.01? sys_kqueueex Unknown atm... -
379 >1.01 <=1.76? sys_mtypeprotect Unknown atm... -
532 <=1.76? sys_regmgr_call Unknown atm... -
533 <=1.01? sys_jitshm_create - Only callable from a jit compiler process, else returns EPERM (0x1)
534 <=1.01? sys_jitshm_alias - Only callable from a jit compiler/application process, else returns EPERM (0x1)
535 <=1.01? sys_dl_get_list - Only callable from a debugger, core dump, or syscore process, else returns EPERM (0x1)
536 <=1.01? sys_dl_get_info - Only callable from a debugger, core dump, or syscore process, else returns EPERM (0x1)
537 <=1.01? sys_dl_notify_event - Always returns ENOSYS (0x4E) (may only be implemented in devkits)
538 <=1.01? sys_evf_create int sys_evf_create(char* name, int flag, struct evFlag *evf) -
539 <=1.01? sys_evf_delete int sys_evf_delete(int id) -
540 <=1.01? sys_evf_open int sys_evf_open(struct evFlag *evf) -
541 <=1.01? sys_evf_close int sys_evf_close(int id) -
542 <=1.01? sys_evf_wait Unknown atm... -
543 <=1.01? sys_evf_trywait Unknown atm... -
544 <=1.01? sys_evf_set int sys_evf_set(int id) -
545 <=1.01? sys_evf_clear int sys_evf_clear(int id) -
546 <=1.01? sys_evf_cancel int sys_evf_cancel(int id) -
547 <=1.01? sys_query_memory_protection Unknown atm... -
548 <=1.01? sys_batch_map Unknown atm... -
549 <=1.01? sys_osem_create Unknown atm... -
550 <=1.01? sys_osem_delete Unknown atm... -
551 <=1.01? sys_osem_open Unknown atm... -
552 <=1.01? sys_osem_close Unknown atm... -
553 <=1.01? sys_osem_wait Unknown atm... -
554 <=1.01? sys_osem_trywait Unknown atm... -
555 <=1.01? sys_osem_post Unknown atm... -
556 <=1.01? sys_osem_cancel Unknown atm... -
557 <=1.01? sys_namedobj_create Unknown atm... -
558 <=1.01? sys_namedobj_delete Unknown atm... -
559 <=1.01? sys_set_vm_container - Successful call requires privileges (uid0), else returns EPERM (0x1)
560 <=1.01? sys_debug_init Unknown atm... -
561 <=1.01? sys_suspend_process int sys_suspend_process(int pid) Successful call requires credentials (td->td_proc->p_ucred), else returns EPERM (0x1)
562 <=1.01? sys_resume_process int sys_resume_process(int pid) Successful call requires credentials (td->td_proc->p_ucred), else returns EPERM (0x1)
563 <=1.01? sys_opmc_enable Unknown atm... -
564 <=1.01? sys_opmc_disable Unknown atm... -
565 <=1.01? sys_opmc_set_ctl Unknown atm... -
566 <=1.01? sys_opmc_set_ctr Unknown atm... -
567 <=1.01? sys_opmc_get_ctr Unknown atm... -
568 <=1.01? sys_budget_create - Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
569 <=1.01? sys_budget_delete - Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
570 <=1.01? sys_budget_get - Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
571 <=1.01? sys_budget_set - Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
572 <=1.01? sys_virtual_query int sys_virtual_query(uint64_t addr, uint64_t unk, void *info, uint64_t info_size) -
573 <=1.01? sys_mdbg_call - Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
574 <=1.01? sys_sblock_create Unknown atm... -
575 <=1.01? sys_sblock_delete Unknown atm... -
576 <=1.01? sys_sblock_enter Unknown atm... -
577 <=1.01? sys_sblock_exit Unknown atm... -
578 <=1.01? sys_sblock_xenter Unknown atm... -
579 <=1.01? sys_sblock_xexit Unknown atm... -
580 <=1.01? sys_eport_create Unknown atm... -
581 <=1.01? sys_eport_delete Unknown atm... -
582 <=1.01? sys_eport_trigger Unknown atm... -
583 <=1.01? sys_eport_open Unknown atm... -
584 <=1.01? sys_eport_close Unknown atm... -
585 <=1.01? sys_is_in_sandbox Unknown atm... -
586 <=1.01? sys_dmem_container - Successful call requires privileges (uid0), else returns EPERM (0x1)
587 <=1.01? sys_get_authinfo - Some functionality requires privileges (uid0)
588 <=1.01? sys_mname Unknown atm... -
589 <=1.01? sys_dynlib_dlopen - Always returns ENOSYS (0x4E) (may only be implemented in devkits)
590 <=1.01? sys_dynlib_dlclose Unknown atm... -
591 <=1.01? sys_dynlib_dlsym int sys_dynlib_dlsym(SceKernelModule handle, const char *symbol, void **addrp) -
592 <=1.01? sys_dynlib_get_list int sys_dynlib_get_list(SceKernelModule *pArray, size_t numArray, size_t * pActualNum) -
593 <=1.01? sys_dynlib_get_info int sys_dynlib_get_info(SceKernelModule handle, SceDbgModuleInfo *pInfo) Sony has stripped module information since 1.76 FW (STO) *
594 <=1.01? sys_dynlib_load_prx int sys_dynlib_load_prx(const char *moduleFileName, size_t args, const void *argp, uint32_t flags, const SceKernelLoadModuleOpt *pOpt, int *pRes) -
595 <=1.01? sys_dynlib_unload_prx int sys_dynlib_unload_prx(SceKernelModule handle, size_t args, const void *argp, uint32_t flags, const SceKernelUnloadModuleOpt *pOpt, int *pRes) -
596 <=1.01? sys_dynlib_do_copy_relocations Unknown atm... -
597 <=1.01? sys_dynlib_prepare_dlclose - Contains an exploitable integer overflow on FWs <= 1.76
598 <=1.01? sys_dynlib_get_proc_param Unknown atm... -
599 <=1.01? sys_dynlib_process_needed_and_relocate Unknown atm... -
600 <=1.01? sys_sandbox_path - Successful call requires credentials (td->td_proc->p_ucred), else returns EPERM (0x1)
601 <=1.01? sys_mdbg_service Unknown atm... -
602 <=1.01? sys_randomized_path - Some functionality requires privileges (uid0)
603 <=1.01? sys_rdup - Successful call requires privileges (uid0), else returns EPERM (0x1)
604 <=1.01? sys_dl_get_metadata - Only callable from a debugger, core dump, or syscore process, else returns EPERM (0x1)
605 <=1.01? sys_workaround8849 Unknown atm... -
606 <=1.01? sys_is_development_mode Unknown atm... -
607 <=1.01? sys_get_self_auth_info Unknown atm... -
608 <=1.01? sys_dynlib_get_info_ex int sys_dynlib_get_info_ex(int moduleHandle, struct Unk *unk, int *destModuleInfoEx) -
609 <=1.01? sys_budget_getid int sys_budget_getid(void) Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
610 <=1.01? sys_budget_get_ptype int sys_budget_get_ptype(int budgetID) -
611 <=1.01? sys_get_paging_stats_of_all_threads - Successful call requires credentials (td->td_proc->p_ucred), else returns EPERM (0x1)
612 <=1.01? sys_get_proc_type_info int sys_get_proc_type_info(int *destProcessInfo) Only callable from certain processes mainly involving media and JiT
613 >1.01 <=1.76? sys_get_resident_count int sys_get_resident_count(int pid) Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
614 <=1.76? sys_prepare_to_suspend_process int sys_prepare_to_suspend_process(int pid) Successful call requires credentials (td->td_proc->p_ucred), else returns ENOSYS (0x4E)
615 <=1.76? sys_get_resident_fmem_count int sys_get_resident_fmem_count(int pid) Some functionality requires privileges (uid0)
616 <=1.76? sys_thr_get_name int sys_thr_get_name(int threadID) -
617 <=1.76? sys_set_gpo - Only callable on development kit (devkit) units
618 >1.76? sys_get_paging_stats_of_all_objects -
619 >1.76? sys_test_debug_rwmem -
620 >1.76? sys_free_stack -
621 >1.76? sys_suspend_system -
622 >1.76? sys_ipmimgr_call -
623 >1.76? sys_get_gpo -
624 >1.76? sys_get_vm_map_timestamp -
625 >1.76? sys_opmc_set_hw -
626 >1.76? sys_opmc_get_hw -
627 >1.76? sys_get_cpu_usage_all -
628 >1.76? sys_mmap_dmem -
629 >1.76? sys_physhm_open -
630 >1.76? sys_physhm_unlink -
631 >1.76? sys_resume_internal_hdd -
632 >1.76? sys_thr_suspend_ucontext -
633 >1.76? sys_thr_resume_ucontext -
634 >1.76? sys_thr_get_ucontext -
635 >1.76? sys_thr_set_ucontext -
636 >1.76? sys_set_timezone_info -
637 >1.76? sys_set_phys_fmem_limit -
638 >1.76? sys_utc_to_localtime -
639 >1.76? sys_localtime_to_utc -
640 >1.76? sys_set_uevt -
641 >1.76? sys_get_cpu_usage_proc -
642 >1.76? sys_get_map_statistics -
643 >1.76? sys_set_chicken_switches -
644 ?>4.05>3.55? sys_extend_page_table_pool int sys_extend_page_table_pool(void)
645 ?>4.05>3.55?? sys_extend_page_table_pool2 int sys_extend_page_table_pool2(void) Duplicate of sys_extend_page_table_pool.
646 >1.76? sys_get_kernel_mem_statistics -
647 >1.76? sys_get_sdk_compiled_version -
648 >1.76? sys_app_state_change -
649 >1.76? sys_dynlib_get_obj_member -
650 >1.76? sys_budget_get_ptype_of_budget -
651 >1.76? sys_prepare_to_resume_process -
652 >1.76? sys_process_terminate -
653 >1.76? sys_blockpool_open -
654 >1.76? sys_blockpool_map -
655 >1.76? sys_blockpool_unmap -
656 >1.76? sys_dynlib_get_info_for_libdbg -
657 >1.76? sys_blockpool_batch -
658 >1.76? sys_fdatasync -
659 >1.76? sys_dynlib_get_list2 -
660 >1.76? sys_dynlib_get_info2 -
661 >1.76? sys_aio_submit -
662 >1.76? sys_aio_multi_delete -
663 >1.76? sys_aio_multi_wait -
664 >1.76? sys_aio_multi_poll -
665 >1.76? sys_aio_get_data -
666 >1.76? sys_aio_multi_cancel -
667 >1.76? sys_get_bio_usage_all -
668 >1.76? sys_aio_create -
669 >1.76? sys_aio_submit_cmd -
670 >1.76? sys_aio_init -
671 >1.76? sys_get_page_table_stats -
672 >1.76? sys_dynlib_get_list_for_libdbg -
673 ?> 5.07? sys_blockpool_move -
674 ?> 5.07? sys_virtual_query_all -
675 ?> 5.07? sys_reserve_2mb_page -
676 ?> 5.07? sys_cpumode_yield -
677 ?>= 6.50? (not present on 6.20) sys_get_phys_page_size - Not present in PS5 PS4EMU on PS5 FW 2.20.