mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
kernel: add ps5 sysvec
stub sys_begin_app_mount & sys_end_app_mount
This commit is contained in:
parent
0741f8a0dc
commit
20f8ff7881
|
|
@ -1683,10 +1683,12 @@ orbis::SysResult orbis::sys_get_phys_page_size(Thread *thread /* TODO */) {
|
|||
return ErrorCode::NOSYS;
|
||||
}
|
||||
orbis::SysResult orbis::sys_begin_app_mount(Thread *thread /* TODO */) {
|
||||
return ErrorCode::NOSYS;
|
||||
ORBIS_LOG_FATAL(__FUNCTION__);
|
||||
return {};
|
||||
}
|
||||
orbis::SysResult orbis::sys_end_app_mount(Thread *thread /* TODO */) {
|
||||
return ErrorCode::NOSYS;
|
||||
ORBIS_LOG_FATAL(__FUNCTION__);
|
||||
return {};
|
||||
}
|
||||
orbis::SysResult orbis::sys_fsc2h_ctrl(Thread *thread /* TODO */) {
|
||||
return ErrorCode::NOSYS;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#include "sys/syscall.hpp"
|
||||
#include "sys/sysentry.hpp"
|
||||
#include "sys/sysproto.hpp"
|
||||
#include "thread/Thread.hpp"
|
||||
#include "thread/Process.hpp"
|
||||
#include "thread/Thread.hpp"
|
||||
#include <algorithm>
|
||||
#include <unordered_map>
|
||||
|
||||
|
|
@ -34,7 +34,15 @@ void orbis::syscall_entry(Thread *thread) {
|
|||
auto p = thread->tproc;
|
||||
|
||||
if (syscall_num >= p->sysent->size) {
|
||||
if (thread->tproc->onSysEnter != nullptr) {
|
||||
thread->tproc->onSysEnter(thread, syscall_num, nullptr, 0);
|
||||
}
|
||||
error = int(ErrorCode::NOSYS);
|
||||
|
||||
if (thread->tproc->onSysExit != nullptr) {
|
||||
thread->tproc->onSysExit(thread, syscall_num, nullptr, 0,
|
||||
ErrorCode::NOSYS);
|
||||
}
|
||||
} else {
|
||||
auto sysent = p->sysent->table[syscall_num];
|
||||
uint64_t args[8];
|
||||
|
|
@ -2489,6 +2497,732 @@ static constexpr sysent ps4_sysent[] = {
|
|||
wrap<sys_cpumode_yield>(),
|
||||
};
|
||||
|
||||
static constexpr sysent ps5_sysent[] = {
|
||||
wrap<nosys>(),
|
||||
wrap<sys_exit>(),
|
||||
wrap<sys_fork>(),
|
||||
wrap<sys_read>(),
|
||||
wrap<sys_write>(),
|
||||
wrap<sys_open>(),
|
||||
wrap<sys_close>(),
|
||||
wrap<sys_wait4>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_link>(),
|
||||
wrap<sys_unlink>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_chdir>(),
|
||||
wrap<sys_fchdir>(),
|
||||
wrap<sys_mknod>(),
|
||||
wrap<sys_chmod>(),
|
||||
wrap<sys_chown>(),
|
||||
wrap<sys_obreak>(),
|
||||
wrap<sys_getfsstat>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getpid>(),
|
||||
wrap<sys_mount>(),
|
||||
wrap<sys_unmount>(),
|
||||
wrap<sys_setuid>(),
|
||||
wrap<sys_getuid>(),
|
||||
wrap<sys_geteuid>(),
|
||||
wrap<sys_ptrace>(),
|
||||
wrap<sys_recvmsg>(),
|
||||
wrap<sys_sendmsg>(),
|
||||
wrap<sys_recvfrom>(),
|
||||
wrap<sys_accept>(),
|
||||
wrap<sys_getpeername>(),
|
||||
wrap<sys_getsockname>(),
|
||||
wrap<sys_access>(),
|
||||
wrap<sys_chflags>(),
|
||||
wrap<sys_fchflags>(),
|
||||
wrap<sys_sync>(),
|
||||
wrap<sys_kill>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getppid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_dup>(),
|
||||
wrap<sys_pipe>(),
|
||||
wrap<sys_getegid>(),
|
||||
wrap<sys_profil>(),
|
||||
wrap<sys_ktrace>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getgid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getlogin>(),
|
||||
wrap<sys_setlogin>(),
|
||||
wrap<sys_acct>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_sigaltstack>(),
|
||||
wrap<sys_ioctl>(),
|
||||
wrap<sys_reboot>(),
|
||||
wrap<sys_revoke>(),
|
||||
wrap<sys_symlink>(),
|
||||
wrap<sys_readlink>(),
|
||||
wrap<sys_execve>(),
|
||||
wrap<sys_umask>(),
|
||||
wrap<sys_chroot>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_msync>(),
|
||||
wrap<sys_vfork>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_sbrk>(),
|
||||
wrap<sys_sstk>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_munmap>(),
|
||||
wrap<sys_mprotect>(),
|
||||
wrap<sys_madvise>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_mincore>(),
|
||||
wrap<sys_getgroups>(),
|
||||
wrap<sys_setgroups>(),
|
||||
wrap<sys_getpgrp>(),
|
||||
wrap<sys_setpgid>(),
|
||||
wrap<sys_setitimer>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_swapon>(),
|
||||
wrap<sys_getitimer>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getdtablesize>(),
|
||||
wrap<sys_dup2>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_fcntl>(),
|
||||
wrap<sys_select>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_fsync>(),
|
||||
wrap<sys_setpriority>(),
|
||||
wrap<sys_socket>(),
|
||||
wrap<sys_connect>(),
|
||||
wrap<sys_netcontrol>(),
|
||||
wrap<sys_getpriority>(),
|
||||
wrap<sys_netabort>(),
|
||||
wrap<sys_netgetsockinfo>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_bind>(),
|
||||
wrap<sys_setsockopt>(),
|
||||
wrap<sys_listen>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_socketex>(),
|
||||
wrap<sys_socketclose>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_gettimeofday>(),
|
||||
wrap<sys_getrusage>(),
|
||||
wrap<sys_getsockopt>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_readv>(),
|
||||
wrap<sys_writev>(),
|
||||
wrap<sys_settimeofday>(),
|
||||
wrap<sys_fchown>(),
|
||||
wrap<sys_fchmod>(),
|
||||
wrap<sys_netgetiflist>(),
|
||||
wrap<sys_setreuid>(),
|
||||
wrap<sys_setregid>(),
|
||||
wrap<sys_rename>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_flock>(),
|
||||
wrap<sys_mkfifo>(),
|
||||
wrap<sys_sendto>(),
|
||||
wrap<sys_shutdown>(),
|
||||
wrap<sys_socketpair>(),
|
||||
wrap<sys_mkdir>(),
|
||||
wrap<sys_rmdir>(),
|
||||
wrap<sys_utimes>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_adjtime>(),
|
||||
wrap<sys_kqueueex>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_setsid>(),
|
||||
wrap<sys_quotactl>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_nlm_syscall>(),
|
||||
wrap<sys_nfssvc>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_statfs>(),
|
||||
wrap<sys_fstatfs>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_lgetfh>(),
|
||||
wrap<sys_getfh>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_sysarch>(),
|
||||
wrap<sys_rtprio>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_semsys>(),
|
||||
wrap<sys_msgsys>(),
|
||||
wrap<sys_shmsys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_freebsd6_pread>(),
|
||||
wrap<sys_freebsd6_pwrite>(),
|
||||
wrap<sys_setfib>(),
|
||||
wrap<sys_ntp_adjtime>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_setgid>(),
|
||||
wrap<sys_setegid>(),
|
||||
wrap<sys_seteuid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_stat>(),
|
||||
wrap<sys_fstat>(),
|
||||
wrap<sys_lstat>(),
|
||||
wrap<sys_pathconf>(),
|
||||
wrap<sys_fpathconf>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getrlimit>(),
|
||||
wrap<sys_setrlimit>(),
|
||||
wrap<sys_getdirentries>(),
|
||||
wrap<sys_freebsd6_mmap>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_freebsd6_lseek>(),
|
||||
wrap<sys_freebsd6_truncate>(),
|
||||
wrap<sys_freebsd6_ftruncate>(),
|
||||
wrap<sys___sysctl>(),
|
||||
wrap<sys_mlock>(),
|
||||
wrap<sys_munlock>(),
|
||||
wrap<sys_undelete>(),
|
||||
wrap<sys_futimes>(),
|
||||
wrap<sys_getpgid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_poll>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys___semctl>(),
|
||||
wrap<sys_semget>(),
|
||||
wrap<sys_semop>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_msgctl>(),
|
||||
wrap<sys_msgget>(),
|
||||
wrap<sys_msgsnd>(),
|
||||
wrap<sys_msgrcv>(),
|
||||
wrap<sys_shmat>(),
|
||||
wrap<sys_shmctl>(),
|
||||
wrap<sys_shmdt>(),
|
||||
wrap<sys_shmget>(),
|
||||
wrap<sys_clock_gettime>(),
|
||||
wrap<sys_clock_settime>(),
|
||||
wrap<sys_clock_getres>(),
|
||||
wrap<sys_ktimer_create>(),
|
||||
wrap<sys_ktimer_delete>(),
|
||||
wrap<sys_ktimer_settime>(),
|
||||
wrap<sys_ktimer_gettime>(),
|
||||
wrap<sys_ktimer_getoverrun>(),
|
||||
wrap<sys_nanosleep>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_ntp_gettime>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_minherit>(),
|
||||
wrap<sys_rfork>(),
|
||||
wrap<sys_openbsd_poll>(),
|
||||
wrap<sys_issetugid>(),
|
||||
wrap<sys_lchown>(),
|
||||
wrap<sys_aio_read>(),
|
||||
wrap<sys_aio_write>(),
|
||||
wrap<sys_lio_listio>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getdents>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_lchmod>(),
|
||||
wrap<sys_lchown>(),
|
||||
wrap<sys_lutimes>(),
|
||||
wrap<sys_msync>(),
|
||||
wrap<sys_nstat>(),
|
||||
wrap<sys_nfstat>(),
|
||||
wrap<sys_nlstat>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_preadv>(),
|
||||
wrap<sys_pwritev>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_fhstatfs>(),
|
||||
wrap<sys_fhopen>(),
|
||||
wrap<sys_fhstat>(),
|
||||
wrap<sys_modnext>(),
|
||||
wrap<sys_modstat>(),
|
||||
wrap<sys_modfnext>(),
|
||||
wrap<sys_modfind>(),
|
||||
wrap<sys_kldload>(),
|
||||
wrap<sys_kldunload>(),
|
||||
wrap<sys_kldfind>(),
|
||||
wrap<sys_kldnext>(),
|
||||
wrap<sys_kldstat>(),
|
||||
wrap<sys_kldfirstmod>(),
|
||||
wrap<sys_getsid>(),
|
||||
wrap<sys_setresuid>(),
|
||||
wrap<sys_setresgid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_aio_return>(),
|
||||
wrap<sys_aio_suspend>(),
|
||||
wrap<sys_aio_cancel>(),
|
||||
wrap<sys_aio_error>(),
|
||||
wrap<sys_oaio_read>(),
|
||||
wrap<sys_oaio_write>(),
|
||||
wrap<sys_olio_listio>(),
|
||||
wrap<sys_yield>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_mlockall>(),
|
||||
wrap<sys_munlockall>(),
|
||||
wrap<sys___getcwd>(),
|
||||
wrap<sys_sched_setparam>(),
|
||||
wrap<sys_sched_getparam>(),
|
||||
wrap<sys_sched_setscheduler>(),
|
||||
wrap<sys_sched_getscheduler>(),
|
||||
wrap<sys_sched_yield>(),
|
||||
wrap<sys_sched_get_priority_max>(),
|
||||
wrap<sys_sched_get_priority_min>(),
|
||||
wrap<sys_sched_rr_get_interval>(),
|
||||
wrap<sys_utrace>(),
|
||||
wrap<sys_sendfile>(),
|
||||
wrap<sys_kldsym>(),
|
||||
wrap<sys_jail>(),
|
||||
wrap<sys_nnpfs_syscall>(),
|
||||
wrap<sys_sigprocmask>(),
|
||||
wrap<sys_sigsuspend>(),
|
||||
wrap<sys_sigaction>(),
|
||||
wrap<sys_sigpending>(),
|
||||
wrap<sys_sigreturn>(),
|
||||
wrap<sys_sigtimedwait>(),
|
||||
wrap<sys_sigwaitinfo>(),
|
||||
wrap<sys___acl_get_file>(),
|
||||
wrap<sys___acl_set_file>(),
|
||||
wrap<sys___acl_get_fd>(),
|
||||
wrap<sys___acl_set_fd>(),
|
||||
wrap<sys___acl_delete_file>(),
|
||||
wrap<sys___acl_delete_fd>(),
|
||||
wrap<sys___acl_aclcheck_file>(),
|
||||
wrap<sys___acl_aclcheck_fd>(),
|
||||
wrap<sys_extattrctl>(),
|
||||
wrap<sys_extattr_set_file>(),
|
||||
wrap<sys_extattr_get_file>(),
|
||||
wrap<sys_extattr_delete_file>(),
|
||||
wrap<sys_aio_waitcomplete>(),
|
||||
wrap<sys_getresuid>(),
|
||||
wrap<sys_getresgid>(),
|
||||
wrap<sys_kqueue>(),
|
||||
wrap<sys_kevent>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_extattr_set_fd>(),
|
||||
wrap<sys_extattr_get_fd>(),
|
||||
wrap<sys_extattr_delete_fd>(),
|
||||
wrap<sys___setugid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_eaccess>(),
|
||||
wrap<sys_afs3_syscall>(),
|
||||
wrap<sys_nmount>(),
|
||||
wrap<sys_mtypeprotect>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys___mac_get_proc>(),
|
||||
wrap<sys___mac_set_proc>(),
|
||||
wrap<sys___mac_get_fd>(),
|
||||
wrap<sys___mac_get_file>(),
|
||||
wrap<sys___mac_set_fd>(),
|
||||
wrap<sys___mac_set_file>(),
|
||||
wrap<sys_kenv>(),
|
||||
wrap<sys_lchflags>(),
|
||||
wrap<sys_uuidgen>(),
|
||||
wrap<sys_sendfile>(),
|
||||
wrap<sys_mac_syscall>(),
|
||||
wrap<sys_getfsstat>(),
|
||||
wrap<sys_statfs>(),
|
||||
wrap<sys_fstatfs>(),
|
||||
wrap<sys_fhstatfs>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_ksem_close>(),
|
||||
wrap<sys_ksem_post>(),
|
||||
wrap<sys_ksem_wait>(),
|
||||
wrap<sys_ksem_trywait>(),
|
||||
wrap<sys_ksem_init>(),
|
||||
wrap<sys_ksem_open>(),
|
||||
wrap<sys_ksem_unlink>(),
|
||||
wrap<sys_ksem_getvalue>(),
|
||||
wrap<sys_ksem_destroy>(),
|
||||
wrap<sys___mac_get_pid>(),
|
||||
wrap<sys___mac_get_link>(),
|
||||
wrap<sys___mac_set_link>(),
|
||||
wrap<sys_extattr_set_link>(),
|
||||
wrap<sys_extattr_get_link>(),
|
||||
wrap<sys_extattr_delete_link>(),
|
||||
wrap<sys___mac_execve>(),
|
||||
wrap<sys_sigaction>(),
|
||||
wrap<sys_sigreturn>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_getcontext>(),
|
||||
wrap<sys_setcontext>(),
|
||||
wrap<sys_swapcontext>(),
|
||||
wrap<sys_swapoff>(),
|
||||
wrap<sys___acl_get_link>(),
|
||||
wrap<sys___acl_set_link>(),
|
||||
wrap<sys___acl_delete_link>(),
|
||||
wrap<sys___acl_aclcheck_link>(),
|
||||
wrap<sys_sigwait>(),
|
||||
wrap<sys_thr_create>(),
|
||||
wrap<sys_thr_exit>(),
|
||||
wrap<sys_thr_self>(),
|
||||
wrap<sys_thr_kill>(),
|
||||
wrap<sys__umtx_lock>(),
|
||||
wrap<sys__umtx_unlock>(),
|
||||
wrap<sys_jail_attach>(),
|
||||
wrap<sys_extattr_list_fd>(),
|
||||
wrap<sys_extattr_list_file>(),
|
||||
wrap<sys_extattr_list_link>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_ksem_timedwait>(),
|
||||
wrap<sys_thr_suspend>(),
|
||||
wrap<sys_thr_wake>(),
|
||||
wrap<sys_kldunloadf>(),
|
||||
wrap<sys_audit>(),
|
||||
wrap<sys_auditon>(),
|
||||
wrap<sys_getauid>(),
|
||||
wrap<sys_setauid>(),
|
||||
wrap<sys_getaudit>(),
|
||||
wrap<sys_setaudit>(),
|
||||
wrap<sys_getaudit_addr>(),
|
||||
wrap<sys_setaudit_addr>(),
|
||||
wrap<sys_auditctl>(),
|
||||
wrap<sys__umtx_op>(),
|
||||
wrap<sys_thr_new>(),
|
||||
wrap<sys_sigqueue>(),
|
||||
wrap<sys_kmq_open>(),
|
||||
wrap<sys_kmq_setattr>(),
|
||||
wrap<sys_kmq_timedreceive>(),
|
||||
wrap<sys_kmq_timedsend>(),
|
||||
wrap<sys_kmq_notify>(),
|
||||
wrap<sys_kmq_unlink>(),
|
||||
wrap<sys_abort2>(),
|
||||
wrap<sys_thr_set_name>(),
|
||||
wrap<sys_aio_fsync>(),
|
||||
wrap<sys_rtprio_thread>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_sctp_peeloff>(),
|
||||
wrap<sys_sctp_generic_sendmsg>(),
|
||||
wrap<sys_sctp_generic_sendmsg_iov>(),
|
||||
wrap<sys_sctp_generic_recvmsg>(),
|
||||
wrap<sys_pread>(),
|
||||
wrap<sys_pwrite>(),
|
||||
wrap<sys_mmap>(),
|
||||
wrap<sys_lseek>(),
|
||||
wrap<sys_truncate>(),
|
||||
wrap<sys_ftruncate>(),
|
||||
wrap<sys_thr_kill2>(),
|
||||
wrap<sys_shm_open>(),
|
||||
wrap<sys_shm_unlink>(),
|
||||
wrap<sys_cpuset>(),
|
||||
wrap<sys_cpuset_setid>(),
|
||||
wrap<sys_cpuset_getid>(),
|
||||
wrap<sys_cpuset_getaffinity>(),
|
||||
wrap<sys_cpuset_setaffinity>(),
|
||||
wrap<sys_faccessat>(),
|
||||
wrap<sys_fchmodat>(),
|
||||
wrap<sys_fchownat>(),
|
||||
wrap<sys_fexecve>(),
|
||||
wrap<sys_fstatat>(),
|
||||
wrap<sys_futimesat>(),
|
||||
wrap<sys_linkat>(),
|
||||
wrap<sys_mkdirat>(),
|
||||
wrap<sys_mkfifoat>(),
|
||||
wrap<sys_mknodat>(),
|
||||
wrap<sys_openat>(),
|
||||
wrap<sys_readlinkat>(),
|
||||
wrap<sys_renameat>(),
|
||||
wrap<sys_symlinkat>(),
|
||||
wrap<sys_unlinkat>(),
|
||||
wrap<sys_posix_openpt>(),
|
||||
wrap<sys_gssd_syscall>(),
|
||||
wrap<sys_jail_get>(),
|
||||
wrap<sys_jail_set>(),
|
||||
wrap<sys_jail_remove>(),
|
||||
wrap<sys_closefrom>(),
|
||||
wrap<sys___semctl>(),
|
||||
wrap<sys_msgctl>(),
|
||||
wrap<sys_shmctl>(),
|
||||
wrap<sys_lpathconf>(),
|
||||
wrap<sys_cap_new>(),
|
||||
wrap<sys_cap_getrights>(),
|
||||
wrap<sys_cap_enter>(),
|
||||
wrap<sys_cap_getmode>(),
|
||||
wrap<sys_pdfork>(),
|
||||
wrap<sys_pdkill>(),
|
||||
wrap<sys_pdgetpid>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_pselect>(),
|
||||
wrap<sys_getloginclass>(),
|
||||
wrap<sys_setloginclass>(),
|
||||
wrap<sys_rctl_get_racct>(),
|
||||
wrap<sys_rctl_get_rules>(),
|
||||
wrap<sys_rctl_get_limits>(),
|
||||
wrap<sys_rctl_add_rule>(),
|
||||
wrap<sys_rctl_remove_rule>(),
|
||||
wrap<sys_posix_fallocate>(),
|
||||
wrap<sys_posix_fadvise>(),
|
||||
wrap<sys_regmgr_call>(),
|
||||
wrap<sys_jitshm_create>(),
|
||||
wrap<sys_jitshm_alias>(),
|
||||
wrap<sys_dl_get_list>(),
|
||||
wrap<sys_dl_get_info>(),
|
||||
wrap<sys_dl_notify_event>(),
|
||||
wrap<sys_evf_create>(),
|
||||
wrap<sys_evf_delete>(),
|
||||
wrap<sys_evf_open>(),
|
||||
wrap<sys_evf_close>(),
|
||||
wrap<sys_evf_wait>(),
|
||||
wrap<sys_evf_trywait>(),
|
||||
wrap<sys_evf_set>(),
|
||||
wrap<sys_evf_clear>(),
|
||||
wrap<sys_evf_cancel>(),
|
||||
wrap<sys_query_memory_protection>(),
|
||||
wrap<sys_batch_map>(),
|
||||
wrap<sys_osem_create>(),
|
||||
wrap<sys_osem_delete>(),
|
||||
wrap<sys_osem_open>(),
|
||||
wrap<sys_osem_close>(),
|
||||
wrap<sys_osem_wait>(),
|
||||
wrap<sys_osem_trywait>(),
|
||||
wrap<sys_osem_post>(),
|
||||
wrap<sys_osem_cancel>(),
|
||||
wrap<sys_namedobj_create>(),
|
||||
wrap<sys_namedobj_delete>(),
|
||||
wrap<sys_set_vm_container>(),
|
||||
wrap<sys_debug_init>(),
|
||||
wrap<sys_suspend_process>(),
|
||||
wrap<sys_resume_process>(),
|
||||
wrap<sys_opmc_enable>(),
|
||||
wrap<sys_opmc_disable>(),
|
||||
wrap<sys_opmc_set_ctl>(),
|
||||
wrap<sys_opmc_set_ctr>(),
|
||||
wrap<sys_opmc_get_ctr>(),
|
||||
wrap<sys_budget_create>(),
|
||||
wrap<sys_budget_delete>(),
|
||||
wrap<sys_budget_get>(),
|
||||
wrap<sys_budget_set>(),
|
||||
wrap<sys_virtual_query>(),
|
||||
wrap<sys_mdbg_call>(),
|
||||
wrap<sys_obs_sblock_create>(),
|
||||
wrap<sys_obs_sblock_delete>(),
|
||||
wrap<sys_obs_sblock_enter>(),
|
||||
wrap<sys_obs_sblock_exit>(),
|
||||
wrap<sys_obs_sblock_xenter>(),
|
||||
wrap<sys_obs_sblock_xexit>(),
|
||||
wrap<sys_obs_eport_create>(),
|
||||
wrap<sys_obs_eport_delete>(),
|
||||
wrap<sys_obs_eport_trigger>(),
|
||||
wrap<sys_obs_eport_open>(),
|
||||
wrap<sys_obs_eport_close>(),
|
||||
wrap<sys_is_in_sandbox>(),
|
||||
wrap<sys_dmem_container>(),
|
||||
wrap<sys_get_authinfo>(),
|
||||
wrap<sys_mname>(),
|
||||
wrap<sys_dynlib_dlopen>(),
|
||||
wrap<sys_dynlib_dlclose>(),
|
||||
wrap<sys_dynlib_dlsym>(),
|
||||
wrap<sys_dynlib_get_list>(),
|
||||
wrap<sys_dynlib_get_info>(),
|
||||
wrap<sys_dynlib_load_prx>(),
|
||||
wrap<sys_dynlib_unload_prx>(),
|
||||
wrap<sys_dynlib_do_copy_relocations>(),
|
||||
wrap<sys_dynlib_prepare_dlclose>(),
|
||||
wrap<sys_dynlib_get_proc_param>(),
|
||||
wrap<sys_dynlib_process_needed_and_relocate>(),
|
||||
wrap<sys_sandbox_path>(),
|
||||
wrap<sys_mdbg_service>(),
|
||||
wrap<sys_randomized_path>(),
|
||||
wrap<sys_rdup>(),
|
||||
wrap<sys_dl_get_metadata>(),
|
||||
wrap<sys_workaround8849>(),
|
||||
wrap<sys_is_development_mode>(),
|
||||
wrap<sys_get_self_auth_info>(),
|
||||
wrap<sys_dynlib_get_info_ex>(),
|
||||
wrap<sys_budget_getid>(),
|
||||
wrap<sys_budget_get_ptype>(),
|
||||
wrap<sys_get_paging_stats_of_all_threads>(),
|
||||
wrap<sys_get_proc_type_info>(),
|
||||
wrap<sys_get_resident_count>(),
|
||||
wrap<sys_prepare_to_suspend_process>(),
|
||||
wrap<sys_get_resident_fmem_count>(),
|
||||
wrap<sys_thr_get_name>(),
|
||||
wrap<sys_set_gpo>(),
|
||||
wrap<sys_get_paging_stats_of_all_objects>(),
|
||||
wrap<sys_test_debug_rwmem>(),
|
||||
wrap<sys_free_stack>(),
|
||||
wrap<sys_suspend_system>(),
|
||||
wrap<sys_ipmimgr_call>(),
|
||||
wrap<sys_get_gpo>(),
|
||||
wrap<sys_get_vm_map_timestamp>(),
|
||||
wrap<sys_opmc_set_hw>(),
|
||||
wrap<sys_opmc_get_hw>(),
|
||||
wrap<sys_get_cpu_usage_all>(),
|
||||
wrap<sys_mmap_dmem>(),
|
||||
wrap<sys_physhm_open>(),
|
||||
wrap<sys_physhm_unlink>(),
|
||||
wrap<sys_resume_internal_hdd>(),
|
||||
wrap<sys_thr_suspend_ucontext>(),
|
||||
wrap<sys_thr_resume_ucontext>(),
|
||||
wrap<sys_thr_get_ucontext>(),
|
||||
wrap<sys_thr_set_ucontext>(),
|
||||
wrap<sys_set_timezone_info>(),
|
||||
wrap<sys_set_phys_fmem_limit>(),
|
||||
wrap<sys_utc_to_localtime>(),
|
||||
wrap<sys_localtime_to_utc>(),
|
||||
wrap<sys_set_uevt>(),
|
||||
wrap<sys_get_cpu_usage_proc>(),
|
||||
wrap<sys_get_map_statistics>(),
|
||||
wrap<sys_set_chicken_switches>(),
|
||||
wrap<sys_extend_page_table_pool>(),
|
||||
wrap<sys_extend_page_table_pool2>(),
|
||||
wrap<sys_get_kernel_mem_statistics>(),
|
||||
wrap<sys_get_sdk_compiled_version>(),
|
||||
wrap<sys_app_state_change>(),
|
||||
wrap<sys_dynlib_get_obj_member>(),
|
||||
wrap<sys_budget_get_ptype_of_budget>(),
|
||||
wrap<sys_prepare_to_resume_process>(),
|
||||
wrap<sys_process_terminate>(),
|
||||
wrap<sys_blockpool_open>(),
|
||||
wrap<sys_blockpool_map>(),
|
||||
wrap<sys_blockpool_unmap>(),
|
||||
wrap<sys_dynlib_get_info_for_libdbg>(),
|
||||
wrap<sys_blockpool_batch>(),
|
||||
wrap<sys_fdatasync>(),
|
||||
wrap<sys_dynlib_get_list2>(),
|
||||
wrap<sys_dynlib_get_info2>(),
|
||||
wrap<sys_aio_submit>(),
|
||||
wrap<sys_aio_multi_delete>(),
|
||||
wrap<sys_aio_multi_wait>(),
|
||||
wrap<sys_aio_multi_poll>(),
|
||||
wrap<sys_aio_get_data>(),
|
||||
wrap<sys_aio_multi_cancel>(),
|
||||
wrap<sys_get_bio_usage_all>(),
|
||||
wrap<sys_aio_create>(),
|
||||
wrap<sys_aio_submit_cmd>(),
|
||||
wrap<sys_aio_init>(),
|
||||
wrap<sys_get_page_table_stats>(),
|
||||
wrap<sys_dynlib_get_list_for_libdbg>(),
|
||||
wrap<sys_blockpool_move>(),
|
||||
wrap<sys_virtual_query_all>(),
|
||||
wrap<sys_reserve_2mb_page>(),
|
||||
wrap<sys_cpumode_yield>(),
|
||||
wrap<sys_wait6>(),
|
||||
wrap<sys_cap_rights_limit>(),
|
||||
wrap<sys_cap_ioctls_limit>(),
|
||||
wrap<sys_cap_ioctls_get>(),
|
||||
wrap<sys_cap_fcntls_limit>(),
|
||||
wrap<sys_cap_fcntls_get>(),
|
||||
wrap<sys_bindat>(),
|
||||
wrap<sys_connectat>(),
|
||||
wrap<sys_chflagsat>(),
|
||||
wrap<sys_accept4>(),
|
||||
wrap<sys_pipe2>(),
|
||||
wrap<sys_aio_mlock>(),
|
||||
wrap<sys_procctl>(),
|
||||
wrap<sys_ppoll>(),
|
||||
wrap<sys_futimens>(),
|
||||
wrap<sys_utimensat>(),
|
||||
wrap<sys_numa_getaffinity>(),
|
||||
wrap<sys_numa_setaffinity>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<nosys>(),
|
||||
wrap<sys_apr_submit>(),
|
||||
wrap<sys_apr_resolve>(),
|
||||
wrap<sys_apr_stat>(),
|
||||
wrap<sys_apr_wait>(),
|
||||
wrap<sys_apr_ctrl>(),
|
||||
wrap<sys_get_phys_page_size>(),
|
||||
wrap<sys_begin_app_mount>(),
|
||||
wrap<sys_end_app_mount>(),
|
||||
wrap<sys_fsc2h_ctrl>(),
|
||||
wrap<sys_streamwrite>(),
|
||||
wrap<sys_app_save>(),
|
||||
wrap<sys_app_restore>(),
|
||||
wrap<sys_saved_app_delete>(),
|
||||
wrap<sys_get_ppr_sdk_compiled_version>(),
|
||||
wrap<sys_notify_app_event>(),
|
||||
wrap<sys_ioreq>(),
|
||||
wrap<sys_openintr>(),
|
||||
wrap<sys_dl_get_info_2>(),
|
||||
wrap<sys_acinfo_add>(),
|
||||
wrap<sys_acinfo_delete>(),
|
||||
wrap<sys_acinfo_get_all_for_coredump>(),
|
||||
wrap<sys_ampr_ctrl_debug>(),
|
||||
wrap<sys_workspace_ctrl>(),
|
||||
};
|
||||
|
||||
constinit sysentvec freebsd9_sysvec = {.size = std::size(freebsd9_sysent),
|
||||
.table = freebsd9_sysent};
|
||||
|
||||
|
|
@ -2498,5 +3232,6 @@ constinit sysentvec freebsd11_sysvec = {.size = std::size(freebsd11_sysent),
|
|||
constinit sysentvec ps4_sysvec = {.size = std::size(ps4_sysent),
|
||||
.table = ps4_sysent};
|
||||
|
||||
constinit sysentvec ps5_sysvec = {.size = 0, .table = nullptr};
|
||||
constinit sysentvec ps5_sysvec = {.size = std::size(ps5_sysent),
|
||||
.table = ps5_sysent};
|
||||
} // namespace orbis
|
||||
|
|
|
|||
|
|
@ -525,8 +525,16 @@ int guestExec(orbis::Thread *mainThread, ExecEnv execEnv,
|
|||
|
||||
if (executableModule->dynType == orbis::DynType::Ps4) {
|
||||
mainThread->tproc->type = orbis::ProcessType::Ps4;
|
||||
mainThread->tproc->sysent = &orbis::ps4_sysvec;
|
||||
} else if (executableModule->dynType == orbis::DynType::Ps5) {
|
||||
mainThread->tproc->type = orbis::ProcessType::Ps5;
|
||||
mainThread->tproc->sysent = &orbis::ps5_sysvec;
|
||||
} else {
|
||||
if (orbis::g_context.fwType == orbis::FwType::Ps4) {
|
||||
mainThread->tproc->sysent = &orbis::ps4_sysvec;
|
||||
} else {
|
||||
mainThread->tproc->sysent = &orbis::ps5_sysvec;
|
||||
}
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
|
|
@ -995,7 +1003,6 @@ int main(int argc, const char *argv[]) {
|
|||
|
||||
int status = 0;
|
||||
|
||||
initProcess->sysent = &orbis::ps4_sysvec;
|
||||
initProcess->onSysEnter = onSysEnter;
|
||||
initProcess->onSysExit = onSysExit;
|
||||
initProcess->ops = &rx::procOpsTable;
|
||||
|
|
@ -1097,11 +1104,16 @@ int main(int argc, const char *argv[]) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
auto execEnv = guestCreateExecEnv(mainThread, executableModule, isSystem);
|
||||
|
||||
if (isSystem && executableModule->dynType == orbis::DynType::None) {
|
||||
orbis::g_context.fwType = orbis::FwType::Ps5;
|
||||
executableModule->dynType = orbis::DynType::Ps5;
|
||||
}
|
||||
|
||||
guestInitDev();
|
||||
guestInitFd(mainThread);
|
||||
|
||||
auto execEnv = guestCreateExecEnv(mainThread, executableModule, isSystem);
|
||||
|
||||
// data transfer mode
|
||||
// 0 - normal
|
||||
// 1 - source
|
||||
|
|
|
|||
Loading…
Reference in a new issue