/* * Copyright 2012 Tilera Corporation. All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for * more details. */ /* This file is machine-generated; DO NOT EDIT! */ #include "gxio/iorpc_trio.h" struct alloc_asids_param { unsigned int count; unsigned int first; unsigned int flags; }; int gxio_trio_alloc_asids(gxio_trio_context_t *context, unsigned int count, unsigned int first, unsigned int flags) { struct alloc_asids_param temp; struct alloc_asids_param *params = &temp; params->count = count; params->first = first; params->flags = flags; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_ALLOC_ASIDS); } EXPORT_SYMBOL(gxio_trio_alloc_asids); struct alloc_memory_maps_param { unsigned int count; unsigned int first; unsigned int flags; }; int gxio_trio_alloc_memory_maps(gxio_trio_context_t *context, unsigned int count, unsigned int first, unsigned int flags) { struct alloc_memory_maps_param temp; struct alloc_memory_maps_param *params = &temp; params->count = count; params->first = first; params->flags = flags; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_ALLOC_MEMORY_MAPS); } EXPORT_SYMBOL(gxio_trio_alloc_memory_maps); struct alloc_scatter_queues_param { unsigned int count; unsigned int first; unsigned int flags; }; int gxio_trio_alloc_scatter_queues(gxio_trio_context_t *context, unsigned int count, unsigned int first, unsigned int flags) { struct alloc_scatter_queues_param temp; struct alloc_scatter_queues_param *params = &temp; params->count = count; params->first = first; params->flags = flags; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_ALLOC_SCATTER_QUEUES); } EXPORT_SYMBOL(gxio_trio_alloc_scatter_queues); struct alloc_pio_regions_param { unsigned int count; unsigned int first; unsigned int flags; }; int gxio_trio_alloc_pio_regions(gxio_trio_context_t *context, unsigned int count, unsigned int first, unsigned int flags) { struct alloc_pio_regions_param temp; struct alloc_pio_regions_param *params = &temp; params->count = count; params->first = first; params->flags = flags; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_ALLOC_PIO_REGIONS); } EXPORT_SYMBOL(gxio_trio_alloc_pio_regions); struct init_pio_region_aux_param { unsigned int pio_region; unsigned int mac; uint32_t bus_address_hi; unsigned int flags; }; int gxio_trio_init_pio_region_aux(gxio_trio_context_t *context, unsigned int pio_region, unsigned int mac, uint32_t bus_address_hi, unsigned int flags) { struct init_pio_region_aux_param temp; struct init_pio_region_aux_param *params = &temp; params->pio_region = pio_region; params->mac = mac; params->bus_address_hi = bus_address_hi; params->flags = flags; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_INIT_PIO_REGION_AUX); } EXPORT_SYMBOL(gxio_trio_init_pio_region_aux); struct init_memory_map_mmu_aux_param { unsigned int map; unsigned long va; uint64_t size; unsigned int asid; unsigned int mac; uint64_t bus_address; unsigned int node; unsigned int order_mode; }; int gxio_trio_init_memory_map_mmu_aux(gxio_trio_context_t *context, unsigned int map, unsigned long va, uint64_t size, unsigned int asid, unsigned int mac, uint64_t bus_address, unsigned int node, unsigned int order_mode) { struct init_memory_map_mmu_aux_param temp; struct init_memory_map_mmu_aux_param *params = &temp; params->map = map; params->va = va; params->size = size; params->asid = asid; params->mac = mac; params->bus_address = bus_address; params->node = node; params->order_mode = order_mode; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_INIT_MEMORY_MAP_MMU_AUX); } EXPORT_SYMBOL(gxio_trio_init_memory_map_mmu_aux); struct get_port_property_param { struct pcie_trio_ports_property trio_ports; }; int gxio_trio_get_port_property(gxio_trio_context_t *context, struct pcie_trio_ports_property *trio_ports) { int __result; struct get_port_property_param temp; struct get_port_property_param *params = &temp; __result = hv_dev_pread(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_GET_PORT_PROPERTY); *trio_ports = params->trio_ports; return __result; } EXPORT_SYMBOL(gxio_trio_get_port_property); struct config_legacy_intr_param { union iorpc_interrupt interrupt; unsigned int mac; unsigned int intx; }; int gxio_trio_config_legacy_intr(gxio_trio_context_t *context, int inter_x, int inter_y, int inter_ipi, int inter_event, unsigned int mac, unsigned int intx) { struct config_legacy_intr_param temp; struct config_legacy_intr_param *params = &temp; params->interrupt.kernel.x = inter_x; params->interrupt.kernel.y = inter_y; params->interrupt.kernel.ipi = inter_ipi; params->interrupt.kernel.event = inter_event; params->mac = mac; params->intx = intx; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_CONFIG_LEGACY_INTR); } EXPORT_SYMBOL(gxio_trio_config_legacy_intr); struct config_msi_intr_param { union iorpc_interrupt interrupt; unsigned int mac; unsigned int mem_map; uint64_t mem_map_base; uint64_t mem_map_limit; unsigned int asid; }; int gxio_trio_config_msi_intr(gxio_trio_context_t *context, int inter_x, int inter_y, int inter_ipi, int inter_event, unsigned int mac, unsigned int mem_map, uint64_t mem_map_base, uint64_t mem_map_limit, unsigned int asid) { struct config_msi_intr_param temp; struct config_msi_intr_param *params = &temp; params->interrupt.kernel.x = inter_x; params->interrupt.kernel.y = inter_y; params->interrupt.kernel.ipi = inter_ipi; params->interrupt.kernel.event = inter_event; params->mac = mac; params->mem_map = mem_map; params->mem_map_base = mem_map_base; params->mem_map_limit = mem_map_limit; params->asid = asid; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_CONFIG_MSI_INTR); } EXPORT_SYMBOL(gxio_trio_config_msi_intr); struct set_mps_mrs_param { uint16_t mps; uint16_t mrs; unsigned int mac; }; int gxio_trio_set_mps_mrs(gxio_trio_context_t *context, uint16_t mps, uint16_t mrs, unsigned int mac) { struct set_mps_mrs_param temp; struct set_mps_mrs_param *params = &temp; params->mps = mps; params->mrs = mrs; params->mac = mac; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_SET_MPS_MRS); } EXPORT_SYMBOL(gxio_trio_set_mps_mrs); struct force_rc_link_up_param { unsigned int mac; }; int gxio_trio_force_rc_link_up(gxio_trio_context_t *context, unsigned int mac) { struct force_rc_link_up_param temp; struct force_rc_link_up_param *params = &temp; params->mac = mac; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_FORCE_RC_LINK_UP); } EXPORT_SYMBOL(gxio_trio_force_rc_link_up); struct force_ep_link_up_param { unsigned int mac; }; int gxio_trio_force_ep_link_up(gxio_trio_context_t *context, unsigned int mac) { struct force_ep_link_up_param temp; struct force_ep_link_up_param *params = &temp; params->mac = mac; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_FORCE_EP_LINK_UP); } EXPORT_SYMBOL(gxio_trio_force_ep_link_up); struct get_mmio_base_param { HV_PTE base; }; int gxio_trio_get_mmio_base(gxio_trio_context_t *context, HV_PTE *base) { int __result; struct get_mmio_base_param temp; struct get_mmio_base_param *params = &temp; __result = hv_dev_pread(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_GET_MMIO_BASE); *base = params->base; return __result; } EXPORT_SYMBOL(gxio_trio_get_mmio_base); struct check_mmio_offset_param { unsigned long offset; unsigned long size; }; int gxio_trio_check_mmio_offset(gxio_trio_context_t *context, unsigned long offset, unsigned long size) { struct check_mmio_offset_param temp; struct check_mmio_offset_param *params = &temp; params->offset = offset; params->size = size; return hv_dev_pwrite(context->fd, 0, (HV_VirtAddr) params, sizeof(*params), GXIO_TRIO_OP_CHECK_MMIO_OFFSET); } EXPORT_SYMBOL(gxio_trio_check_mmio_offset);