Editing Syscalls
Jump to navigation
Jump to search
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 34: | Line 34: | ||
== PS4 custom syscalls == | == PS4 custom syscalls == | ||
* Syscalls prototypes in the following table are for | * Syscalls prototypes in the following table are for userland interface. If it was kernel interface, the prototypes would have a thread pointer and a uap pointer: | ||
<source>sys_xxx(struct thread* td, struct xxx_args* uap);</source> | <source>sys_xxx(struct thread* td, struct xxx_args* uap);</source> | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Syscall ID !! <abbr title="Firmware Version">PS4 FW Version</abbr> !! Syscall name !! Syscall | ! Syscall ID !! <abbr title="Firmware Version">PS4 FW Version</abbr> !! Syscall name !! Syscall userland prototype !! Notes | ||
|- | |- | ||
| 99 || <=1.01? || sys_netcontrol || int sys_netcontrol(int ifindex, uint op, void *buf, uint nbuf) || Using invalid ifindex, ifp is null. Before PS4 12.00, the lack of mutexes allowed double free as fdrop is called unconditionally in bnet_netevent_unset_queue. See also PS Vita SceNetPs kernel module that uses similar bnet functions. | | 99 || <=1.01? || sys_netcontrol || int sys_netcontrol(int ifindex, uint op, void *buf, uint nbuf) || Using invalid ifindex, ifp is null. Before PS4 12.00, the lack of mutexes allowed double free as fdrop is called unconditionally in bnet_netevent_unset_queue. See also PS Vita SceNetPs kernel module that uses similar bnet functions. |