Skip to content

feat(libs): declare 16 network exports by their hash-verified names - #5124

Closed
parl0v wants to merge 1 commit into
boykopovar:mainfrom
parl0v:feat/names-net
Closed

parl0v wants to merge 1 commit into
boykopovar:mainfrom
parl0v:feat/names-net

Conversation

@parl0v

@parl0v parl0v commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

What

Declares 16 exports by name: socket option, network-config route and device-socket exports in libSceNet, and the access-point captive-portal (ApCp) exports in libSceNetCtl. Each is a throwing stub (NotImplemented_nid_no_patch) declared without parameters, with an Unknown function info entry in its library's technical debt file.

Library NID Name zecoxao/sce_symbols
libSceNet -qjsa0xOWMc sceNetConfigDelRouteWithInterface #23
libSceNet Z9tlW8UAHg8 sceNetGetsockoptEx #22 (merged)
libSceNet dplpPTDtVhQ sceNetConfigAddRoute6WithInterface #23
libSceNet guwFkKH+wP8 sceNetDevSocket #23
libSceNet hP8ZEqjQ0hM sceNetSetsockoptEx #22 (merged)
libSceNet q-8ufzUnVUs sceNetConfigDelRoute6WithInterface #23
libSceNetCtl 09YMz3Vp5us sceNetCtlApCpUnregisterCallback #23
libSceNetCtl AIu-tRC-mSM sceNetCtlApCpRegisterCallback #23
libSceNetCtl FwX+Js8qXNA sceNetCtlApCpStartWithRetry #23
libSceNetCtl I14Npt-awQg sceNetCtlApCpGetInfo #23
libSceNetCtl e5-Xj0wEzbI sceNetCtlApCpCheckCallback #23
libSceNetCtl lScJhO3Rnpk sceNetCtlApCpGetResult #23
libSceNetCtl mfWDyuk-M0I sceNetCtlApCpClearEvent #23
libSceNetCtl on7RqSRy8pU sceNetCtlApCpGetState #23
libSceNetCtl rjScLOEk-eU sceNetCtlGetIfStatIpcInt #23
libSceNetCtl wVXoAlD7Fsg sceNetCtlApCpGetConnectInfo #23

The names come from the shared NID database, where I added them (zecoxao/sce_symbols #22 and #23). Each name hashes to its NID with tools/nid_names.py compute_nid, and the library is the module that exports the NID in the 10.01 system modules.

No title I know of imports these yet, so nothing calls them today. With them declared, a title that does import one resolves it by name and stops with that name in the NotImplemented message instead of an unresolved NID at load. Implementations can then replace the stubs one by one.

Tested

  • Windows 10 19045, MinGW-w64 GCC 15.2: the libs target builds; tools/check_conventions.py --base origin/main passes.
  • Every name re-hashed against its NID before the commit.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • AI-assisted: yes

@github-actions

Copy link
Copy Markdown

Progress report (a2a3a3a → c88d510)

📉 System libraries: 87.46% (-0.38%, +16 declared functions)

🆕 16 declared as stubs
Library Name
libSceNet sceNetConfigAddRoute6WithInterface
libSceNet sceNetConfigDelRoute6WithInterface
libSceNet sceNetConfigDelRouteWithInterface
libSceNet sceNetDevSocket
libSceNet sceNetGetsockoptEx
libSceNet sceNetSetsockoptEx
libSceNetCtl sceNetCtlApCpCheckCallback
libSceNetCtl sceNetCtlApCpClearEvent
libSceNetCtl sceNetCtlApCpGetConnectInfo
libSceNetCtl sceNetCtlApCpGetInfo
libSceNetCtl sceNetCtlApCpGetResult
libSceNetCtl sceNetCtlApCpGetState
libSceNetCtl sceNetCtlApCpRegisterCallback
libSceNetCtl sceNetCtlApCpStartWithRetry
libSceNetCtl sceNetCtlApCpUnregisterCallback
libSceNetCtl sceNetCtlGetIfStatIpcInt

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#5056 docs/dev/debt/libSceNetCtl.md docs/dev/debt/libSceNetCtl.md

EagleBearerYS added a commit to EagleBearerYS/AnyPS5 that referenced this pull request Oct 13, 2026
boykopovar#5124 adds an entry after sceNetShowNetstat at the end of the unknown function info list, so adding the inet entry there made the two pull requests conflict.
@0xRickx

0xRickx commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Hi @parl0v, about the overlap the bot reports with #5056 (sceNetCtlGetInfo). The two PRs share nothing in Export.cpp: they merge cleanly there. The only clash is docs/dev/debt/libSceNetCtl.md, which both create. Both versions have the same heading and one entry under ### Unknown function info.

Neither PR depends on the other, so the one merged second just keeps both entries. If yours lands first, I'll rebase #5056 that way. If #5056 lands first, the same goes for yours.

AI-assisted (Claude Code).

@parl0v

parl0v commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

Agreed, thanks @0xRickx. Neither depends on the other; whichever lands second keeps both entries in docs/dev/debt/libSceNetCtl.md. If #5056 goes first I'll rebase this one the same day.

@CnRJay CnRJay left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same situation as #5123 in this series (see the review there): the names hash correctly, but no title imports these exports yet, and export-only PRs without a title that reaches the export on main have been closed (#1205, #1208, #950). Keeping the names in sce_symbols and reopening once a title's log shows one of them would match current review practice.

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Closing: no title is known to reach this. With the queue at 700+ open PRs, please hold off on new PRs that don't name a title needing the change until it's down. If a title stops on this on current main, reopen with the title ID and the log line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants