HV Syscalls: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (added more syscall names thx to Toshiba! :D https://elixir.bootlin.com/linux/v3.1/source/arch/powerpc/platforms/cell/beat_syscall.h →‎HV Syscalls)
(12 intermediate revisions by 4 users not shown)
Line 38: Line 38:
|-
|-
| 5
| 5
| [[HV Syscall Reference#lv1_undocumented_function_5|lv1_decrementer_intr_start]]
| [[HV Syscall Reference#lv1_decrementer_intr_start|lv1_decrementer_intr_start]]
| ??
| ??
| ??
| ??
Line 53: Line 53:
|-
|-
| 8
| 8
| [[HV Syscall Reference#lv1_undocumented_function_8|lv1_undocumented_function_8]]
| [[HV Syscall Reference#lv1_get_total_execution_time|lv1_get_total_execution_time]]
| ??
| ??
| 1
| 1
Line 318: Line 318:
|-
|-
| 61
| 61
| [[HV Syscall Reference#lv1_set_spe_interrupt_mask|lv1_set_spe_interrupt_mask]]
| [[HV Syscall Reference#lv1_set_irq_mask_for_spu|lv1_set_irq_mask_for_spu]]
| 3
| 3
| 0
| 0
|-
|-
| 62
| 62
| [[HV Syscall Reference#lv1_undocumented_function_62|lv1_undocumented_function_62]]
| [[HV Syscall Reference#lv1_set_slb_for_logical_spu|lv1_set_slb_for_logical_spu]]  
| 5
| 5
| 0
| 0
Line 524: Line 524:
| 102
| 102
| [[HV Syscall Reference#lv1_undocumented_function_102|lv1_undocumented_function_102]]
| [[HV Syscall Reference#lv1_undocumented_function_102|lv1_undocumented_function_102]]
| ??
| 0
| ??
| 2
|-
|-
| 103
| 103
Line 538: Line 538:
|-
|-
| 105
| 105
| [[HV Syscall Reference#lv1_undocumented_function_105|lv1_comm_dev_logical_console_open]]
| [[HV Syscall Reference#lv1_undocumented_function_105|lv1_comm_dev_logical_console_construct]]
| ??
| 7
| ??
| 1
|-
|-
| 106
| 106
| [[HV Syscall Reference#lv1_undocumented_function_106|lv1_undocumented_function_106]]
| [[HV Syscall Reference#lv1_undocumented_function_106|lv1_comm_dev_logical_console_destruct]]
| ??
| 1
| ??
| 1
|-
|-
| 107
| 107
| [[HV Syscall Reference#lv1_undocumented_function_107|lv1_undocumented_function_107]]
| [[HV Syscall Reference#lv1_undocumented_function_107|lv1_comm_dev_logical_console_send]]
| ??
| 6
| ??
| 2
|-
|-
| 108
| 108
| [[HV Syscall Reference#lv1_undocumented_function_108|lv1_comm_dev_logical_console_read]]
| [[HV Syscall Reference#lv1_undocumented_function_108|lv1_comm_dev_logical_console_receive]]
| ??
| 1
| ??
| 6
|-
|-
| 109
| 109
| [[HV Syscall Reference#lv1_undocumented_function_109|lv1_comm_dev_logical_console_write]]
| [[HV Syscall Reference#lv1_undocumented_function_109|lv1_comm_dev_logical_console_flush]]
| ??
| 1
| ??
| 1
|-
|-
| 110
| 110
| [[HV Syscall Reference#lv1_undocumented_function_110|lv1_undocumented_function_110]]
| [[HV Syscall Reference#lv1_read_remote_file|lv1_read_remote_file]]
| ??
| 5
| ??
| 2
|-
|-
| 111
| 111
| [[HV Syscall Reference#lv1_undocumented_function_111|lv1_undocumented_function_111]]
| [[HV Syscall Reference#lv1_write_remote_file|lv1_write_remote_file]]
| ??
| 5
| ??
| 2
|-
|-
| 112
| 112
| [[HV Syscall Reference#lv1_undocumented_function_112|lv1_undocumented_function_112]]
| [[HV Syscall Reference#lv1_get_remote_file_size|lv1_get_remote_file_size]]
| ??
| 2
| ??
| 2
|-
|-
| 113
| 113
Line 583: Line 583:
|-
|-
| 114
| 114
| [[HV Syscall Reference#lv1_undocumented_function_114|lv1_undocumented_function_114]]
| [[HV Syscall Reference#lv1_map_physical_address_region|lv1_map_physical_address_region]]
| 3
| 3
| 1
| 1
|-
|-
| 115
| 115
| [[HV Syscall Reference#lv1_undocumented_function_115|lv1_undocumented_function_115]]
| [[HV Syscall Reference#lv1_unmap_physical_address_region|lv1_unmap_physical_address_region]]
| 1
| 1
| 1
| 0
|-
|-
| 116
| 116
Line 633: Line 633:
|-
|-
| 124
| 124
| [[HV Syscall Reference#lv1_undocumented_function_124|lv1_undocumented_function_124]]
| [[HV Syscall Reference#lv1_read_remote_file_long_name|lv1_read_remote_file_long_name]]
| ??
| 6
| ??
| 2
|-
|-
| 125
| 125
| [[HV Syscall Reference#lv1_undocumented_function_125|lv1_undocumented_function_125]]
| [[HV Syscall Reference#lv1_write_remote_file_long_name|lv1_write_remote_file_long_name]]
| ??
| 6
| ??
| 2
|-
|-
| 126
| 126
| [[HV Syscall Reference#lv1_undocumented_function_126|lv1_undocumented_function_126]]
| [[HV Syscall Reference#lv1_get_remote_file_size_long_name|lv1_get_remote_file_size_long_name]]
| ??
| 3
| ??
| 2
|-
|-
| 127
| 127
Line 689: Line 689:
| 135
| 135
| [[HV Syscall Reference#lv1_undocumented_function_135|lv1_undocumented_function_135]]
| [[HV Syscall Reference#lv1_undocumented_function_135|lv1_undocumented_function_135]]
| ??
| 3
| ??
| 2
|-
|-
| 136
| 136
Line 698: Line 698:
|-
|-
| 137
| 137
| [[HV Syscall Reference#lv1_undocumented_function_137|lv1_undocumented_function_137]]
| [[HV Syscall Reference#lv1_disable_spe_execution_locked|lv1_disable_spe_execution_locked]]
| ??
| ??
| ??
| ??
Line 1,123: Line 1,123:
|-
|-
| 222
| 222
| [[HV Syscall Reference#lv1_undocumented_function_222|lv1_undocumented_function_222]]
| [[HV Syscall Reference#lv1_gpu_context_uniomap|lv1_gpu_context_uniomap]]
| 0
| 0
| 0
| 0

Revision as of 14:43, 3 May 2021

LV1/hvcall index

This page is used as an indexpage of the hypercalls listed @ HV Syscall Reference


HV Syscalls

Number Name IN OUT
0 lv1_allocate_memory 4 2
1 lv1_write_htab_entry 4 0
2 lv1_construct_virtual_address_space 3 2
3 lv1_invalidate_htab_entries 5 0
4 lv1_get_virtual_address_space_id_of_ppe 1 1
5 lv1_decrementer_intr_start ?? ??
6 lv1_query_logical_partition_address_region_info 1 5
7 lv1_select_virtual_address_space 1 0
8 lv1_get_total_execution_time ?? 1
9 lv1_pause 1 0
10 lv1_destruct_virtual_address_space 1 0
11 lv1_configure_irq_state_bitmap 3 0
12 lv1_connect_irq_plug_ext 5 0
13 lv1_release_memory 1 0
14 lv1_get_io_address_translation_fault_info
15 lv1_put_iopte (kboot) 5 0
16 lv1_get_iopte
17 lv1_disconnect_irq_plug_ext 3 0
18 lv1_construct_event_receive_port 0 1
19 lv1_destruct_event_receive_port 1 0
20 lv1_request_to_connect_event_ports
21 lv1_connect_event_ports
22 lv1_destruct_event_send_port
23 lv1_send_event_externally
24 lv1_send_event_locally 1 0
25 lv1_get_state_of_event_send_port
26 lv1_detect_pending_interrupts (kboot) 1 4
27 lv1_end_of_interrupt (kboot) 1 0
28 lv1_connect_irq_plug (kboot) 2 0
29 lv1_disconnect_irq_plug (kboot) 1 0
30 lv1_end_of_interrupt_ext 3 0
31 lv1_did_update_interrupt_mask 2 0
32 lv1_send_message
33 lv1_request_to_connect_message_ports
34 lv1_get_message_port_info
35 lv1_connect_message_ports
36 lv1_destruct_message_port
37 lv1_receive_message
38 lv1_undocumented_function_247
39 lv1_undocumented_function_247
40 lv1_undocumented_function_247
41 lv1_undocumented_function_247
42 lv1_undocumented_function_247
43 lv1_undocumented_function_247
44 lv1_shutdown_logical_partition (kboot) 1 0
45 lv1_assign_control_signal_notification_port
46 lv1_get_control_signal
47 lv1_undocumented_function_247
48 lv1_end_of_control_signal_processing
49 lv1_request_to_attach_shared_memory
50 lv1_permit_sharing_memory
51 lv1_destruct_shared_memory_handle
52 lv1_get_shared_memory_info
53 lv1_construct_logical_spe
54 lv1_destruct_logical_spe 1 0
55 lv1_enable_logical_spe_execution
56 lv1_disable_logical_spe_execution
57 lv1_construct_logical_spe 7 6
58 lv1_sense_spe_execution_status
59 lv1_undocumented_function_247
60 lv1_undocumented_function_247
61 lv1_set_irq_mask_for_spu 3 0
62 lv1_set_slb_for_logical_spu 5 0
63 lv1_undocumented_function_63 ?? ??
64 lv1_set_spe_transition_notifier 3 0
65 lv1_disable_logical_spe 2 0
66 lv1_clear_spe_interrupt_status 4 0
67 lv1_get_spe_interrupt_status 2 1
68 lv1_load_range_registers
69 lv1_get_logical_ppe_id 0 1
70 lv1_set_ppe_l2cache_rmt_entry
71 lv1_set_ppe_tlb_rmt_entry
72 lv1_set_spe_tlb_rmt_entry
73 lv1_set_interrupt_mask 5 0
74 lv1_get_logical_partition_id 0 1
75 lv1_undocumented_function_75 ?? ??
76 lv1_undocumented_function_247
77 lv1_configure_execution_time_variable 1 0
78 lv1_get_spe_irq_outlet 2 1
79 lv1_set_spe_privilege_state_area_1_register 3 0
80 lv1_construct_spe_irq_outlet
81 lv1_destruct_spe_irq_outlet
82 lv1_reinitialize_logical_spe
83 lv1_undocumented_function_247
84 lv1_request_ipspc_service
85 lv1_permit_use_of_ipspc_service
86 lv1_execute_ipspc_command
87 lv1_stop_ipspc_command
88 lv1_disconnect_ipspc_service
89 lv1_undocumented_function_89 ?? ??
90 lv1_create_repository_node 6 0
91 lv1_get_repository_node_value 5 2
92 lv1_modify_repository_node_value 6 0
93 lv1_remove_repository_node 4 0
94 lv1_write_htab_entry
95 lv1_read_htab_entries 2 5
96 lv1_set_dabr 2 0
97 lv1_set_vmx_graphics_mode (kboot) 1 0
98 lv1_set_thread_switch_control_register (kboot) 1 0
99 lv1_authenticate_program_segment 2 0
100 lv1_assign_io_address_translation_fault_port
101 lv1_insert_htab_entry
102 lv1_undocumented_function_102 0 2
103 lv1_get_total_execution_time 2 1
104 lv1_cancel_shared_memory
105 lv1_comm_dev_logical_console_construct 7 1
106 lv1_comm_dev_logical_console_destruct 1 1
107 lv1_comm_dev_logical_console_send 6 2
108 lv1_comm_dev_logical_console_receive 1 6
109 lv1_comm_dev_logical_console_flush 1 1
110 lv1_read_remote_file 5 2
111 lv1_write_remote_file 5 2
112 lv1_get_remote_file_size 2 2
113 lv1_undocumented_function_247
114 lv1_map_physical_address_region 3 1
115 lv1_unmap_physical_address_region 1 1
116 lv1_allocate_io_segment (kboot) 3 1
117 lv1_release_io_segment (kboot) 2 0
118 lv1_allocate_ioid (kboot) 1 1
119 lv1_release_ioid (kboot) 2 0
120 lv1_construct_io_irq_outlet 1 1
121 lv1_destruct_io_irq_outlet 1 0
122 lv1_map_htab 1 1
123 lv1_unmap_htab 1 0
124 lv1_read_remote_file_long_name 6 2
125 lv1_write_remote_file_long_name 6 2
126 lv1_get_remote_file_size_long_name 3 2
127 lv1_get_version_info 0 1
128 lv1_undocumented_function_247
129 lv1_undocumented_function_247
130 lv1_undocumented_function_247
131 lv1_undocumented_function_247
132 lv1_undocumented_function_247
133 lv1_undocumented_function_247
134 lv1_undocumented_function_134 ?? ??
135 lv1_undocumented_function_135 3 2
136 lv1_undocumented_function_136 ?? ??
137 lv1_disable_spe_execution_locked ?? ??
138 lv1_undocumented_function_138 2 0
139 lv1_undocumented_function_247
140 lv1_construct_lpm 6 3
141 lv1_destruct_lpm 1 0
142 lv1_start_lpm 1 0
143 lv1_stop_lpm 1 1
144 lv1_copy_lpm_trace_buffer 3 1
145 lv1_add_lpm_event_bookmark 5 0
146 lv1_delete_lpm_event_bookmark 3 0
147 lv1_set_lpm_interrupt_mask 3 1
148 lv1_get_lpm_interrupt_status 1 1
149 lv1_set_lpm_general_control 5 2
150 lv1_set_lpm_interval 3 1
151 lv1_set_lpm_trigger_control 3 1
152 lv1_set_lpm_counter_control 4 1
153 lv1_set_lpm_group_control 3 1
154 lv1_set_lpm_debug_bus_control 3 1
155 lv1_set_lpm_counter 5 2
156 lv1_set_lpm_signal 7 0
157 lv1_set_lpm_spr_trigger 2 0
158 lv1_insert_htab_entry 6 3
159 lv1_undocumented_function_247
160 lv1_undocumented_function_247
161 lv1_undocumented_function_247
162 lv1_read_virtual_uart 3 1
163 lv1_write_virtual_uart 3 1
164 lv1_set_virtual_uart_param 3 0
165 lv1_get_virtual_uart_param 2 1
166 lv1_configure_virtual_uart_irq 1 1
167 lv1_undocumented_function_167 2 1
168 lv1_logical_spu_set_mfc_control 3 0
169 lv1_undocumented_function_247
170 lv1_open_device 3 0
171 lv1_close_device 2 0
172 lv1_map_device_mmio_region 5 1
173 lv1_unmap_device_mmio_region 3 0
174 lv1_allocate_device_dma_region 5 1
175 lv1_free_device_dma_region 3 0
176 lv1_map_device_dma_region 6 0
177 lv1_unmap_device_dma_region 4 0
178 lv1_read_pci_config 6 1
179 lv1_write_pci_config 7 0
180 lv1_read_pci_io 4 1
181 lv1_write_pci_io 5 0
182 lv1_undocumented_function_182 ?? ??
183 lv1_undocumented_function_183 ?? ??
184 lv1_undocumented_function_247
185 lv1_net_add_multicast_address 4 0
186 lv1_net_remove_multicast_address 4 0
187 lv1_net_start_tx_dma 4 0
188 lv1_net_stop_tx_dma 3 0
189 lv1_net_start_rx_dma 4 0
190 lv1_net_stop_rx_dma 3 0
191 lv1_net_set_interrupt_status_indicator 4 0
192 lv1_undocumented_function_247
193 lv1_net_set_interrupt_mask 4 0
194 lv1_net_control 6 2
195 lv1_undocumented_function_195 ?? ??
196 lv1_net_driver_wlan_eurus_proxy ?? ??
197 lv1_connect_interrupt_event_receive_port 4 0
198 lv1_disconnect_interrupt_event_receive_port 4 0
199 lv1_get_spe_all_interrupt_statuses 1 1
200 lv1_logical_spu_start_isolated ?? ??
201 lv1_undocumented_function_201 ?? ??
202 lv1_deconfigure_virtual_uart_irq 0 0
203 lv1_get_status_of_ipspc_service
204 lv1_set_spe_privileged_state_1_registers
205 lv1_get_interrupt_status_of_spe
206 lv1_clear_interrupt_status_of_spe
207 lv1_enable_logical_spe 2 0
208 lv1_get_spe_privileged_state_1_registers
209 lv1_undocumented_function_209 ?? ??
210 lv1_gpu_open 1 0
211 lv1_gpu_close 0 0
212 lv1_gpu_device_map(kboot) 1 2
213 lv1_gpu_device_unmap(kboot) 1 0
214 lv1_gpu_memory_allocate 5 2
215 lv1_undocumented_function_247
216 lv1_gpu_memory_free 1 0
217 lv1_gpu_context_allocate 2 5
218 lv1_gpu_context_free 1 0
219 lv1_undocumented_function_247
220 lv1_undocumented_function_247
221 lv1_gpu_context_iomap 5 0
222 lv1_gpu_context_uniomap 0 0
223 lv1_undocumented_function_247
224 lv1_undocumented_function_247
225 lv1_gpu_context_attribute

lv1_gpu_context_attribute:display_mode_set
lv1_gpu_context_attribute:display_sync
lv1_gpu_context_attribute:display_flip
lv1_gpu_context_attribute:fb_setup
lv1_gpu_context_attribute:fb_blit
lv1_gpu_context_attribute:fb_blit_sync

6 0
226 lv1_undocumented_function_247
227 lv1_gpu_context_intr 1 1
228 lv1_gpu_attribute(kboot) 5 0
229 lv1_undocumented_function_229 ?? ??
230 lv1_undocumented_function_230 ?? ??
231 lv1_undocumented_function_231 ?? ??
232 lv1_get_rtc 0 2
233 lv1_undocumented_function_233 ?? ??
234 lv1_undocumented_function_247
235 lv1_undocumented_function_247
236 lv1_undocumented_function_247
237 lv1_undocumented_function_247
238 lv1_undocumented_function_247
239 lv1_undocumented_function_247
240 lv1_set_ppe_periodic_tracer_frequency 1 0
241 lv1_start_ppe_periodic_tracer 5 0
242 lv1_stop_ppe_periodic_tracer 1 1
243 lv1_undocumented_function_243 ?? ??
244 lv1_undocumented_function_244 ?? ??
245 lv1_storage_read 6 1
246 lv1_storage_write 6 1
247 lv1_undocumented_function_247 ?? ??
248 lv1_storage_send_device_command 6 1
249 lv1_storage_get_async_status 1 2
250 lv1_storage_create_region 5 2
251 lv1_storage_delete_region 2 1
252 lv1_storage_set_region_acl 4 1
253 lv1_storage_get_region_acl 3 2
254 lv1_storage_check_async_status 2 1
255 lv1_panic 1 0
0x1000000000000101 lv1_put_characters_to_console
0x1000000000000102 lv1_get_characters_from_console
0x1000000000000104 lv1_insert_htab_entry3
0x1000000000000105 lv1_invalidate_htab_entry3
0x1000000000000106 lv1_update_htab_permission3
0x1000000000000107 lv1_clear_htab3
0x1000000000000111 lv1_get_base_clock
0x1000000000000112 lv1_set_base_clock
0x1000000000000114 lv1_get_frame_cycle
0x1000000000000115 lv1_disable_console
0x1000000000000116 lv1_disable_all_console
0x1000000000000117 lv1_oneshot_timer
0x1000000000000118 lv1_set_dabr
0x1000000000000119 lv1_get_dabr
0x1000000000000122 lv1_set_priority_of_irq_outlet
0x1000000000000128 lv1_get_physical_spe_by_reservation_id
0x1000000000000129 lv1_get_spe_context
0x100000000000012A lv1_set_spe_context
0x100000000000012E lv1_downcount_of_interrupt
0x100000000000012F lv1_peek_spe_context
0x1000000000000131 lv1_read_bpa_register
0x1000000000000132 lv1_write_bpa_register
0x1000000000000137 lv1_map_context_table_of_spe
0x1000000000000138 lv1_get_slb_for_logical_spe
0x1000000000000139 lv1_set_slb_for_logical_spe
0x1000000000000150 lv1_init_pm
0x1000000000000151 lv1_set_pm_signal
0x1000000000000152 lv1_get_pm_signal
0x1000000000000153 lv1_set_pm_config
0x1000000000000154 lv1_get_pm_config
0x1000000000000155 lv1_get_inner_trace_data
0x1000000000000156 lv1_set_ext_trace_buffer
0x1000000000000157 lv1_get_ext_trace_buffer
0x1000000000000158 lv1_set_pm_interrupt
0x1000000000000159 lv1_get_pm_interrupt
0x1000000000000160 lv1_kick_pm
0x1000000000000164 lv1_construct_pm_context
0x1000000000000165 lv1_destruct_pm_context
0x1000000000000170 lv1_be_slow
0x1000000000000173 lv1_assign_ipspc_server_connection_status_notification_port
0x1000000000000174 lv1_get_raid_of_physical_spe
0x1000000000000175 lv1_set_physical_spe_to_rag
0x1000000000000176 lv1_release_physical_spe_from_rag
0x1000000000000190 lv1_rtc_read
0x1000000000000191 lv1_rtc_write
0x1000000000000192 lv1_eeprom_read
0x1000000000000193 lv1_eeprom_write
0x100000000000021C lv1_start_hv_stats
0x100000000000021D lv1_stop_hv_stats
0x100000000000021E lv1_get_hv_stats
0x1000000000000221 lv1_get_hv_error_stats
0x1000000000000224 lv1_get_stats
0x1000000000000225 lv1_get_heap_stats
0x1000000000000227 lv1_get_memory_stats
0x1000000000000228 lv1_get_memory_detail

Unofficial Hypercalls added

Number Function - Added by Notes
16 Peek - graf
20 Poke - graf


HV Calls Table Offset

(preliminary table, please help to fill in/expand)

  • The address of HV table is stored at -0x6FC8(HSPRG0).
  • The address of HV table size is stored at -0x6FD0(HSPRG0).
Function Notes 3.55 offset 3.41 offset 3.15 offset 3.10 offset 3.01 offset 2.76 offset
HV Syscall Table Offset to HV Syscall Table from base HV addr. e.g. if you map HV to HV_LV2_BASE_ADDR the Table would be at HV_LV2_BASE_ADDR+0x00365888. 0x00365888 0x00361b08 0x00363a08
set_lv1_hvcall_table This function sets pointer to HV Call Table and the size of HV Call Table in HSPRG context of a LPAR. 0x002C2B4C 0x002C02B4 0x002C1F04
set_lv1_hvcall_table_entry_invalid This function initializes an entry in HV Call Table to the Invalid HV Call function. 0x002C2B70 0x002C02D8 0x002C1F28
lv1_mm_call function table Each entry is a pointer to a function TOC entry. Size = 256 0x00366088 0x00362308 0x00364208
lv1_map_htab 0x002D595C
lv1_unmap_htab 0x002D56B8
lv1_allocate_memory 0x002D72F0
lv1_release_memory 0x002D66A4
lv1_query_logical_partition_address_region_info 0x002C9B24
lv1_create_repository_node 0x002DD014
lv1_get_repository_node_value 0x002DD260
lv1_undocumented_function_231 0x0030B560

HV Return Values

Status Code
LV1_SUCCESS 0
not used -1
LV1_RESOURCE_SHORTAGE -2
LV1_NO_PRIVILEGE -3
LV1_DENIED_BY_POLICY -4
LV1_ACCESS_VIOLATION -5
LV1_NO_ENTRY -6
LV1_DUPLICATE_ENTRY -7
LV1_TYPE_MISMATCH -8
LV1_BUSY -9
LV1_EMPTY -10
LV1_WRONG_STATE -11
not used -12
LV1_NO_MATCH -13
LV1_ALREADY_CONNECTED -14
LV1_UNSUPPORTED_PARAMETER_VALUE -15
LV1_CONDITION_NOT_SATISFIED -16
LV1_ILLEGAL_PARAMETER_VALUE -17
LV1_BAD_OPTION -18
LV1_IMPLEMENTATION_LIMITATION -19
LV1_NOT_IMPLEMENTED -20
LV1_INVALID_CLASS_ID -21
LV1_CONSTRAINT_NOT_SATISFIED -22
LV1_ALIGNMENT_ERROR -23
LV1_INTERNAL_ERROR -32768

other sources

http://web.archive.org/web/20100222062305/http://ps3hvdoc.wikispaces.com/lv1+calls+offsets