1/* 2 * Copyright 2012 Tilera Corporation. All Rights Reserved. 3 * 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. 7 * 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 12 * more details. 13 */ 14 15/* This file is machine-generated; DO NOT EDIT! */ 16#include "gxio/iorpc_trio.h" 17 18struct alloc_asids_param { 19 unsigned int count; 20 unsigned int first; 21 unsigned int flags; 22}; 23 24int gxio_trio_alloc_asids(gxio_trio_context_t *context, unsigned int count, 25 unsigned int first, unsigned int flags) 26{ 27 struct alloc_asids_param temp; 28 struct alloc_asids_param *params = &temp; 29 30 params->count = count; 31 params->first = first; 32 params->flags = flags; 33 34 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 35 sizeof(*params), GXIO_TRIO_OP_ALLOC_ASIDS); 36} 37 38EXPORT_SYMBOL(gxio_trio_alloc_asids); 39 40 41struct alloc_memory_maps_param { 42 unsigned int count; 43 unsigned int first; 44 unsigned int flags; 45}; 46 47int gxio_trio_alloc_memory_maps(gxio_trio_context_t *context, 48 unsigned int count, unsigned int first, 49 unsigned int flags) 50{ 51 struct alloc_memory_maps_param temp; 52 struct alloc_memory_maps_param *params = &temp; 53 54 params->count = count; 55 params->first = first; 56 params->flags = flags; 57 58 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 59 sizeof(*params), GXIO_TRIO_OP_ALLOC_MEMORY_MAPS); 60} 61 62EXPORT_SYMBOL(gxio_trio_alloc_memory_maps); 63 64struct alloc_scatter_queues_param { 65 unsigned int count; 66 unsigned int first; 67 unsigned int flags; 68}; 69 70int gxio_trio_alloc_scatter_queues(gxio_trio_context_t *context, 71 unsigned int count, unsigned int first, 72 unsigned int flags) 73{ 74 struct alloc_scatter_queues_param temp; 75 struct alloc_scatter_queues_param *params = &temp; 76 77 params->count = count; 78 params->first = first; 79 params->flags = flags; 80 81 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 82 sizeof(*params), 83 GXIO_TRIO_OP_ALLOC_SCATTER_QUEUES); 84} 85 86EXPORT_SYMBOL(gxio_trio_alloc_scatter_queues); 87 88struct alloc_pio_regions_param { 89 unsigned int count; 90 unsigned int first; 91 unsigned int flags; 92}; 93 94int gxio_trio_alloc_pio_regions(gxio_trio_context_t *context, 95 unsigned int count, unsigned int first, 96 unsigned int flags) 97{ 98 struct alloc_pio_regions_param temp; 99 struct alloc_pio_regions_param *params = &temp; 100 101 params->count = count; 102 params->first = first; 103 params->flags = flags; 104 105 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 106 sizeof(*params), GXIO_TRIO_OP_ALLOC_PIO_REGIONS); 107} 108 109EXPORT_SYMBOL(gxio_trio_alloc_pio_regions); 110 111struct init_pio_region_aux_param { 112 unsigned int pio_region; 113 unsigned int mac; 114 uint32_t bus_address_hi; 115 unsigned int flags; 116}; 117 118int 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) 121{ 122 struct init_pio_region_aux_param temp; 123 struct init_pio_region_aux_param *params = &temp; 124 125 params->pio_region = pio_region; 126 params->mac = mac; 127 params->bus_address_hi = bus_address_hi; 128 params->flags = flags; 129 130 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 131 sizeof(*params), GXIO_TRIO_OP_INIT_PIO_REGION_AUX); 132} 133 134EXPORT_SYMBOL(gxio_trio_init_pio_region_aux); 135 136 137struct init_memory_map_mmu_aux_param { 138 unsigned int map; 139 unsigned long va; 140 uint64_t size; 141 unsigned int asid; 142 unsigned int mac; 143 uint64_t bus_address; 144 unsigned int node; 145 unsigned int order_mode; 146}; 147 148int 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, 152 unsigned int node, 153 unsigned int order_mode) 154{ 155 struct init_memory_map_mmu_aux_param temp; 156 struct init_memory_map_mmu_aux_param *params = &temp; 157 158 params->map = map; 159 params->va = va; 160 params->size = size; 161 params->asid = asid; 162 params->mac = mac; 163 params->bus_address = bus_address; 164 params->node = node; 165 params->order_mode = order_mode; 166 167 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 168 sizeof(*params), 169 GXIO_TRIO_OP_INIT_MEMORY_MAP_MMU_AUX); 170} 171 172EXPORT_SYMBOL(gxio_trio_init_memory_map_mmu_aux); 173 174struct get_port_property_param { 175 struct pcie_trio_ports_property trio_ports; 176}; 177 178int gxio_trio_get_port_property(gxio_trio_context_t *context, 179 struct pcie_trio_ports_property *trio_ports) 180{ 181 int __result; 182 struct get_port_property_param temp; 183 struct get_port_property_param *params = &temp; 184 185 __result = 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; 189 190 return __result; 191} 192 193EXPORT_SYMBOL(gxio_trio_get_port_property); 194 195struct config_legacy_intr_param { 196 union iorpc_interrupt interrupt; 197 unsigned int mac; 198 unsigned int intx; 199}; 200 201int 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) 204{ 205 struct config_legacy_intr_param temp; 206 struct config_legacy_intr_param *params = &temp; 207 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; 212 params->mac = mac; 213 params->intx = intx; 214 215 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 216 sizeof(*params), GXIO_TRIO_OP_CONFIG_LEGACY_INTR); 217} 218 219EXPORT_SYMBOL(gxio_trio_config_legacy_intr); 220 221struct config_msi_intr_param { 222 union iorpc_interrupt interrupt; 223 unsigned int mac; 224 unsigned int mem_map; 225 uint64_t mem_map_base; 226 uint64_t mem_map_limit; 227 unsigned int asid; 228}; 229 230int 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, 234 unsigned int asid) 235{ 236 struct config_msi_intr_param temp; 237 struct config_msi_intr_param *params = &temp; 238 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; 243 params->mac = mac; 244 params->mem_map = mem_map; 245 params->mem_map_base = mem_map_base; 246 params->mem_map_limit = mem_map_limit; 247 params->asid = asid; 248 249 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 250 sizeof(*params), GXIO_TRIO_OP_CONFIG_MSI_INTR); 251} 252 253EXPORT_SYMBOL(gxio_trio_config_msi_intr); 254 255 256struct set_mps_mrs_param { 257 uint16_t mps; 258 uint16_t mrs; 259 unsigned int mac; 260}; 261 262int gxio_trio_set_mps_mrs(gxio_trio_context_t *context, uint16_t mps, 263 uint16_t mrs, unsigned int mac) 264{ 265 struct set_mps_mrs_param temp; 266 struct set_mps_mrs_param *params = &temp; 267 268 params->mps = mps; 269 params->mrs = mrs; 270 params->mac = mac; 271 272 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 273 sizeof(*params), GXIO_TRIO_OP_SET_MPS_MRS); 274} 275 276EXPORT_SYMBOL(gxio_trio_set_mps_mrs); 277 278struct force_rc_link_up_param { 279 unsigned int mac; 280}; 281 282int gxio_trio_force_rc_link_up(gxio_trio_context_t *context, unsigned int mac) 283{ 284 struct force_rc_link_up_param temp; 285 struct force_rc_link_up_param *params = &temp; 286 287 params->mac = mac; 288 289 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 290 sizeof(*params), GXIO_TRIO_OP_FORCE_RC_LINK_UP); 291} 292 293EXPORT_SYMBOL(gxio_trio_force_rc_link_up); 294 295struct force_ep_link_up_param { 296 unsigned int mac; 297}; 298 299int gxio_trio_force_ep_link_up(gxio_trio_context_t *context, unsigned int mac) 300{ 301 struct force_ep_link_up_param temp; 302 struct force_ep_link_up_param *params = &temp; 303 304 params->mac = mac; 305 306 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 307 sizeof(*params), GXIO_TRIO_OP_FORCE_EP_LINK_UP); 308} 309 310EXPORT_SYMBOL(gxio_trio_force_ep_link_up); 311 312struct get_mmio_base_param { 313 HV_PTE base; 314}; 315 316int gxio_trio_get_mmio_base(gxio_trio_context_t *context, HV_PTE *base) 317{ 318 int __result; 319 struct get_mmio_base_param temp; 320 struct get_mmio_base_param *params = &temp; 321 322 __result = 323 hv_dev_pread(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), 324 GXIO_TRIO_OP_GET_MMIO_BASE); 325 *base = params->base; 326 327 return __result; 328} 329 330EXPORT_SYMBOL(gxio_trio_get_mmio_base); 331 332struct check_mmio_offset_param { 333 unsigned long offset; 334 unsigned long size; 335}; 336 337int gxio_trio_check_mmio_offset(gxio_trio_context_t *context, 338 unsigned long offset, unsigned long size) 339{ 340 struct check_mmio_offset_param temp; 341 struct check_mmio_offset_param *params = &temp; 342 343 params->offset = offset; 344 params->size = size; 345 346 return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, 347 sizeof(*params), GXIO_TRIO_OP_CHECK_MMIO_OFFSET); 348} 349 350EXPORT_SYMBOL(gxio_trio_check_mmio_offset); 351