HV Syscalls

From PS3 Developer wiki
Jump to navigation Jump to search

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_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
14 lv1_undocumented_function_247
15 lv1_put_iopte (kboot) 5 0
16 lv1_undocumented_function_247
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_undocumented_function_247
21 lv1_undocumented_function_247
22 lv1_undocumented_function_247
23 lv1_undocumented_function_247
24 lv1_send_event_locally 1 0
25 lv1_undocumented_function_247
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_undocumented_function_247
33 lv1_undocumented_function_247
34 lv1_undocumented_function_247
35 lv1_undocumented_function_247
36 lv1_undocumented_function_247
37 lv1_undocumented_function_247
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_undocumented_function_247
46 lv1_undocumented_function_247
47 lv1_undocumented_function_247
48 lv1_undocumented_function_247
49 lv1_undocumented_function_247
50 lv1_undocumented_function_247
51 lv1_undocumented_function_247
52 lv1_undocumented_function_247
53 lv1_undocumented_function_247
54 lv1_destruct_logical_spe 1 0
55 lv1_undocumented_function_247
56 lv1_undocumented_function_247
57 lv1_construct_logical_spe 7 6
58 lv1_undocumented_function_247
59 lv1_undocumented_function_247
60 lv1_undocumented_function_247
61 lv1_set_spe_interrupt_mask 3 0
62 lv1_undocumented_function_62 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_undocumented_function_247
69 lv1_get_logical_ppe_id 0 1
70 lv1_undocumented_function_247
71 lv1_undocumented_function_247
72 lv1_undocumented_function_247
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_undocumented_function_247
81 lv1_undocumented_function_247
82 lv1_undocumented_function_247
83 lv1_undocumented_function_247
84 lv1_undocumented_function_247
85 lv1_undocumented_function_247
86 lv1_undocumented_function_247
87 lv1_undocumented_function_247
88 lv1_undocumented_function_247
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_undocumented_function_247
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_undocumented_function_247
101 lv1_undocumented_function_247
102 lv1_undocumented_function_102 ?? ??
103 lv1_get_total_execution_time 2 1
104 lv1_undocumented_function_247
105 lv1_comm_dev_logical_console_open ?? ??
106 lv1_undocumented_function_106 ?? ??
107 lv1_undocumented_function_107 ?? ??
108 lv1_comm_dev_logical_console_read ?? ??
109 lv1_comm_dev_logical_console_write ?? ??
110 lv1_undocumented_function_110 ?? ??
111 lv1_undocumented_function_111 ?? ??
112 lv1_undocumented_function_112 ?? ??
113 lv1_undocumented_function_247
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
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 ?? ??
136 lv1_undocumented_function_136 ?? ??
137 lv1_undocumented_function_137 ?? ??
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_undocumented_function_247
204 lv1_undocumented_function_247
205 lv1_undocumented_function_247
206 lv1_undocumented_function_247
207 lv1_enable_logical_spe 2 0
208 lv1_undocumented_function_247
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_undocumented_function_222 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

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