Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / hypervisor / src / greatlakes / ontario / src / hcall_groups.s
CommitLineData
920dae64
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* Hypervisor Software File: hcall_groups.s
5*
6* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
7*
8* - Do no alter or remove copyright notices
9*
10* - Redistribution and use of this software in source and binary forms, with
11* or without modification, are permitted provided that the following
12* conditions are met:
13*
14* - Redistribution of source code must retain the above copyright notice,
15* this list of conditions and the following disclaimer.
16*
17* - Redistribution in binary form must reproduce the above copyright notice,
18* this list of conditions and the following disclaimer in the
19* documentation and/or other materials provided with the distribution.
20*
21* Neither the name of Sun Microsystems, Inc. or the names of contributors
22* may be used to endorse or promote products derived from this software
23* without specific prior written permission.
24*
25* This software is provided "AS IS," without a warranty of any kind.
26* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
27* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
28* PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
29* MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
30* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
31* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
32* OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
33* FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
34* DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
35* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
36* SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
37*
38* You acknowledge that this software is not designed, licensed or
39* intended for use in the design, construction, operation or maintenance of
40* any nuclear facility.
41*
42* ========== Copyright Header End ============================================
43*/
44/*
45 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
46 * Use is subject to license terms.
47 */
48
49 .ident "@(#)hcall_groups.s 1.98 07/05/03 SMI"
50
51#include <sys/asm_linkage.h>
52#include <sys/htypes.h>
53#include <hypervisor.h>
54#include <sparcv9/misc.h>
55#include <debug.h>
56#include <hcall.h>
57
58#ifdef CONFIG_BRINGUP
59#define VDEV_GENINTR 0xff
60#endif
61
62/*
63 * If you add a group to this table, be sure to update
64 * NUM_API_GROUPS in guest.h. You have been warned...
65 *
66 * One important caveat: don't put any data between GROUP_END
67 * and GROUP_BEGIN entries, or you'll break the table.
68 */
69
70 DATA_GLOBAL(hcall_api_group_map)
71
72 /*
73 * Core API group. Basics needed for a sane guest.
74 */
75 GROUP_BEGIN(core, API_GROUP_CORE) ! API group index #1
76 GROUP_MAJOR_ENTRY(core, 1, 1)
77 GROUP_MINOR_ENTRY(core_1_0)
78 GROUP_MINOR_ENTRY(core_1_1)
79 GROUP_MINOR_END(core_1)
80 GROUP_MAJOR_END(core)
81
82 GROUP_HCALL_TABLE(core_1_0)
83 GROUP_HCALL_ENTRY(MACH_EXIT, hcall_mach_exit)
84 GROUP_HCALL_ENTRY(MACH_DESC, hcall_mach_desc)
85 GROUP_HCALL_ENTRY(MACH_SIR, hcall_mach_sir)
86 GROUP_HCALL_ENTRY(CPU_START, hcall_cpu_start)
87 GROUP_HCALL_ENTRY(CPU_YIELD, hcall_cpu_yield)
88 GROUP_HCALL_ENTRY(CPU_QCONF, hcall_cpu_qconf)
89 GROUP_HCALL_ENTRY(CPU_QINFO, hcall_cpu_qinfo)
90 GROUP_HCALL_ENTRY(CPU_MYID, hcall_cpu_myid)
91 GROUP_HCALL_ENTRY(CPU_GET_STATE, hcall_cpu_get_state)
92 GROUP_HCALL_ENTRY(CPU_SET_RTBA, hcall_cpu_set_rtba)
93 GROUP_HCALL_ENTRY(CPU_GET_RTBA, hcall_cpu_get_rtba)
94 GROUP_HCALL_ENTRY(MMU_TSB_CTX0, hcall_mmu_tsb_ctx0)
95 GROUP_HCALL_ENTRY(MMU_TSB_CTXNON0, hcall_mmu_tsb_ctxnon0)
96 GROUP_HCALL_ENTRY(MMU_DEMAP_PAGE, hcall_mmu_demap_page)
97 GROUP_HCALL_ENTRY(MMU_DEMAP_CTX, hcall_mmu_demap_ctx)
98 GROUP_HCALL_ENTRY(MMU_DEMAP_ALL, hcall_mmu_demap_all)
99 GROUP_HCALL_ENTRY(MMU_MAP_PERM_ADDR, hcall_mmu_map_perm_addr)
100 GROUP_HCALL_ENTRY(MMU_FAULT_AREA_CONF, hcall_mmu_fault_area_conf)
101 GROUP_HCALL_ENTRY(MMU_ENABLE, hcall_mmu_enable)
102 GROUP_HCALL_ENTRY(MMU_UNMAP_PERM_ADDR, hcall_mmu_unmap_perm_addr)
103 GROUP_HCALL_ENTRY(MMU_TSB_CTX0_INFO, hcall_mmu_tsb_ctx0_info)
104 GROUP_HCALL_ENTRY(MMU_TSB_CTXNON0_INFO, hcall_mmu_tsb_ctxnon0_info)
105 GROUP_HCALL_ENTRY(MMU_FAULT_AREA_INFO, hcall_mmu_fault_area_info)
106 GROUP_HCALL_ENTRY(MEM_SCRUB, hcall_mem_scrub)
107 GROUP_HCALL_ENTRY(MEM_SYNC, hcall_mem_sync)
108 GROUP_HCALL_ENTRY(CPU_MONDO_SEND, hcall_cpu_mondo_send)
109 GROUP_HCALL_ENTRY(TOD_GET, hcall_tod_get)
110 GROUP_HCALL_ENTRY(TOD_SET, hcall_tod_set)
111 GROUP_HCALL_ENTRY(CONS_GETCHAR, hcall_cons_getchar)
112 GROUP_HCALL_ENTRY(CONS_PUTCHAR, hcall_cons_putchar)
113 GROUP_HCALL_ENTRY(TTRACE_BUF_CONF, hcall_ttrace_buf_conf)
114 GROUP_HCALL_ENTRY(TTRACE_BUF_INFO, hcall_ttrace_buf_info)
115 GROUP_HCALL_ENTRY(TTRACE_ENABLE, hcall_ttrace_enable)
116 GROUP_HCALL_ENTRY(TTRACE_FREEZE, hcall_ttrace_freeze)
117 GROUP_HCALL_ENTRY(DUMP_BUF_UPDATE, hcall_dump_buf_update)
118 GROUP_HCALL_ENTRY(DUMP_BUF_INFO, hcall_dump_buf_info)
119 GROUP_HCALL_ENTRY(MMU_MAP_ADDR_IDX, hcall_mmu_map_addr)
120 GROUP_HCALL_ENTRY(MMU_UNMAP_ADDR_IDX, hcall_mmu_unmap_addr)
121 GROUP_HCALL_ENTRY(TTRACE_ADDENTRY_IDX, hcall_ttrace_addentry)
122#ifdef CONFIG_DISK
123 GROUP_HCALL_ENTRY(DISK_READ, hcall_disk_read)
124 GROUP_HCALL_ENTRY(DISK_WRITE, hcall_disk_write)
125#endif
126#ifdef T1_FPGA_SNET
127 GROUP_HCALL_ENTRY(SNET_READ, hcall_snet_read)
128 GROUP_HCALL_ENTRY(SNET_WRITE, hcall_snet_write)
129#endif
130#ifdef CONFIG_BRINGUP
131 GROUP_HCALL_ENTRY(VDEV_GENINTR, hcall_vdev_genintr)
132#endif
133#if 0 /* { FIXME: perm map info for debug currently disabled */
134#ifdef DEBUG
135 GROUP_HCALL_ENTRY(MMU_PERM_ADDR_INFO, hcall_mmu_perm_addr_info)
136#endif
137#endif /* } */
138 GROUP_HCALL_TABLE(core_1_1)
139 GROUP_HCALL_ENTRY(MACH_SET_WATCHDOG, hcall_set_watchdog)
140 GROUP_HCALL_ENTRY(CPU_STOP, hcall_cpu_stop)
141 GROUP_HCALL_ENTRY(CONS_READ, hcall_cons_read)
142 GROUP_HCALL_ENTRY(CONS_WRITE, hcall_cons_write)
143 GROUP_HCALL_END(core_1)
144 GROUP_END(core)
145
146 /*
147 * Interrupt API group. For guests interested in using
148 * interrupts.
149 */
150 GROUP_BEGIN(intr, API_GROUP_INTR) ! API group index #2
151 GROUP_MAJOR_ENTRY(intr, 1, 0)
152 GROUP_MINOR_ENTRY(intr_1_0)
153 GROUP_MINOR_END(intr_1)
154 GROUP_MAJOR_ENTRY(intr, 2, 0)
155 GROUP_MINOR_ENTRY(intr_2_0)
156 GROUP_MINOR_END(intr_2)
157 GROUP_MAJOR_END(intr)
158
159 GROUP_HCALL_TABLE(intr_1_0)
160 GROUP_HCALL_ENTRY(INTR_DEVINO2SYSINO, hcall_intr_devino2sysino)
161 GROUP_HCALL_ENTRY(INTR_GETENABLED, hcall_intr_getenabled)
162 GROUP_HCALL_ENTRY(INTR_SETENABLED, hcall_intr_setenabled)
163 GROUP_HCALL_ENTRY(INTR_GETSTATE, hcall_intr_getstate)
164 GROUP_HCALL_ENTRY(INTR_SETSTATE, hcall_intr_setstate)
165 GROUP_HCALL_ENTRY(INTR_GETTARGET, hcall_intr_gettarget)
166 GROUP_HCALL_ENTRY(INTR_SETTARGET, hcall_intr_settarget)
167
168#ifdef SOLARIS_ERRATUM_6496266
169
170 /*
171 * NOTE: The following workaround enables the interrupt_cookie
172 * APIs (0xa7 - 0xae) as part of API_GROUP_INTR v1.0. Due a
173 * bug in Solaris S10U3, it negotiates v1.0 of the interrupt
174 * group and expects the vintr_cookie APIs to be available as
175 * part of this version. These APIs should only be enabled when
176 * a guest negotiates v2.0 as per Hypervisor API specification,
177 * and this workaround should be removed when legacy support for
178 * S10U3 and later is no longer required in the field.
179 */
180 GROUP_HCALL_ENTRY(VINTR_GETCOOKIE, hcall_vintr_getcookie)
181 GROUP_HCALL_ENTRY(VINTR_SETCOOKIE, hcall_vintr_setcookie)
182 GROUP_HCALL_ENTRY(VINTR_GETVALID, hcall_vintr_getvalid)
183 GROUP_HCALL_ENTRY(VINTR_SETVALID, hcall_vintr_setvalid)
184 GROUP_HCALL_ENTRY(VINTR_GETSTATE, hcall_vintr_getstate)
185 GROUP_HCALL_ENTRY(VINTR_SETSTATE, hcall_vintr_setstate)
186 GROUP_HCALL_ENTRY(VINTR_GETTARGET, hcall_vintr_gettarget)
187 GROUP_HCALL_ENTRY(VINTR_SETTARGET, hcall_vintr_settarget)
188#endif
189 GROUP_HCALL_END(intr_1)
190
191 GROUP_HCALL_TABLE(intr_2_0)
192 GROUP_HCALL_ENTRY(VINTR_GETCOOKIE, hcall_vintr_getcookie)
193 GROUP_HCALL_ENTRY(VINTR_SETCOOKIE, hcall_vintr_setcookie)
194 GROUP_HCALL_ENTRY(VINTR_GETVALID, hcall_vintr_getvalid)
195 GROUP_HCALL_ENTRY(VINTR_SETVALID, hcall_vintr_setvalid)
196 GROUP_HCALL_ENTRY(VINTR_GETSTATE, hcall_vintr_getstate)
197 GROUP_HCALL_ENTRY(VINTR_SETSTATE, hcall_vintr_setstate)
198 GROUP_HCALL_ENTRY(VINTR_GETTARGET, hcall_vintr_gettarget)
199 GROUP_HCALL_ENTRY(VINTR_SETTARGET, hcall_vintr_settarget)
200 GROUP_HCALL_END(intr_2)
201 GROUP_END(intr)
202
203 /*
204 * Guest Soft State group.
205 */
206 GROUP_BEGIN(softstate, API_GROUP_SOFTSTATE) ! API group index #3
207 GROUP_MAJOR_ENTRY(softstate, 1, 0)
208 GROUP_MINOR_ENTRY(softstate_1_0)
209 GROUP_MINOR_END(softstate_1)
210 GROUP_MAJOR_END(softstate)
211
212 GROUP_HCALL_TABLE(softstate_1_0)
213 GROUP_HCALL_ENTRY(SOFT_STATE_SET, hcall_soft_state_set)
214 GROUP_HCALL_ENTRY(SOFT_STATE_GET, hcall_soft_state_get)
215 GROUP_HCALL_END(softstate_1)
216 GROUP_END(softstate)
217
218
219 /*
220 * PCIe API group. For guests doing physical I/O with
221 * PCI-Express Root Complexes.
222 */
223 GROUP_BEGIN(pci, API_GROUP_PCI) ! API group index #4
224#ifdef SOLARIS_ERRATUM_6538898
225 GROUP_MAJOR_ENTRY(pci, 1, 0)
226 GROUP_MINOR_ENTRY(pci_1_0)
227 GROUP_MINOR_END(pci_1)
228#else /* SOLARIS_ERRATUM_6538898 */
229 GROUP_MAJOR_ENTRY(pci, 1, 1)
230 GROUP_MINOR_ENTRY(pci_1_0)
231 GROUP_MINOR_ENTRY(pci_1_1)
232 GROUP_MINOR_END(pci_1)
233#endif /* SOLARIS_ERRATUM_6538898 */
234 GROUP_MAJOR_END(pci)
235
236 GROUP_HCALL_TABLE(pci_1_0)
237 GROUP_HCALL_ENTRY(VPCI_IOMMU_MAP, hcall_vpci_iommu_map)
238 GROUP_HCALL_ENTRY(VPCI_IOMMU_UNMAP, hcall_vpci_iommu_unmap)
239 GROUP_HCALL_ENTRY(VPCI_IOMMU_GETMAP, hcall_vpci_iommu_getmap)
240 GROUP_HCALL_ENTRY(VPCI_IOMMU_GETBYPASS, hcall_vpci_iommu_getbypass)
241 GROUP_HCALL_ENTRY(VPCI_CONFIG_GET, hcall_vpci_config_get)
242 GROUP_HCALL_ENTRY(VPCI_CONFIG_PUT, hcall_vpci_config_put)
243 GROUP_HCALL_ENTRY(VPCI_IO_PEEK, hcall_vpci_io_peek)
244 GROUP_HCALL_ENTRY(VPCI_IO_POKE, hcall_vpci_io_poke)
245 GROUP_HCALL_ENTRY(VPCI_DMA_SYNC, hcall_vpci_dma_sync)
246 GROUP_HCALL_ENTRY(MSIQ_CONF, hcall_msiq_conf)
247 GROUP_HCALL_ENTRY(MSIQ_INFO, hcall_msiq_info)
248 GROUP_HCALL_ENTRY(MSIQ_GETVALID, hcall_msiq_getvalid)
249 GROUP_HCALL_ENTRY(MSIQ_SETVALID, hcall_msiq_setvalid)
250 GROUP_HCALL_ENTRY(MSIQ_GETSTATE, hcall_msiq_getstate)
251 GROUP_HCALL_ENTRY(MSIQ_SETSTATE, hcall_msiq_setstate)
252 GROUP_HCALL_ENTRY(MSIQ_GETHEAD, hcall_msiq_gethead)
253 GROUP_HCALL_ENTRY(MSIQ_SETHEAD, hcall_msiq_sethead)
254 GROUP_HCALL_ENTRY(MSIQ_GETTAIL, hcall_msiq_gettail)
255 GROUP_HCALL_ENTRY(MSI_GETVALID, hcall_msi_getvalid)
256 GROUP_HCALL_ENTRY(MSI_SETVALID, hcall_msi_setvalid)
257 GROUP_HCALL_ENTRY(MSI_GETMSIQ, hcall_msi_getmsiq)
258 GROUP_HCALL_ENTRY(MSI_SETMSIQ, hcall_msi_setmsiq)
259 GROUP_HCALL_ENTRY(MSI_GETSTATE, hcall_msi_getstate)
260 GROUP_HCALL_ENTRY(MSI_SETSTATE, hcall_msi_setstate)
261 GROUP_HCALL_ENTRY(MSI_MSG_GETMSIQ, hcall_msi_msg_getmsiq)
262 GROUP_HCALL_ENTRY(MSI_MSG_SETMSIQ, hcall_msi_msg_setmsiq)
263 GROUP_HCALL_ENTRY(MSI_MSG_GETVALID, hcall_msi_msg_getvalid)
264 GROUP_HCALL_ENTRY(MSI_MSG_SETVALID, hcall_msi_msg_setvalid)
265 GROUP_HCALL_TABLE(pci_1_1)
266 GROUP_HCALL_ENTRY(VPCI_IOMMU_MAP, hcall_vpci_iommu_map_v2)
267 GROUP_HCALL_ENTRY(VPCI_IOMMU_GETMAP, hcall_vpci_iommu_getmap_v2)
268 GROUP_HCALL_END(pci_1)
269 GROUP_END(pci)
270
271#ifdef CONFIG_SVC
272 /*
273 * SVC API group. Deprecated interface for early Solaris
274 * releases using Great Lakes Virtual Channels (glvc).
275 */
276 GROUP_BEGIN(svc, API_GROUP_SVC) ! API group index #5
277 GROUP_MAJOR_ENTRY(svc, 1, 0)
278 GROUP_MINOR_ENTRY(svc_1_0)
279 GROUP_MINOR_END(svc_1)
280 GROUP_MAJOR_END(svc)
281
282 GROUP_HCALL_TABLE(svc_1_0)
283 GROUP_HCALL_ENTRY(SVC_SEND, hcall_svc_send)
284 GROUP_HCALL_ENTRY(SVC_RECV, hcall_svc_recv)
285 GROUP_HCALL_ENTRY(SVC_GETSTATUS, hcall_svc_getstatus)
286 GROUP_HCALL_ENTRY(SVC_SETSTATUS, hcall_svc_setstatus)
287 GROUP_HCALL_ENTRY(SVC_CLRSTATUS, hcall_svc_clrstatus)
288 GROUP_HCALL_END(svc_1)
289 GROUP_END(svc)
290#endif
291
292 /*
293 * Niagara Crypto API group. Niagara specific functions
294 * for access to crypto acceleration hardware.
295 */
296 GROUP_BEGIN(ncs, API_GROUP_NCS) ! API group index #6
297 GROUP_MAJOR_ENTRY(ncs, 1, 0)
298 GROUP_MINOR_ENTRY(ncs_1_0)
299 GROUP_MINOR_END(ncs_1)
300 GROUP_MAJOR_ENTRY(ncs, 2, 0)
301 GROUP_MINOR_ENTRY(ncs_2_0)
302 GROUP_MINOR_END(ncs_2)
303 GROUP_MAJOR_END(ncs)
304
305 GROUP_HCALL_TABLE(ncs_1_0)
306 GROUP_HCALL_ENTRY(NCS_REQUEST, hcall_ncs_request)
307 GROUP_HCALL_END(ncs_1)
308
309 GROUP_HCALL_TABLE(ncs_2_0)
310 GROUP_HCALL_ENTRY(NCS_SETTAIL, hcall_ncs_settail)
311 GROUP_HCALL_ENTRY(NCS_SETHEAD_MARKER, hcall_ncs_sethead_marker)
312 GROUP_HCALL_ENTRY(NCS_GETHEAD, hcall_ncs_gethead)
313 GROUP_HCALL_ENTRY(NCS_GETTAIL, hcall_ncs_gettail)
314 GROUP_HCALL_ENTRY(NCS_QCONF, hcall_ncs_qconf)
315 GROUP_HCALL_ENTRY(NCS_QHANDLE_TO_DEVINO, hcall_ncs_qhandle_to_devino)
316 GROUP_HCALL_ENTRY(NCS_QINFO, hcall_ncs_qinfo)
317 GROUP_HCALL_END(ncs_2)
318
319 GROUP_END(ncs)
320
321 /*
322 * Niagara Perf Regs API group. Niagara specific calls
323 * for performance monitoring.
324 */
325 GROUP_BEGIN(niagara, API_GROUP_NIAGARA) ! API group index #7
326 GROUP_MAJOR_ENTRY(niagara, 1, 0)
327 GROUP_MINOR_ENTRY(niagara_1_0)
328 GROUP_MINOR_END(niagara_1)
329 GROUP_MAJOR_END(niagara)
330
331 GROUP_HCALL_TABLE(niagara_1_0)
332 GROUP_HCALL_ENTRY(NIAGARA_GET_PERFREG, hcall_niagara_getperf)
333 GROUP_HCALL_ENTRY(NIAGARA_SET_PERFREG, hcall_niagara_setperf)
334 GROUP_HCALL_ENTRY(NIAGARA_MMUSTAT_CONF, hcall_niagara_mmustat_conf)
335 GROUP_HCALL_ENTRY(NIAGARA_MMUSTAT_INFO, hcall_niagara_mmustat_info)
336 GROUP_HCALL_END(niagara_1)
337 GROUP_END(niagara)
338
339#ifdef CONFIG_FIRE
340 /*
341 * Fire API group. Fire specific calls for I/O performance
342 * monitoring.
343 */
344 GROUP_BEGIN(fire, API_GROUP_FIRE) ! API group index #8
345 GROUP_MAJOR_ENTRY(fire, 1, 0)
346 GROUP_MINOR_ENTRY(fire_1_0)
347 GROUP_MINOR_END(fire_1)
348 GROUP_MAJOR_END(fire)
349
350 GROUP_HCALL_TABLE(fire_1_0)
351 GROUP_HCALL_ENTRY(FIRE_GET_PERFREG, hcall_vpci_get_perfreg)
352 GROUP_HCALL_ENTRY(FIRE_SET_PERFREG, hcall_vpci_set_perfreg)
353 GROUP_HCALL_END(fire_1)
354 GROUP_END(fire)
355#endif
356
357 /*
358 * Diag and Test API group. Special interfaces for lab test
359 * and debug tools (like the error injector). Generally
360 * require special access permissions be specified in the
361 * machine description. Not intended for use in production
362 * systems.
363 */
364 GROUP_BEGIN(diag, API_GROUP_DIAG) ! API group index #9
365 GROUP_MAJOR_ENTRY(diag, 1, 0)
366 GROUP_MINOR_ENTRY(diag_1_0)
367 GROUP_MINOR_END(diag_1)
368 GROUP_MAJOR_END(diag)
369
370 GROUP_HCALL_TABLE(diag_1_0)
371 GROUP_HCALL_ENTRY(DIAG_RA2PA, hcall_diag_ra2pa)
372 GROUP_HCALL_ENTRY(DIAG_HEXEC, hcall_diag_hexec)
373 GROUP_HCALL_END(diag_1)
374 GROUP_END(diag)
375
376 GROUP_BEGIN(ldc, API_GROUP_LDC) ! API group index #10
377 GROUP_MAJOR_ENTRY(ldc, 1, 0)
378 GROUP_MINOR_ENTRY(ldc_1_0)
379 GROUP_MINOR_END(ldc_1)
380 GROUP_MAJOR_END(ldc)
381
382 GROUP_HCALL_TABLE(ldc_1_0)
383 GROUP_HCALL_ENTRY(LDC_TX_QCONF, hcall_ldc_tx_qconf)
384 GROUP_HCALL_ENTRY(LDC_TX_QINFO, hcall_ldc_tx_qinfo)
385 GROUP_HCALL_ENTRY(LDC_TX_GET_STATE, hcall_ldc_tx_get_state)
386 GROUP_HCALL_ENTRY(LDC_TX_SET_QTAIL, hcall_ldc_tx_set_qtail)
387 GROUP_HCALL_ENTRY(LDC_RX_QCONF, hcall_ldc_rx_qconf)
388 GROUP_HCALL_ENTRY(LDC_RX_QINFO, hcall_ldc_rx_qinfo)
389 GROUP_HCALL_ENTRY(LDC_RX_GET_STATE, hcall_ldc_rx_get_state)
390 GROUP_HCALL_ENTRY(LDC_RX_SET_QHEAD, hcall_ldc_rx_set_qhead)
391 GROUP_HCALL_ENTRY(LDC_SET_MAP_TABLE, hcall_ldc_set_map_table)
392 GROUP_HCALL_ENTRY(LDC_GET_MAP_TABLE, hcall_ldc_get_map_table)
393 GROUP_HCALL_ENTRY(LDC_COPY, hcall_ldc_copy)
394 GROUP_HCALL_ENTRY(LDC_MAPIN, hcall_ldc_mapin)
395 GROUP_HCALL_ENTRY(LDC_UNMAP, hcall_ldc_unmap)
396 GROUP_HCALL_ENTRY(LDC_REVOKE, hcall_ldc_revoke)
397 GROUP_HCALL_END(ldc_1)
398 GROUP_END(ldc)
399
400
401#ifdef CONFIG_VERSION_TEST
402 /*
403 * Test API group. Here to enable debugging changes to
404 * the set_version/get_version code, and/or to the table
405 * structure.
406 */
407 GROUP_BEGIN(test, 0x400) ! API group index #11
408 GROUP_MAJOR_ENTRY(test, 1, 2)
409 GROUP_MINOR_ENTRY(test_1_0)
410 GROUP_MINOR_ENTRY(test_1_1)
411 GROUP_MINOR_ENTRY(test_1_2)
412 GROUP_MINOR_END(test_1)
413 GROUP_MAJOR_ENTRY(test, 2, 2)
414 GROUP_MINOR_ENTRY(test_2_0)
415 GROUP_MINOR_ENTRY(test_2_1)
416 GROUP_MINOR_ENTRY(test_2_2)
417 GROUP_MINOR_END(test_2)
418 GROUP_MAJOR_ENTRY(test, 3, 0)
419 GROUP_MINOR_ENTRY(test_3_0)
420 GROUP_MINOR_END(test_3)
421 GROUP_MAJOR_END(test)
422
423 GROUP_HCALL_TABLE(test_1_0)
424 GROUP_HCALL_ENTRY(0xe0, hcall_version_test_1_0)
425 GROUP_HCALL_TABLE(test_1_1)
426 GROUP_HCALL_ENTRY(0xe1, hcall_version_test_1_1)
427 GROUP_HCALL_TABLE(test_1_2)
428 GROUP_HCALL_ENTRY(0xe2, hcall_version_test_1_2)
429 GROUP_HCALL_END(test_1)
430 GROUP_HCALL_TABLE(test_2_0)
431 GROUP_HCALL_ENTRY(0xe0, hcall_version_test_2_0)
432 GROUP_HCALL_TABLE(test_2_1)
433 GROUP_HCALL_ENTRY(0xe3, hcall_version_test_2_1)
434 GROUP_HCALL_TABLE(test_2_2)
435 GROUP_HCALL_ENTRY(0xe1, hcall_version_test_2_2)
436 GROUP_HCALL_END(test_2)
437 GROUP_HCALL_TABLE(test_3_0)
438 GROUP_HCALL_ENTRY(0xe3, hcall_version_test_3_0)
439 GROUP_HCALL_END(test_3)
440 GROUP_END(test)
441#endif
442
443 /*
444 * You can add new groups here. Remember to update
445 * NUM_API_GROUPS.
446 */
447
448
449 /* End of API groups - delete this and be sorry */
450 .xword 0
451 SET_SIZE(hcall_api_group_map)