diff --git a/core/libs/prx/libkernel_web/Export.cpp b/core/libs/prx/libkernel_web/Export.cpp index 3192e02863..c753713bec 100644 --- a/core/libs/prx/libkernel_web/Export.cpp +++ b/core/libs/prx/libkernel_web/Export.cpp @@ -2,232 +2,196 @@ #include #include "SceTypes.hpp" #include "prx/libc/include/General.hpp" +#include "prx/libkernel_web/include/Api.hpp" extern "C" { APS5_DUMMY_FUN -int APS5_VABI sceKernelWebUnknown_001_nid_no_patch() { +int APS5_VABI __freeze_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("nSSPVGJLMjE", sceKernelWebUnknown_001_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_002_nid_no_patch() { +int APS5_VABI __sceKernelGetGPI_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("3JYhkiIHkJc", sceKernelWebUnknown_002_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_003_nid_no_patch() { +int APS5_VABI __sys_debug_init_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("zdaF5N-Xe2M", sceKernelWebUnknown_003_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_004_nid_no_patch() { +int APS5_VABI __sys_dl_get_info_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("YbAunrti+54", sceKernelWebUnknown_004_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_005_nid_no_patch() { +int APS5_VABI __sys_dl_get_info_2_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("lCp17SqY3Nc", sceKernelWebUnknown_005_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_006_nid_no_patch() { +int APS5_VABI __sys_dl_get_list_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("XujojypwYYc", sceKernelWebUnknown_006_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_007_nid_no_patch() { +int APS5_VABI __sys_dl_get_metadata_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("7OpNDDNMJyo", sceKernelWebUnknown_007_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_008_nid_no_patch() { +int APS5_VABI __sys_dynlib_get_info2_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("nTc+tFajGqQ", sceKernelWebUnknown_008_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_009_nid_no_patch() { +int APS5_VABI __sys_dynlib_get_info_for_libdbg_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("K7xiuldOPKw", sceKernelWebUnknown_009_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_010_nid_no_patch() { +int APS5_VABI __sys_dynlib_get_list2_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("P0jjY6bxakI", sceKernelWebUnknown_010_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_011_nid_no_patch() { +int APS5_VABI __sys_dynlib_get_list_for_libdbg_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("vpo3SbGFuEk", sceKernelWebUnknown_011_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_012_nid_no_patch() { +int APS5_VABI __sys_dynlib_load_prx_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("nZHk+lpqwVQ", sceKernelWebUnknown_012_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_013_nid_no_patch() { +int APS5_VABI __sys_get_proc_type_info_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("nG-FYqFutUo", sceKernelWebUnknown_013_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_014_nid_no_patch() { +int APS5_VABI __sys_is_development_mode_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("O-hEvSnv2o4", sceKernelWebUnknown_014_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_015_nid_no_patch() { +int APS5_VABI __sys_kqueueex_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("2M+dFM8Wmq4", sceKernelWebUnknown_015_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_016_nid_no_patch() { +int APS5_VABI __sys_namedobj_create_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("3CNY4Z0Luc8", sceKernelWebUnknown_016_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_017_nid_no_patch() { +int APS5_VABI __sys_namedobj_delete_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("E7CmfLfeSuQ", sceKernelWebUnknown_017_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_018_nid_no_patch() { +int APS5_VABI __sys_netabort_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("UTR6wAkajxk", sceKernelWebUnknown_018_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_019_nid_no_patch() { +int APS5_VABI __sys_netcontrol_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("zsTvhCDrOjQ", sceKernelWebUnknown_019_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_020_nid_no_patch() { +int APS5_VABI __sys_netgetiflist_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("X86Q0qQJ1m0", sceKernelWebUnknown_020_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_021_nid_no_patch() { +int APS5_VABI __sys_netgetsockinfo_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("Wx2+2t1mX1E", sceKernelWebUnknown_021_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_022_nid_no_patch() { +int APS5_VABI __sys_opmc_disable_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("iZFJYJJoZS8", sceKernelWebUnknown_022_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_023_nid_no_patch() { +int APS5_VABI __sys_opmc_enable_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("MGrj20+EK+U", sceKernelWebUnknown_023_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_024_nid_no_patch() { +int APS5_VABI __sys_opmc_get_ctr_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("h+4DJpAXs4I", sceKernelWebUnknown_024_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_025_nid_no_patch() { +int APS5_VABI __sys_opmc_get_hw_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("IglowNcOePQ", sceKernelWebUnknown_025_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_026_nid_no_patch() { +int APS5_VABI __sys_opmc_set_ctl_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("vS-RnoD1BSY", sceKernelWebUnknown_026_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_027_nid_no_patch() { +int APS5_VABI __sys_opmc_set_ctr_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("ztNqqNCl1Tw", sceKernelWebUnknown_027_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_028_nid_no_patch() { +int APS5_VABI __sys_opmc_set_hw_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("PIt9WYaoBqU", sceKernelWebUnknown_028_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_029_nid_no_patch() { +int APS5_VABI __sys_osem_close_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("raO+bB7q2cY", sceKernelWebUnknown_029_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_030_nid_no_patch() { +int APS5_VABI __sys_osem_open_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("kPGXeSQeoWc", sceKernelWebUnknown_030_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_031_nid_no_patch() { +int APS5_VABI __sys_randomized_path_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("n0ErFZ2hmKs", sceKernelWebUnknown_031_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_032_nid_no_patch() { +int APS5_VABI __sys_rdup_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("9Iem9Wk07xU", sceKernelWebUnknown_032_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_033_nid_no_patch() { +int APS5_VABI __sys_regmgr_call_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("7NwggrWJ5cA", sceKernelWebUnknown_033_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_034_nid_no_patch() { +int APS5_VABI __sys_set_uevt_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("ByogDrS-Xw8", sceKernelWebUnknown_034_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_035_nid_no_patch() { +int APS5_VABI __sys_socketclose_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("t+rTx5NW+qU", sceKernelWebUnknown_035_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_036_nid_no_patch() { +int APS5_VABI __sys_test_debug_rwmem_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("EeVthQocE3Y", sceKernelWebUnknown_036_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_037_nid_no_patch() { +int APS5_VABI __sys_workaround8849_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("jTPE1AS7uak", sceKernelWebUnknown_037_nid_no_patch); int APS5_VABI sceKernelWebUnknown_038_nid_no_patch() { NotImplemented_nid_no_patch(__func__); @@ -235,34 +199,29 @@ int APS5_VABI sceKernelWebUnknown_038_nid_no_patch() { } APS5_EXPORT("W8f1adVl+48", sceKernelWebUnknown_038_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_039_nid_no_patch() { +int APS5_VABI _execve_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("-3nj+K1elI0", sceKernelWebUnknown_039_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_040_nid_no_patch() { +int APS5_VABI _execvpe_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("ScfDTOqLOMw", sceKernelWebUnknown_040_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_041_nid_no_patch() { +int APS5_VABI _wait4_nid_disambig1_nid_postfix() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("RFlsu7nfopM", sceKernelWebUnknown_041_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_042_nid_no_patch() { +int APS5_VABI sceKernelGetPrefixVersion() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("BDGc8ohuveU", sceKernelWebUnknown_042_nid_no_patch); -int APS5_VABI sceKernelWebUnknown_043_nid_no_patch() { +int APS5_VABI sceKernelIccGetThermalAlert() { NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("zEmi6zvei2k", sceKernelWebUnknown_043_nid_no_patch); } diff --git a/core/libs/prx/libkernel_web/include/Api.hpp b/core/libs/prx/libkernel_web/include/Api.hpp new file mode 100644 index 0000000000..e1dbd43230 --- /dev/null +++ b/core/libs/prx/libkernel_web/include/Api.hpp @@ -0,0 +1,50 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI __freeze_nid_disambig1_nid_postfix(); +int APS5_VABI __sceKernelGetGPI_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_debug_init_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dl_get_info_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dl_get_info_2_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dl_get_list_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dl_get_metadata_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dynlib_get_info2_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dynlib_get_info_for_libdbg_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dynlib_get_list2_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dynlib_get_list_for_libdbg_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_dynlib_load_prx_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_get_proc_type_info_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_is_development_mode_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_kqueueex_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_namedobj_create_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_namedobj_delete_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_netabort_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_netcontrol_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_netgetiflist_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_netgetsockinfo_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_disable_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_enable_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_get_ctr_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_get_hw_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_set_ctl_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_set_ctr_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_opmc_set_hw_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_osem_close_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_osem_open_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_randomized_path_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_rdup_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_regmgr_call_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_set_uevt_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_socketclose_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_test_debug_rwmem_nid_disambig1_nid_postfix(); +int APS5_VABI __sys_workaround8849_nid_disambig1_nid_postfix(); +int APS5_VABI _execve_nid_disambig1_nid_postfix(); +int APS5_VABI _execvpe_nid_disambig1_nid_postfix(); +int APS5_VABI _wait4_nid_disambig1_nid_postfix(); +int APS5_VABI sceKernelGetPrefixVersion(); +int APS5_VABI sceKernelIccGetThermalAlert(); + +} diff --git a/core/libs/prx/libkernel_web/libkernel_web.hpp b/core/libs/prx/libkernel_web/libkernel_web.hpp index 6f70f09bee..425dbf9288 100644 --- a/core/libs/prx/libkernel_web/libkernel_web.hpp +++ b/core/libs/prx/libkernel_web/libkernel_web.hpp @@ -1 +1,3 @@ #pragma once + +#include "prx/libkernel_web/include/Api.hpp" diff --git a/docs/dev/debt/libkernel_web.md b/docs/dev/debt/libkernel_web.md index 10d0a1d57a..238fe0a3d4 100644 --- a/docs/dev/debt/libkernel_web.md +++ b/docs/dev/debt/libkernel_web.md @@ -1,10 +1,5 @@ # libkernel_web technical debt -### Known export names; ABI prototypes unverified +### Unknown function info -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 001–008 - PS5 3.20 imports (`__freeze`, `__sceKernelGetGPI`, `__sys_debug_init`, `__sys_dl_get_info`, `__sys_dl_get_info_2`, `__sys_dl_get_list`, `__sys_dl_get_metadata`, `__sys_dynlib_get_info2`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 009–016 - PS5 3.20 imports (`__sys_dynlib_get_info_for_libdbg`, `__sys_dynlib_get_list2`, `__sys_dynlib_get_list_for_libdbg`, `__sys_dynlib_load_prx`, `__sys_get_proc_type_info`, `__sys_is_development_mode`, `__sys_kqueueex`, `__sys_namedobj_create`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 017–024 - PS5 3.20 imports (`__sys_namedobj_delete`, `__sys_netabort`, `__sys_netcontrol`, `__sys_netgetiflist`, `__sys_netgetsockinfo`, `__sys_opmc_disable`, `__sys_opmc_enable`, `__sys_opmc_get_ctr`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 025–032 - PS5 3.20 imports (`__sys_opmc_get_hw`, `__sys_opmc_set_ctl`, `__sys_opmc_set_ctr`, `__sys_opmc_set_hw`, `__sys_osem_close`, `__sys_osem_open`, `__sys_randomized_path`, `__sys_rdup`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 033–040 - PS5 3.20 imports (`__sys_regmgr_call`, `__sys_set_uevt`, `__sys_socketclose`, `__sys_test_debug_rwmem`, `__sys_workaround8849`, `_dup2`, `_execve`, `_execvpe`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). -- [sceKernelWebUnknown_*_nid_no_patch](../../../core/libs/prx/libkernel_web/Export.cpp) (libkernel_web), aliases 041–043 - PS5 3.20 imports (`_wait4`, `sceKernelGetPrefixVersion`, `sceKernelIccGetThermalAlert`). Prototypes and behavior are unverified; each declaration uses the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. No ABI or behavior is claimed. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs). +- 42 [libkernel_web exports](../../../core/libs/prx/libkernel_web/Export.cpp) carry the PS5 3.20 import names whose `tools/nid_names.py` hash equals their NID (`__freeze`, `__sceKernelGetGPI`, the `__sys_*` wrappers, `_execve`, `_execvpe`, `_wait4`, `sceKernelGetPrefixVersion`, `sceKernelIccGetThermalAlert`); `sceKernelWebUnknown_038_nid_no_patch` is `_dup2` under its literal NID alias. A name match does not establish their prototypes or behavior: each keeps the no-parameter import-resolution convention and throws through `NotImplemented_nid_no_patch`. Source: [PS5-3.20_Libs](https://github.com/DNNDHH/PS5-3.20_Libs).