xref: /titanic_44/usr/src/uts/common/io/nxge/nxge_hcall.s (revision a237e38e9161f0acd6451439d4a7dd597e66291d)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23 * Use is subject to license terms.
24 */
25
26#pragma ident	"%Z%%M%	%I%	%E% SMI"
27
28/*
29 * Hypervisor calls called by niu leaf driver.
30*/
31
32#include <sys/asm_linkage.h>
33#include <sys/hypervisor_api.h>
34#include <sys/nxge/nxge_impl.h>
35
36#if defined(lint) || defined(__lint)
37
38/*ARGSUSED*/
39uint64_t
40hv_niu_rx_logical_page_conf(uint64_t chidx, uint64_t pgidx,
41	uint64_t raddr, uint64_t size)
42{ return (0); }
43
44/*ARGSUSED*/
45uint64_t
46hv_niu_rx_logical_page_info(uint64_t chidx, uint64_t pgidx,
47	uint64_t *raddr, uint64_t *size)
48{ return (0); }
49
50/*ARGSUSED*/
51uint64_t
52hv_niu_tx_logical_page_conf(uint64_t chidx, uint64_t pgidx,
53	uint64_t raddr, uint64_t size)
54{ return (0); }
55
56/*ARGSUSED*/
57uint64_t
58hv_niu_tx_logical_page_info(uint64_t chidx, uint64_t pgidx,
59	uint64_t *raddr, uint64_t *size)
60{ return (0); }
61
62#else	/* lint || __lint */
63
64	/*
65	 * hv_niu_rx_logical_page_conf(uint64_t chidx, uint64_t pgidx,
66	 *	uint64_t raddr, uint64_t size)
67	 */
68	ENTRY(hv_niu_rx_logical_page_conf)
69	mov	N2NIU_RX_LP_CONF, %o5
70	ta	FAST_TRAP
71	retl
72	nop
73	SET_SIZE(hv_niu_rx_logical_page_conf)
74
75	/*
76	 * hv_niu_rx_logical_page_info(uint64_t chidx, uint64_t pgidx,
77	 *	uint64_t *raddr, uint64_t *size)
78	 */
79	ENTRY(hv_niu_rx_logical_page_info)
80	mov	%o2, %g1
81	mov	%o3, %g2
82	mov	N2NIU_RX_LP_INFO, %o5
83	ta	FAST_TRAP
84	stx	%o1, [%g1]
85	retl
86	stx	%o2, [%g2]
87	SET_SIZE(hv_niu_rx_logical_page_info)
88
89	/*
90	 * hv_niu_tx_logical_page_conf(uint64_t chidx, uint64_t pgidx,
91	 *	uint64_t raddr, uint64_t size)
92	 */
93	ENTRY(hv_niu_tx_logical_page_conf)
94	mov	N2NIU_TX_LP_CONF, %o5
95	ta	FAST_TRAP
96	retl
97	nop
98	SET_SIZE(hv_niu_tx_logical_page_conf)
99
100	/*
101	 * hv_niu_tx_logical_page_info(uint64_t chidx, uint64_t pgidx,
102	 *	uint64_t *raddr, uint64_t *size)
103	 */
104	ENTRY(hv_niu_tx_logical_page_info)
105	mov	%o2, %g1
106	mov	%o3, %g2
107	mov	N2NIU_TX_LP_INFO, %o5
108	ta	FAST_TRAP
109	stx	%o1, [%g1]
110	retl
111	stx	%o2, [%g2]
112	SET_SIZE(hv_niu_tx_logical_page_info)
113
114#endif	/* lint || __lint */
115