Editing IOCTL

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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 1: Line 1:
In computing, ioctl (an abbreviation of input/output control) is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do so. Device-independent request codes are sometimes used to give usermode access to kernel functions which are only used by core system software or still under development.
In computing, ioctl (an abbreviation of input/output control) is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do so. Device-independent request codes are sometimes used to give usermdoe access to kernel functions which are only used by core system software or still under development.


See also [https://en.wikipedia.org/wiki/Ioctl wikipedia page about IOCTL].
See also [https://en.wikipedia.org/wiki/Ioctl wikipedia page about IOCTL].
See also [[Devices]] and [https://www.psdevwiki.com/ps5/IOCTL PS5 IOCTL]s.


= Description =
= Description =
Line 30: Line 28:
       DIRECTION_NONE  = 0x2000000
       DIRECTION_NONE  = 0x2000000
</pre>
</pre>
* https://man.freebsd.org/cgi/man.cgi?ioctl


= List of IOCTL by kernel device =
= List of IOCTL by kernel device =


== srtc ==
== sbl ==
 
<pre>
C0105301 sceSblSrtcSetTick
C0105304 sceSblSrtcSetTime
C0085306 sceSblSrtcSetCorr
C0105307 sceSblSrtcSetDebugTime
</pre>
 
== npdrm ==
 
<pre>
C0404E03 npdrm_decrypt_isolated_rif
C0404E02 npdrm_decrypt_disc_rif
C0404E01 npdrm_decrypt_kds_rif
</pre>
 
== pltauth ==
 
<pre>
C0285301 sceSblPltAuthEncId
C0385302 sceSblAuthMgrPltAuthGenC1
C0385303 sceSblAuthMgrPltAuthVeriR1C2GenR2
C0385304 sceSblAuthMgrPltAuthResult
</pre>
 
== sbl_srv ==
 
<pre>
C0284501 sceSblSsEncDecServIoctl
C0405502 sceSblSsUtilsIoctl
C0A84B03 sceSblSsKeystoneIoctl
C1305201 sceSblSsRootparamIoctl
C14C5001 sceSblPfsKeymgrIoctl
40845301 sceSblSsSealedkeyIoctl
</pre>


=== pup_update / sc_fw_update ===
=== pup_update / sc_fw_update ===
Line 80: Line 41:
C0184404 decrypt_pup_segment
C0184404 decrypt_pup_segment
C0284405 decrypt_pup_segment_block
C0284405 decrypt_pup_segment_block
80014406 set_partition_updated
80014406 set_partion_updated ?typo for partition?
20004407 switch_bank
20004407 switch_bank
C0104408 make_chunk_table
C0104408 ?unknown name?
C0284409 decrypt_pup_header
C0284409 decrypt_pup_header_with_response
C010440A generate_challenge
C010440A generate_challenge
C008440B get_syscon_key_type
C008440B get_syscon_key_type
2000440C write_snvs
2000440C write_app_pup_info
C010440D verify_bls_header
C010440D verify_bls_header
</pre>
</pre>
Line 103: Line 64:
40845301 sceSblSsGenerateSealedKey
40845301 sceSblSsGenerateSealedKey
C0845302 sceSblSsDecryptSealedKey
C0845302 sceSblSsDecryptSealedKey
</pre>
<pre>
40105303 sceSblDevActSetStatus
40105303 sceSblDevActSetStatus
40105307 sceSblDevActGetStatus
C0185305 sceSblDevActVerifyWriteActCode
C0185306 sceSblDevActDeleteActCode
</pre>
<pre>
C0205364 sceSblIdataGetCprm
C0205364 sceSblIdataGetCprm
C0205365 sceSblIdataGetHddKey
C0205365 sceSblIdataGetHddKey
Line 422: Line 374:


* Thanks to SocraticBliss for the names.
* Thanks to SocraticBliss for the names.
=== qafutkn ===
<pre>
C0085301 createQafToken?
C0085302 checkQafToken?
C0085303 copyQafFlags?
C0085304 eraseQafToken?
C0085305 createUtokenToken?
C0085306 checkUtokenToken?
C0085307 copyUtokenFlags?
C0085308 eraseUtokenToken?
</pre>
=== vtrm ===
<pre>
C0285300 sceSblVtrmUninitialize
40285301 sceSblVtrmInitialize
C0285302 sceSblVtrmStatus
C0285303 sceSblVtrmBackup
C0285304 sceSblVtrmRestore
C0285305 sceSblVtrmStore
C0285306 sceSblVtrmRetrieve
C0285307 sceSblVtrmFree
</pre>
=== authmgr ===
<pre>
C04C4103 sceSblAuthMgrAddEEkc2
C0484102 sceSblAuthMgrDeleteEEkc
C0484101 sceSblAuthMgrAddEEkc
</pre>


= Finding the IOCTL handler address for a device in kernel =
= Finding the IOCTL handler address for a device in kernel =
Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)