2 * Copyright 2012 Tilera Corporation. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation, version 2.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11 * NON INFRINGEMENT. See the GNU General Public License for
15 /* This file is machine-generated; DO NOT EDIT! */
16 #include "gxio/iorpc_trio.h"
18 struct alloc_asids_param
{
24 int gxio_trio_alloc_asids(gxio_trio_context_t
*context
, unsigned int count
,
25 unsigned int first
, unsigned int flags
)
27 struct alloc_asids_param temp
;
28 struct alloc_asids_param
*params
= &temp
;
30 params
->count
= count
;
31 params
->first
= first
;
32 params
->flags
= flags
;
34 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
35 sizeof(*params
), GXIO_TRIO_OP_ALLOC_ASIDS
);
38 EXPORT_SYMBOL(gxio_trio_alloc_asids
);
41 struct alloc_memory_maps_param
{
47 int gxio_trio_alloc_memory_maps(gxio_trio_context_t
*context
,
48 unsigned int count
, unsigned int first
,
51 struct alloc_memory_maps_param temp
;
52 struct alloc_memory_maps_param
*params
= &temp
;
54 params
->count
= count
;
55 params
->first
= first
;
56 params
->flags
= flags
;
58 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
59 sizeof(*params
), GXIO_TRIO_OP_ALLOC_MEMORY_MAPS
);
62 EXPORT_SYMBOL(gxio_trio_alloc_memory_maps
);
64 struct alloc_scatter_queues_param
{
70 int gxio_trio_alloc_scatter_queues(gxio_trio_context_t
*context
,
71 unsigned int count
, unsigned int first
,
74 struct alloc_scatter_queues_param temp
;
75 struct alloc_scatter_queues_param
*params
= &temp
;
77 params
->count
= count
;
78 params
->first
= first
;
79 params
->flags
= flags
;
81 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
83 GXIO_TRIO_OP_ALLOC_SCATTER_QUEUES
);
86 EXPORT_SYMBOL(gxio_trio_alloc_scatter_queues
);
88 struct alloc_pio_regions_param
{
94 int gxio_trio_alloc_pio_regions(gxio_trio_context_t
*context
,
95 unsigned int count
, unsigned int first
,
98 struct alloc_pio_regions_param temp
;
99 struct alloc_pio_regions_param
*params
= &temp
;
101 params
->count
= count
;
102 params
->first
= first
;
103 params
->flags
= flags
;
105 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
106 sizeof(*params
), GXIO_TRIO_OP_ALLOC_PIO_REGIONS
);
109 EXPORT_SYMBOL(gxio_trio_alloc_pio_regions
);
111 struct init_pio_region_aux_param
{
112 unsigned int pio_region
;
114 uint32_t bus_address_hi
;
118 int gxio_trio_init_pio_region_aux(gxio_trio_context_t
*context
,
119 unsigned int pio_region
, unsigned int mac
,
120 uint32_t bus_address_hi
, unsigned int flags
)
122 struct init_pio_region_aux_param temp
;
123 struct init_pio_region_aux_param
*params
= &temp
;
125 params
->pio_region
= pio_region
;
127 params
->bus_address_hi
= bus_address_hi
;
128 params
->flags
= flags
;
130 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
131 sizeof(*params
), GXIO_TRIO_OP_INIT_PIO_REGION_AUX
);
134 EXPORT_SYMBOL(gxio_trio_init_pio_region_aux
);
137 struct init_memory_map_mmu_aux_param
{
143 uint64_t bus_address
;
145 unsigned int order_mode
;
148 int gxio_trio_init_memory_map_mmu_aux(gxio_trio_context_t
*context
,
149 unsigned int map
, unsigned long va
,
150 uint64_t size
, unsigned int asid
,
151 unsigned int mac
, uint64_t bus_address
,
153 unsigned int order_mode
)
155 struct init_memory_map_mmu_aux_param temp
;
156 struct init_memory_map_mmu_aux_param
*params
= &temp
;
163 params
->bus_address
= bus_address
;
165 params
->order_mode
= order_mode
;
167 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
169 GXIO_TRIO_OP_INIT_MEMORY_MAP_MMU_AUX
);
172 EXPORT_SYMBOL(gxio_trio_init_memory_map_mmu_aux
);
174 struct get_port_property_param
{
175 struct pcie_trio_ports_property trio_ports
;
178 int gxio_trio_get_port_property(gxio_trio_context_t
*context
,
179 struct pcie_trio_ports_property
*trio_ports
)
182 struct get_port_property_param temp
;
183 struct get_port_property_param
*params
= &temp
;
186 hv_dev_pread(context
->fd
, 0, (HV_VirtAddr
) params
, sizeof(*params
),
187 GXIO_TRIO_OP_GET_PORT_PROPERTY
);
188 *trio_ports
= params
->trio_ports
;
193 EXPORT_SYMBOL(gxio_trio_get_port_property
);
195 struct config_legacy_intr_param
{
196 union iorpc_interrupt interrupt
;
201 int gxio_trio_config_legacy_intr(gxio_trio_context_t
*context
, int inter_x
,
202 int inter_y
, int inter_ipi
, int inter_event
,
203 unsigned int mac
, unsigned int intx
)
205 struct config_legacy_intr_param temp
;
206 struct config_legacy_intr_param
*params
= &temp
;
208 params
->interrupt
.kernel
.x
= inter_x
;
209 params
->interrupt
.kernel
.y
= inter_y
;
210 params
->interrupt
.kernel
.ipi
= inter_ipi
;
211 params
->interrupt
.kernel
.event
= inter_event
;
215 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
216 sizeof(*params
), GXIO_TRIO_OP_CONFIG_LEGACY_INTR
);
219 EXPORT_SYMBOL(gxio_trio_config_legacy_intr
);
221 struct config_msi_intr_param
{
222 union iorpc_interrupt interrupt
;
224 unsigned int mem_map
;
225 uint64_t mem_map_base
;
226 uint64_t mem_map_limit
;
230 int gxio_trio_config_msi_intr(gxio_trio_context_t
*context
, int inter_x
,
231 int inter_y
, int inter_ipi
, int inter_event
,
232 unsigned int mac
, unsigned int mem_map
,
233 uint64_t mem_map_base
, uint64_t mem_map_limit
,
236 struct config_msi_intr_param temp
;
237 struct config_msi_intr_param
*params
= &temp
;
239 params
->interrupt
.kernel
.x
= inter_x
;
240 params
->interrupt
.kernel
.y
= inter_y
;
241 params
->interrupt
.kernel
.ipi
= inter_ipi
;
242 params
->interrupt
.kernel
.event
= inter_event
;
244 params
->mem_map
= mem_map
;
245 params
->mem_map_base
= mem_map_base
;
246 params
->mem_map_limit
= mem_map_limit
;
249 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
250 sizeof(*params
), GXIO_TRIO_OP_CONFIG_MSI_INTR
);
253 EXPORT_SYMBOL(gxio_trio_config_msi_intr
);
256 struct set_mps_mrs_param
{
262 int gxio_trio_set_mps_mrs(gxio_trio_context_t
*context
, uint16_t mps
,
263 uint16_t mrs
, unsigned int mac
)
265 struct set_mps_mrs_param temp
;
266 struct set_mps_mrs_param
*params
= &temp
;
272 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
273 sizeof(*params
), GXIO_TRIO_OP_SET_MPS_MRS
);
276 EXPORT_SYMBOL(gxio_trio_set_mps_mrs
);
278 struct force_rc_link_up_param
{
282 int gxio_trio_force_rc_link_up(gxio_trio_context_t
*context
, unsigned int mac
)
284 struct force_rc_link_up_param temp
;
285 struct force_rc_link_up_param
*params
= &temp
;
289 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
290 sizeof(*params
), GXIO_TRIO_OP_FORCE_RC_LINK_UP
);
293 EXPORT_SYMBOL(gxio_trio_force_rc_link_up
);
295 struct force_ep_link_up_param
{
299 int gxio_trio_force_ep_link_up(gxio_trio_context_t
*context
, unsigned int mac
)
301 struct force_ep_link_up_param temp
;
302 struct force_ep_link_up_param
*params
= &temp
;
306 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
307 sizeof(*params
), GXIO_TRIO_OP_FORCE_EP_LINK_UP
);
310 EXPORT_SYMBOL(gxio_trio_force_ep_link_up
);
312 struct get_mmio_base_param
{
316 int gxio_trio_get_mmio_base(gxio_trio_context_t
*context
, HV_PTE
*base
)
319 struct get_mmio_base_param temp
;
320 struct get_mmio_base_param
*params
= &temp
;
323 hv_dev_pread(context
->fd
, 0, (HV_VirtAddr
) params
, sizeof(*params
),
324 GXIO_TRIO_OP_GET_MMIO_BASE
);
325 *base
= params
->base
;
330 EXPORT_SYMBOL(gxio_trio_get_mmio_base
);
332 struct check_mmio_offset_param
{
333 unsigned long offset
;
337 int gxio_trio_check_mmio_offset(gxio_trio_context_t
*context
,
338 unsigned long offset
, unsigned long size
)
340 struct check_mmio_offset_param temp
;
341 struct check_mmio_offset_param
*params
= &temp
;
343 params
->offset
= offset
;
346 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
347 sizeof(*params
), GXIO_TRIO_OP_CHECK_MMIO_OFFSET
);
350 EXPORT_SYMBOL(gxio_trio_check_mmio_offset
);