HV Syscalls: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 918: Line 918:
! Function !! Notes !! 3.55 offset !! 3.41 offset !! 3.15 offset !! 3.10 offset !! 3.01 offset !! 2.76 offset
! 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 || || || || ||
| 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 || || 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 || This function sets pointer to HV Call Table and the size of HV Call Table in HSPRG context of a LPAR. || 0x002C2B4C || 0x002C02B4 || 0x002C1F04 ||  ||  ||  

Revision as of 00:21, 4 January 2012

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_undocumented_function_5 ?? ??
6 lv1_query_logical_partition_address_region_info 1 5
7 lv1_select_virtual_address_space 1 0
8 lv1_undocumented_function_8 ?? 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
15 lv1_put_iopte (kboot) 5 0
17 lv1_disconnect_irq_plug_ext 3 0
18 lv1_construct_event_receive_port 0 1
19 lv1_destruct_event_receive_port 1 0
24 lv1_send_event_locally 1 0
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
44 lv1_shutdown_logical_partition (kboot) 1 0
54 lv1_destruct_logical_spe 1 0
57 lv1_construct_logical_spe 7 6
61 lv1_set_spe_interrupt_mask 3 0
62 lv1_undocumented_function_62 ?? ??
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
69 lv1_get_logical_ppe_id 0 1
73 lv1_set_interrupt_mask 5 0
74 lv1_get_logical_partition_id 0 1
75 lv1_undocumented_function_75 ?? ??
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
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
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 ?? ??
102 lv1_undocumented_function_102 ?? ??
103 lv1_get_total_execution_time 2 1
105 lv1_undocumented_function_105 ?? ??
106 lv1_undocumented_function_106 ?? ??
107 lv1_undocumented_function_107 ?? ??
108 lv1_undocumented_function_108 ?? ??
109 lv1_undocumented_function_109 ?? ??
110 lv1_undocumented_function_110 ?? ??
111 lv1_undocumented_function_111 ?? ??
112 lv1_undocumented_function_112 ?? ??
114 lv1_undocumented_function_114 3 1
115 lv1_undocumented_function_115 1 0
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_undocumented_function_124 ?? ??
125 lv1_undocumented_function_125 ?? ??
126 lv1_undocumented_function_126 ?? ??
127 lv1_get_version_info 0 1
134 lv1_undocumented_function_134 ?? ??
135 lv1_undocumented_function_135 ?? ??
136 lv1_undocumented_function_136 ?? ??
137 lv1_undocumented_function_137 ?? ??
138 lv1_undocumented_function_138 ?? ??
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
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 ?? ??
168 lv1_undocumented_function_168 ?? ??
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 ?? ??
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
193 lv1_net_set_interrupt_mask 4 0
194 lv1_net_control 6 2
195 lv1_undocumented_function_195 ?? ??
196 lv1_undocumented_function_196 ?? ??
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_undocumented_function_200 ?? ??
201 lv1_undocumented_function_201 ?? ??
202 lv1_deconfigure_virtual_uart_irq 0 0
207 lv1_enable_logical_spe 2 0
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
216 lv1_gpu_memory_free 1 0
217 lv1_gpu_context_allocate 2 5
218 lv1_gpu_context_free 1 0
221 lv1_gpu_context_iomap 5 0
222 lv1_undocumented_function_222 0 0
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
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 ?? ??
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_undocumented_function_250 5 2
251 lv1_undocumented_function_251 2 1
252 lv1_undocumented_function_252 4 1
253 lv1_undocumented_function_253 3 2
254 lv1_storage_check_async_status 2 1
255 lv1_panic 1 0

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 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