IOCTL

From PS4 Developer wiki
Jump to navigation Jump to search

What is it?

       int ioctl(int fd, unsigned long request, ...);

       The ioctl() system call manipulates the underlying device parameters
       of special files.  In particular, many operating characteristics of
       character special files (e.g., terminals) may be controlled with
       ioctl() requests.  The argument fd must be an open file descriptor.

       The second argument is a device-dependent request code.  The third
       argument is an untyped pointer to memory.  It's traditionally char
       *argp (from the days before void * was valid C), and will be so named
       for this discussion.

       An ioctl() request has encoded in it whether the argument is an in
       parameter or out parameter, and the size of the argument argp in
       bytes.  Macros and defines used in specifying an ioctl() request are
       located in the file <sys/ioctl.h>.

How many exist? Which ones are they?

PUP

C0184401 = decrypt_pup_header
C0184402 = verify_pup_additional_sign
C0184403 = verify_pup_watermark
C0184404 = decrypt_pup_segment
C0284405 = decrypt_pup_segment_block

DMEM

C0288001 allocate_direct_memory
80108002 release_direct_memory
80188003 set_direct_memory_type
C0208004 get_direct_memory_type
2000800B clear_game_direct_memory
C018800E (suspend/resume)_direct_memory_release
C018800F protect_direct_memory
C0288010 allocate_direct_memory_for_mini_app
C0288011 allocate_main_direct_memory
80288012 direct_memory_query
80108015 checked_release_direct_memory

FAN

C0068F06 get_fan_manual_duty

ICC POWER

C0019901 icc_notify_boot_status
C0099902 icc_get_system_powerup_cause
C1009903 icc_read_boot_message
C00C9904 icc_power_get_number_of_boot_shutdown
C0109905 icc_power_get_operating_time
20009906 icc_power_set_bootup_at_poweron

PFS

80709101 pfs_format
80049102 pfs_sbram_clear_useflag
80389103 pfs_img_compaction
20009104 pfs_img_compaction_cancel
80289105 pfs_sbram_write_metadata
C0389106 pfs_img_clean
80389107 pfs_img_clean_cancel
C0309108 pfs_sbram_get_header
20009109 pfs_sbram_init

ICC CONFIGURATION

C0029203 icc_configuration_get_cpu_info_bit
80029204 icc_configuration_set_cpu_info_bit
80019206 set_download_mode
40019207 icc_configuration_get_cp_mode
80019208 icc_configuration_set_cp_mode

ICC INDICATOR

80019501 icc_indicator_set_buzzer
801A9502 icc_indicator_set_led
401A9503 icc_indicator_get_led
80829504 icc_indicator_set_dynamic_led
40829505 icc_indicator_get_dynamic_led
20009506 icc_indicator_set_dynamic_led_boot
20009507 icc_indicator_set_dynamic_led_shutdown
20009508 indicator_standby
20009509 indicator_standby_shutdown
2000950A icc_indicator_set_dynamic_led_standby_boot

NVS

20009701 nvs_flush

ICC SC CONFIG

C0019B01 icc_sc_configuration_set_code_flash_sec

ICC DEVICE POWER

80019C01 icc_device_power_control_wlan_bt_power_state
40019C02 icc_device_power_get_wlan_bt_power_state
80019C03 icc_device_power_control_usb_power_state
40019C04 icc_device_power_get_usb_power_state
80019C05 icc_device_power_control_hdd_power_state
40019C06 icc_device_power_get_hdd_power_state
80019C07 icc_device_power_control_bd_power_state
40019C08 icc_device_power_get_bd_power_state

DIPSW

20008800 sceKernelInitializeDipsw
80028801 sceKernelSetDipsw
80028802 sceKernelUnsetDipsw
C0088803 sceKernelCheckDipsw
80108804 sceKernelReadDipswData
80108805 sceKernelWriteDipswData
40048806 sceKernelCheckDipsw

CREDITZ

SocraticBliss for the names