LV2 Functions and Syscalls
(Difference between revisions)
m |
(→LV2 Syscalls) |
||
| Line 695: | Line 695: | ||
|352 | |352 | ||
|sys_memory_get_user_memory_size | |sys_memory_get_user_memory_size | ||
| + | |- | ||
| + | |376 | ||
| + | |sys_game_get_system_sw_version | ||
|- | |- | ||
|378 | |378 | ||
| Line 705: | Line 708: | ||
|380 | |380 | ||
|sys_get_system_parameter | |sys_get_system_parameter | ||
| + | |- | ||
| + | |383 | ||
| + | | | ||
| + | |used by sys_game_get_temperature if 384 fails | ||
| + | |- | ||
| + | |384 | ||
| + | |sys_sm_get_tzpb | ||
| + | |used by sys_game_get_temperature | ||
|- | |- | ||
|386 | |386 | ||
| Line 715: | Line 726: | ||
|403 | |403 | ||
|sys_tty_write | |sys_tty_write | ||
| + | |- | ||
| + | |410 | ||
| + | |sys_game_board_storage_read | ||
| + | |- | ||
| + | |411 | ||
| + | |sys_game_board_storage_write | ||
|- | |- | ||
|450 | |450 | ||
| Line 928: | Line 945: | ||
|sys_storage_util_unmount(?) | |sys_storage_util_unmount(?) | ||
|Parameters: Device Path (e.g. /dev_flash) | |Parameters: Device Path (e.g. /dev_flash) | ||
| + | |- | ||
| + | |863 | ||
| + | | | ||
|- | |- | ||
|865 | |865 | ||
Revision as of 05:13, 24 August 2011
Contents |
Functions
string.h
| Function | Notes | Offset in 3.41 | Offset in 3.15 | Offset in 3.10 | Offset in 3.01 | Offset in 2.76 |
|---|---|---|---|---|---|---|
| char *strcpy(char *dest, const char *src) | 0x04D2F0 | 0x4CDAC | 0X4CDA8 | 0x4AAC4 | 0x469B8 | |
| int strlen(char *str) | 0x04D318 | 0X4CDD4 | 0X4CDD0 | 0x4AAEC | 0x469E0 | |
| char *strcat(char *destination, const char *source) | 0x04D220 | 0x04CCDC | ||||
| char *strchr(const char* str, char chr) | 0x04D258 | 0x04CD14 | ||||
| char *strrchr(const char* str, char chr) | 0x04CEE4 | |||||
| int strcmp(const char *s1, const char *s2) | 0x04D29C | 0x04CD58 | ||||
| int strncmp(const char *s1, const char *s2, size_t n) | 0x04D344 | 0X4CE00 | 0X4CDFC | 0x4AB18 | 0x46A0C | |
| char *strncpy(char *destination, const char *source, size_t num) | 0x04D3B8 | 0x04CE74 | ||||
| int memcmp(void *v1, void *v2, size_t n) | 0x04C454 | 0x04BF10 | ||||
| void *memchr(void *s, int c, size_t n) | 0x04BEC0 | |||||
| void *memcpy(void *dest, const void *src, size_t n) | 0x07C01C | 0X7BE9C | 0X7BE98 | 0x77E84 | 0x7395C | |
| void *memset(void *s, int c, size_t n) | 0x04D144 | 0X4CC00 | 0X4CBFC | 0x4A95C | 0x46850 |
stdio.h
| Function | Notes | Offset in 3.41 | Offset in 3.15 |
|---|---|---|---|
| int snprintf(char *str, size_t size, char *format, ...) | 0x04E4D8 | 0x04DF94 | |
| int sprintf(char *str, char *format, ...) | 0x04E56C | 0x04E028 | |
| int printf(char *format, ...) | This prints to the serial debug console. | 0x28A654 | 0x28A11C |
lv2
| Function | Notes | Offset in 3.41 | Offset in 3.15 | Offset in 3.10 | Offset in 3.01 | Offset in 2.76 |
|---|---|---|---|---|---|---|
| void* alloc(size_t size, int unk) | unk is possibly pool? PSGroove uses 0x27. | 0x62088 | 0x61CF0 | 0x61CEC | 0x5DF4C | 0x59D54 |
| void dealloc(void* ptr, int unk) | unk is possibly pool? Should be the same value of unk given to alloc. | 0x624C8 | 0x62138 | 0x62134 | 0x5E38C | 0x5A194 |
| void process_utils::create_initial_system_process(). | Called to start the first userspace process, which is normally "sys_init_osd.self" but it can also launch recovery mode or update mode. | 0x287D50 | 0x287858 | |||
| void Panic(int unk) | This function does not return.
(It seems that the offset point to a location that will cause panic after, not the real panic function, use with caution) |
0x288568 | ||||
| USBGetDeviceDescriptor | USB function | 0xd2998 | 0xd3474 | 0xCCD2C | ||
| USBOpenEndpoint | 0xd29c4 | 0xd34ac | 0xCCD58 | |||
| USBControlTransfer | 0xd292c | 0xd3408 | 0xCCCC0 | |||
| USBRegisterDriver | 0xd22d8 | 0xd2978 | 0xCC6A0 |
Lv2 System Table Offset
| FW version | Offset |
|---|---|
| 3.55 | 0x346570 |
| 3.41 | 0x2EB128 |
| 3.40 | 0x2EB128 |
| 3.30 | 0x2EA728 |
| 3.21 | 0x2EA8A0 |
| 3.15 | 0x2EA820 |
| 3.10 | 0x2EA820 |
| 3.01 | 0x2CFB40 |
| 2.76 | 0x2C4318 |
Syscalls
LV2 Syscalls
| Number | Name | Notes |
|---|---|---|
| 1 | sys_process_getpid | |
| 2 | sys_process_wait_for_child | |
| 4 | sys_process_get_status | |
| 5 | sys_process_detach_child | |
| 12 | sys_process_get_number_of_object | |
| 13 | sys_process_get_id | |
| 14 | sys_process_is_spu_lock_line_reservation_address | |
| 18 | sys_process_getppid | |
| 19 | sys_process_kill | |
| 23 | sys_process_wait_for_child2 | |
| 25 | sys_process_get_sdk_version | |
| 43 | sys_ppu_thread_yield | |
| 44 | sys_ppu_thread_join | |
| 45 | sys_ppu_thread_detach | |
| 46 | sys_ppu_thread_get_join_state | |
| 47 | sys_ppu_thread_set_priority | |
| 48 | sys_ppu_thread_get_priority | |
| 49 | sys_ppu_thread_get_stack_information | |
| 56 | sys_ppu_thread_rename | |
| 57 | sys_ppu_thread_recover_page_fault | |
| 67 | sys_trace_allocate_buffer | |
| 68 | sys_trace_free_buffer | |
| 69 | sys_trace_create2 | |
| 70 | sys_timer_create | |
| 71 | sys_timer_destroy | |
| 72 | sys_timer_get_information | |
| 73 | sys_timer_start | |
| 74 | sys_timer_stop | |
| 75 | sys_timer_connect_event_queue | |
| 76 | sys_timer_disconnect_event_queue | |
| 80 | sys_interrupt_tag_create | |
| 81 | sys_interrupt_tag_destroy | |
| 84 | sys_interrupt_thread_establish | |
| 88 | sys_interrupt_thread_eoi | |
| 89 | sys_interrupt_thread_disestablish | |
| 90 | sys_semaphore_create | |
| 91 | sys_semaphore_destroy | |
| 92 | sys_semaphore_wait | |
| 93 | sys_semaphore_trywait | |
| 94 | sys_semaphore_post | |
| 95 | sys_lwmutex_create | |
| 96 | sys_lwmutex_destroy | |
| 97 | sys_lwmutex_lock | |
| 98 | sys_lwmutex_trylock | |
| 99 | sys_lwmutex_unlock | |
| 100 | sys_mutex_create | |
| 101 | sys_mutex_destroy | |
| 102 | sys_mutex_lock | |
| 103 | sys_mutex_trylock | |
| 104 | sys_mutex_unlock | |
| 105 | sys_cond_create | |
| 106 | sys_cond_destroy | |
| 107 | sys_cond_wait | |
| 108 | sys_cond_signal | |
| 109 | sys_cond_signal_all | |
| 110 | sys_cond_signal_to | |
| 114 | sys_semaphore_get_value | |
| 120 | sys_rwlock_create | |
| 121 | sys_rwlock_destroy | |
| 122 | sys_rwlock_rlock | |
| 123 | sys_rwlock_tryrlock | |
| 124 | sys_rwlock_runlock | |
| 125 | sys_rwlock_wlock | |
| 126 | sys_rwlock_trywlock | |
| 127 | sys_rwlock_wunlock | |
| 128 | sys_event_queue_create | |
| 129 | sys_event_queue_destroy | |
| 130 | sys_event_queue_receive | |
| 131 | sys_event_queue_tryreceive | |
| 133 | sys_event_queue_drain | |
| 134 | sys_event_port_create | |
| 135 | sys_event_port_destroy | |
| 136 | sys_event_port_connect_local | |
| 137 | sys_event_port_disconnect | |
| 138 | sys_event_port_send | |
| 140 | sys_event_port_connect_ipc | |
| 141 | sys_timer_usleep | |
| 142 | sys_timer_sleep | |
| 145 | sys_time_get_current_time | |
| 147 | sys_time_get_timebase_frequency | |
| 150 | sys_raw_spu_create_interrupt_tag | |
| 151 | sys_raw_spu_set_int_mask | |
| 152 | sys_raw_spu_get_int_mask | |
| 153 | sys_raw_spu_set_int_stat | |
| 154 | sys_raw_spu_get_int_stat | |
| 156 | sys_spu_image_open | |
| 160 | sys_raw_spu_create | |
| 161 | sys_raw_spu_destroy | |
| 163 | sys_raw_spu_read_puint_mb | |
| 165 | sys_spu_thread_get_exit_status | |
| 166 | sys_spu_thread_set_argument | |
| 167 | sys_spu_thread_group_start_on_exit | |
| 169 | sys_spu_initialize | |
| 170 | sys_spu_thread_group_create | |
| 171 | sys_spu_thread_group_destroy | |
| 172 | sys_spu_thread_initialize | |
| 173 | sys_spu_thread_group_start | |
| 174 | sys_spu_thread_group_suspend | |
| 175 | sys_spu_thread_group_resume | |
| 176 | sys_spu_thread_group_yield | |
| 177 | sys_spu_thread_group_terminate | |
| 178 | sys_spu_thread_group_join | |
| 179 | sys_spu_thread_group_set_priority | |
| 180 | sys_spu_thread_group_get_priority | |
| 181 | sys_spu_thread_write_ls | |
| 182 | sys_spu_thread_read_ls | |
| 184 | sys_spu_thread_write_snr | |
| 185 | sys_spu_thread_group_connect_event | |
| 186 | sys_spu_thread_group_disconnect_event | |
| 187 | sys_spu_thread_set_spu_cfg | |
| 188 | sys_spu_thread_get_spu_cfg | |
| 190 | sys_spu_thread_write_spu_mb | |
| 191 | sys_spu_thread_connect_event | |
| 192 | sys_spu_thread_disconnect_event | |
| 193 | sys_spu_thread_bind_queue | |
| 194 | sys_spu_thread_unbind_queue | |
| 196 | sys_raw_spu_set_spu_cfg | |
| 197 | sys_raw_spu_get_spu_cfg | |
| 198 | sys_spu_thread_recover_page_fault | |
| 199 | sys_raw_spu_recover_page_fault | |
| 244 | sys_spu_thread_group_system_set_next_group | |
| 245 | sys_spu_thread_group_system_unset_next_group | |
| 246 | sys_spu_thread_group_system_set_switch_group | |
| 247 | sys_spu_thread_group_system_unset_switch_group | |
| 251 | sys_spu_thread_group_connect_event_all_threads | |
| 252 | sys_spu_thread_group_disconnect_event_all_threads | |
| 260 | sys_spu_image_open_by_fd | |
| 327 | sys_mmapper_enable_page_fault_notification | |
| 329 | sys_mmapper_free_shared_memory | |
| 330 | sys_mmapper_allocate_address | |
| 331 | sys_mmapper_free_address | |
| 332 | sys_mmapper_allocate_shared_memory | |
| 333 | sys_mmapper_set_shared_memory_flag | |
| 334 | sys_mmapper_map_shared_memory | |
| 335 | sys_mmapper_unmap_shared_memory | |
| 336 | sys_mmapper_change_address_access_right | |
| 337 | sys_mmapper_search_and_map | |
| 338 | sys_mmapper_get_shared_memory_attribute | |
| 341 | sys_memory_container_create | |
| 342 | sys_memory_container_destroy | |
| 343 | sys_memory_container_get_size | |
| 348 | sys_memory_allocate | |
| 349 | sys_memory_free | |
| 350 | sys_memory_allocate_from_container | |
| 351 | sys_memory_get_page_attribute | |
| 352 | sys_memory_get_user_memory_size | |
| 376 | sys_game_get_system_sw_version | |
| 378 | sys_sm_get_ext_event2 | |
| 379 | sys_reboot_turnoff(?) | system_call_4(379,0x200,0,0,0); // 0x1100/0x100 = turn off,0x1200/0x200=reboot |
| 380 | sys_get_system_parameter | |
| 383 | used by sys_game_get_temperature if 384 fails | |
| 384 | sys_sm_get_tzpb | used by sys_game_get_temperature |
| 386 | sys_ctrl_led(?) | Controls Power LED - Parameters: value1,value2 |
| 402 | sys_tty_read | |
| 403 | sys_tty_write | |
| 410 | sys_game_board_storage_read | |
| 411 | sys_game_board_storage_write | |
| 450 | sys_overlay_load_module | |
| 451 | sys_overlay_unload_module | |
| 452 | sys_overlay_get_module_list | |
| 453 | sys_overlay_get_module_info | |
| 454 | sys_overlay_load_module_by_fd | |
| 455 | sys_overlay_get_module_info2 | |
| 456 | sys_overlay_get_sdk_version | |
| 457 | sys_overlay_get_module_dbg_info | |
| 461 | sys_prx_get_module_id_by_address | |
| 463 | sys_prx_load_module_by_fd | |
| 464 | sys_prx_load_module_on_memcontainer_by_fd | |
| 480 | sys_prx_load_module | |
| 481 | sys_prx_start_module | |
| 482 | sys_prx_stop_module | |
| 483 | sys_prx_unload_module | |
| 484 | sys_prx_register_module | |
| 485 | sys_prx_query_module | |
| 486 | sys_prx_register_library | |
| 487 | sys_prx_unregister_library | |
| 488 | sys_prx_link_library | |
| 489 | sys_prx_unlink_library | |
| 490 | sys_prx_query_library | |
| 494 | sys_prx_get_module_list | |
| 495 | sys_prx_get_module_info | |
| 496 | sys_prx_get_module_id_by_name | |
| 497 | sys_prx_load_module_on_memcontainer | |
| 498 | sys_prx_start | |
| 499 | sys_prx_stop | |
| 600 | sys_storage_open | int sys_storage_open(uint64_t id, int *fd) |
| 601 | sys_storage_close | int sys_storage_close(int fd) |
| 602 | sys_storage_read | int sys_storage_read(int fd, uint32_t start_sector, uint32_t sectors, uint8_t *bounce_buf, uint8_t *sectors_read) |
| 603 | sys_storage_write | |
| 604 | sys_storage_send_device_command | |
| 605 | sys_storage_async_configure | |
| 606 | sys_storage_async_read | |
| 607 | sys_storage_async_write | |
| 608 | sys_storage_async_cancel | |
| 609 | sys_storage_get_device_info | int sys_storage_get_device_info(uint64_t device, uint8_t *buffer), buffer[40]=total sectors,buffer[48]=sector size |
| 610 | sys_storage_get_device_config | |
| 611 | sys_storage_report_devices | |
| 612 | sys_storage_configure_medium_event | |
| 613 | sys_storage_set_medium_polling_interval | |
| 614 | sys_storage_create_region | |
| 615 | sys_storage_delete_region | |
| 616 | sys_storage_execute_device_command | |
| 617 | sys_storage_get_region_acl | |
| 618 | sys_storage_set_region_acl | |
| 624 | sys_io_buffer_create | |
| 625 | sys_io_buffer_destroy | |
| 626 | sys_io_buffer_allocate | |
| 627 | sys_io_buffer_free | |
| 630 | sys_gpio_set | |
| 631 | sys_gpio_get | |
| 633 | sys_fsw_connect_event | |
| 634 | sys_fsw_disconnect_event | |
| 666 | sys_rsx_device_open | |
| 667 | sys_rsx_device_close | |
| 668 | sys_rsx_memory_allocate | |
| 669 | sys_rsx_memory_free | |
| 670 | sys_rsx_context_allocate | |
| 671 | sys_rsx_context_free | |
| 672 | sys_rsx_context_iomap | |
| 673 | sys_rsx_context_iounmap | |
| 674 | sys_rsx_context_attribute | |
| 675 | sys_rsx_device_map | |
| 676 | sys_rsx_device_unmap | |
| 677 | sys_rsx_attribute | |
| 837 | sys_storage_util_mount(?) | Parameters: Device Name (e.g CELL_FS_IOS:BUILTIN_FLSH1), Device File System (e.g CELL_FS_FAT), Device Path (e.g. /dev_flash), 0, Write Protection (0 or 1), 0, 0, 0 |
| 838 | sys_storage_util_unmount(?) | Parameters: Device Path (e.g. /dev_flash) |
| 863 | ||
| 865 | sys_ss_random_number_generator | |
| 871 | sys_ss_access_control_engine | |
| 872 | sys_ss_get_open_psid | |
| 873 | sys_ss_get_cache_of_product_mode | |
| 874 | sys_ss_get_cache_of_flash_ext_flag | |
| 875 | sys_ss_get_boot_device | |
| 876 | sys_ss_disc_access_control | |
| 878 | sys_ss_ad_sign | |
| 879 | sys_ss_media_id | |
| 880 | sys_deci3_open | |
| 881 | sys_deci3_create_event_path | |
| 882 | sys_deci3_close | |
| 883 | sys_deci3_send | |
| 884 | sys_deci3_receive |
Network Syscall
Networking uses syscalls 700-726
| Number | Name | Notes |
|---|---|---|
| 700 | sys_net_bnet_accept | |
| 701 | sys_net_bnet_bind | |
| 702 | sys_net_bnet_connect | |
| 703 | sys_net_bnet_getpeername | |
| 704 | sys_net_bnet_getsockname | |
| 705 | sys_net_bnet_getsockopt | |
| 706 | sys_net_bnet_listen | |
| 707 | sys_net_bnet_recvfrom | |
| 708 | sys_net_bnet_recvmsg | |
| 709 | sys_net_bnet_sendmsg | |
| 710 | sys_net_bnet_sendto | |
| 711 | sys_net_bnet_setsockop | |
| 712 | sys_net_bnet_shutdown | |
| 713 | sys_net_bnet_socket | |
| 714 | sys_net_bnet_close | |
| 715 | sys_net_bnet_poll | |
| 716 | sys_net_bnet_select | |
| 717 | unknown | |
| 718 | unknown | |
| 719 | unknown | |
| 720 | unknown | |
| 721 | unknown | |
| 722 | unknown | |
| 723 | unknown | |
| 724 | sys_net_bnet_ioctl | |
| 725 | sys_net_bnet_sysctl | |
| 726 | unknown |
File Syscalls
OFLAGS
| Name | Value |
|---|---|
| LV2_O_RDONLY | 0x000000 |
| LV2_O_WRONLY | 0x000001 |
| LV2_O_RDWR | 0x000002 |
| LV2_O_ACCMODE | 0x000003 |
| LV2_O_CREAT | 0x000100 |
| LV2_O_EXCL | 0x000200 |
| LV2_O_TRUNC | 0x001000 |
| LV2_O_APPEND | 0x002000 |
| LV2_O_MSELF | 0x010000 |
Classes
| Name | Structure | Packed |
|---|---|---|
| Lv2FsStat | s32 st_mode; s32 st_uid; s32 st_gid; u64 st_access_time; u64 st_modify_time; u64 st_create_time; u64 st_size; u64 st_blksize; | yes |
| Lv2FsUtimbuf | u64 access_time; u64 modify_time; | no |
| Lv2FsDirent | u8 d_type; u8 d_namlen; char d_name[256]; | no |
| Number | Name | Notes |
|---|---|---|
| 801 | lv2FsOpen | char* patch = r3, s32 oflags = r4, u64* file_id = r5, s32 mode = r6 (???), void* arg = r7 (???), u32 argcount = r8 |
| 802 | lv2FsRead | u32 file_id = r3, void* buf = r4, u64 size = r5, u64* readed_count = r6 |
| 803 | lv2FsWrite | u32 file_id = r3, const void* buf = r4, u64 size = r5, u64* written_count = r6 |
| 804 | lv2FsClose | u32 file_id = r3 |
| 805 | lv2FsOpenDir | char* patch = r3, s32 file_id = r4 |
| 806 | lv2FsReadDir | u32 file_id = r3, Lv2FsDirent* fs_dirent = r4, u64* readed_count = r5 |
| 807 | lv2FsCloseDir | u32 file_id = r3 |
| 808 | lv2FsStat | |
| 809 | lv2FsFstat | |
| 810 | lv2FsLink | |
| 811 | lv2FsMkdir | char* patch = r3, u32 mode = r4 |
| 812 | lv2FsRename | |
| 813 | lv2FsRmdir | |
| 814 | lv2FsUnlink | |
| 815 | lv2FsUtime | |
| 818 | lv2FsLSeek | |
| 820 | lv2FsFSync | |
| 831 | lv2FsTruncate | |
| 832 | lv2FsFTruncate | |
| 834 | lv2FsChmod |