HV Syscalls: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 909: Line 909:




=== HV Syscalls Table Offset ===
=== HV Calls Table Offset ===
(preliminary table, please help to fill in/expand)
(preliminary table, please help to fill in/expand)
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
*The address of HV table is stored at -0x6FC8(HSPRG0).
|-
*The address of HV table size is stored at -0x6FD0(HSPRG0).
! FW version !! Syscall Table !! Notes
(preliminary table, please help to fill in/expand)
|-
{| cellspacing="0" cellpadding="2" border="1" class="wikitable sortable"
| 3.55 Retail ||  ||
|-
| 3.55 DEX ||  ||
|-
| 3.41 Retail ||  ||
|-
| 3.41 DEX ||  ||
|-
| 3.41 KIOSK ||  ||
|-
| 3.40 Retail ||  ||
|-
| 3.30 Retail ||  ||
|-
| 3.21 Retail ||  ||
|-
| 3.15 Retail ||  ||
|-
| 3.10 Retail ||  ||
|-
|-
| 3.01 Retail ||  ||
! rowspan="2" | Function || rowspan="2" | Notes !! 3.55 !! 3.41 !! 3.15 !! 3.10 !! 3.01 !! 2.76
|-
|-
| 2.85 Retail ||  ||
! colspan="6" | Offset
|-
|-
| 2.76 Retail ||  ||  
| 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 ||  ||  ||  
|-
|-
| 2.70 Retail ||  ||  
| set_lv1_hvcall_table_entry_invalid || This function initializes an entry in HV Call Table to the Invalid HV Call function. || 0x002C2B70 || 0x002C02D8 || 0x002C1F28 ||  ||  ||  
|-
|-
| 2.60 Retail ||  ||  
| lv1_mm_call function table || Each entry is a pointer to a function TOC entry. Size = 256 || 0x00366088 || 0x00362308 || 0x00364208 ||  ||  ||  
|-
|-
| 2.53 Retail ||  ||  
| lv1_map_htab ||  ||  ||  || 0x002D595C ||  ||  ||  
|-
|-
| 2.43 Retail ||  ||  
| lv1_unmap_htab ||  ||  ||  || 0x002D56B8 ||  ||  ||  
|-
|-
| 2.43 JIG ||  ||  
| lv1_allocate_memory ||  ||  ||  || 0x002D72F0 ||  ||  ||  
|-
|-
| 2.42 DEX ||  ||  
| lv1_release_memory ||  || ||  || 0x002D66A4 ||  ||  || 
|-
|-
| 1.92 TOOL ||  ||  
| lv1_query_logical_partition_address_region_info ||  || ||  || 0x002C9B24 ||  ||  || 
|-
|-
| 1.60 TOOL ||  ||  
| lv1_create_repository_node ||  ||  ||  || 0x002DD014 ||  ||  ||  
|-
|-
| 1.02 Retail ||  ||  
| lv1_get_repository_node_value ||  ||  ||  || 0x002DD260 ||  ||  ||  
|-
|-
| 1.00 DEX ||  ||  
| lv1_undocumented_function_231 ||  ||  ||  || 0x0030B560 ||  ||  ||  
|-
|-
|}
|}

Revision as of 15:46, 26 November 2011

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

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

Function Notes 3.55 3.41 3.15 3.10 3.01 2.76
Offset
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