linux/arch/tile/include/gxio/iorpc_mpipe.h
<<
>>
Prefs
   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#ifndef __GXIO_MPIPE_LINUX_RPC_H__
  17#define __GXIO_MPIPE_LINUX_RPC_H__
  18
  19#include <hv/iorpc.h>
  20
  21#include <hv/drv_mpipe_intf.h>
  22#include <asm/page.h>
  23#include <gxio/kiorpc.h>
  24#include <gxio/mpipe.h>
  25#include <linux/string.h>
  26#include <linux/module.h>
  27#include <asm/pgtable.h>
  28
  29#define GXIO_MPIPE_OP_ALLOC_BUFFER_STACKS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1200)
  30#define GXIO_MPIPE_OP_INIT_BUFFER_STACK_AUX IORPC_OPCODE(IORPC_FORMAT_KERNEL_MEM, 0x1201)
  31
  32#define GXIO_MPIPE_OP_ALLOC_NOTIF_RINGS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1203)
  33#define GXIO_MPIPE_OP_INIT_NOTIF_RING_AUX IORPC_OPCODE(IORPC_FORMAT_KERNEL_MEM, 0x1204)
  34#define GXIO_MPIPE_OP_REQUEST_NOTIF_RING_INTERRUPT IORPC_OPCODE(IORPC_FORMAT_KERNEL_INTERRUPT, 0x1205)
  35#define GXIO_MPIPE_OP_ENABLE_NOTIF_RING_INTERRUPT IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1206)
  36#define GXIO_MPIPE_OP_ALLOC_NOTIF_GROUPS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1207)
  37#define GXIO_MPIPE_OP_INIT_NOTIF_GROUP IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1208)
  38#define GXIO_MPIPE_OP_ALLOC_BUCKETS    IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1209)
  39#define GXIO_MPIPE_OP_INIT_BUCKET      IORPC_OPCODE(IORPC_FORMAT_NONE, 0x120a)
  40#define GXIO_MPIPE_OP_ALLOC_EDMA_RINGS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x120b)
  41#define GXIO_MPIPE_OP_INIT_EDMA_RING_AUX IORPC_OPCODE(IORPC_FORMAT_KERNEL_MEM, 0x120c)
  42
  43#define GXIO_MPIPE_OP_COMMIT_RULES     IORPC_OPCODE(IORPC_FORMAT_NONE, 0x120f)
  44#define GXIO_MPIPE_OP_REGISTER_CLIENT_MEMORY IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x1210)
  45#define GXIO_MPIPE_OP_LINK_OPEN_AUX    IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1211)
  46#define GXIO_MPIPE_OP_LINK_CLOSE_AUX   IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1212)
  47
  48#define GXIO_MPIPE_OP_GET_TIMESTAMP_AUX IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x121e)
  49#define GXIO_MPIPE_OP_SET_TIMESTAMP_AUX IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x121f)
  50#define GXIO_MPIPE_OP_ADJUST_TIMESTAMP_AUX IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x1220)
  51#define GXIO_MPIPE_OP_ARM_POLLFD       IORPC_OPCODE(IORPC_FORMAT_KERNEL_POLLFD, 0x9000)
  52#define GXIO_MPIPE_OP_CLOSE_POLLFD     IORPC_OPCODE(IORPC_FORMAT_KERNEL_POLLFD, 0x9001)
  53#define GXIO_MPIPE_OP_GET_MMIO_BASE    IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8000)
  54#define GXIO_MPIPE_OP_CHECK_MMIO_OFFSET IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8001)
  55
  56int gxio_mpipe_alloc_buffer_stacks(gxio_mpipe_context_t * context,
  57                                   unsigned int count, unsigned int first,
  58                                   unsigned int flags);
  59
  60int gxio_mpipe_init_buffer_stack_aux(gxio_mpipe_context_t * context,
  61                                     void *mem_va, size_t mem_size,
  62                                     unsigned int mem_flags, unsigned int stack,
  63                                     unsigned int buffer_size_enum);
  64
  65
  66int gxio_mpipe_alloc_notif_rings(gxio_mpipe_context_t * context,
  67                                 unsigned int count, unsigned int first,
  68                                 unsigned int flags);
  69
  70int gxio_mpipe_init_notif_ring_aux(gxio_mpipe_context_t * context, void *mem_va,
  71                                   size_t mem_size, unsigned int mem_flags,
  72                                   unsigned int ring);
  73
  74int gxio_mpipe_request_notif_ring_interrupt(gxio_mpipe_context_t * context,
  75                                            int inter_x, int inter_y,
  76                                            int inter_ipi, int inter_event,
  77                                            unsigned int ring);
  78
  79int gxio_mpipe_enable_notif_ring_interrupt(gxio_mpipe_context_t * context,
  80                                           unsigned int ring);
  81
  82int gxio_mpipe_alloc_notif_groups(gxio_mpipe_context_t * context,
  83                                  unsigned int count, unsigned int first,
  84                                  unsigned int flags);
  85
  86int gxio_mpipe_init_notif_group(gxio_mpipe_context_t * context,
  87                                unsigned int group,
  88                                gxio_mpipe_notif_group_bits_t bits);
  89
  90int gxio_mpipe_alloc_buckets(gxio_mpipe_context_t * context, unsigned int count,
  91                             unsigned int first, unsigned int flags);
  92
  93int gxio_mpipe_init_bucket(gxio_mpipe_context_t * context, unsigned int bucket,
  94                           MPIPE_LBL_INIT_DAT_BSTS_TBL_t bucket_info);
  95
  96int gxio_mpipe_alloc_edma_rings(gxio_mpipe_context_t * context,
  97                                unsigned int count, unsigned int first,
  98                                unsigned int flags);
  99
 100int gxio_mpipe_init_edma_ring_aux(gxio_mpipe_context_t * context, void *mem_va,
 101                                  size_t mem_size, unsigned int mem_flags,
 102                                  unsigned int ring, unsigned int channel);
 103
 104
 105int gxio_mpipe_commit_rules(gxio_mpipe_context_t * context, const void *blob,
 106                            size_t blob_size);
 107
 108int gxio_mpipe_register_client_memory(gxio_mpipe_context_t * context,
 109                                      unsigned int iotlb, HV_PTE pte,
 110                                      unsigned int flags);
 111
 112int gxio_mpipe_link_open_aux(gxio_mpipe_context_t * context,
 113                             _gxio_mpipe_link_name_t name, unsigned int flags);
 114
 115int gxio_mpipe_link_close_aux(gxio_mpipe_context_t * context, int mac);
 116
 117
 118int gxio_mpipe_get_timestamp_aux(gxio_mpipe_context_t * context, uint64_t * sec,
 119                                 uint64_t * nsec, uint64_t * cycles);
 120
 121int gxio_mpipe_set_timestamp_aux(gxio_mpipe_context_t * context, uint64_t sec,
 122                                 uint64_t nsec, uint64_t cycles);
 123
 124int gxio_mpipe_adjust_timestamp_aux(gxio_mpipe_context_t * context,
 125                                    int64_t nsec);
 126
 127int gxio_mpipe_arm_pollfd(gxio_mpipe_context_t * context, int pollfd_cookie);
 128
 129int gxio_mpipe_close_pollfd(gxio_mpipe_context_t * context, int pollfd_cookie);
 130
 131int gxio_mpipe_get_mmio_base(gxio_mpipe_context_t * context, HV_PTE *base);
 132
 133int gxio_mpipe_check_mmio_offset(gxio_mpipe_context_t * context,
 134                                 unsigned long offset, unsigned long size);
 135
 136#endif /* !__GXIO_MPIPE_LINUX_RPC_H__ */
 137