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_mpipe.h"
18 struct alloc_buffer_stacks_param
{
24 int gxio_mpipe_alloc_buffer_stacks(gxio_mpipe_context_t
*context
,
25 unsigned int count
, unsigned int first
,
28 struct alloc_buffer_stacks_param temp
;
29 struct alloc_buffer_stacks_param
*params
= &temp
;
31 params
->count
= count
;
32 params
->first
= first
;
33 params
->flags
= flags
;
35 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
37 GXIO_MPIPE_OP_ALLOC_BUFFER_STACKS
);
40 EXPORT_SYMBOL(gxio_mpipe_alloc_buffer_stacks
);
42 struct init_buffer_stack_aux_param
{
43 union iorpc_mem_buffer buffer
;
45 unsigned int buffer_size_enum
;
48 int gxio_mpipe_init_buffer_stack_aux(gxio_mpipe_context_t
*context
,
49 void *mem_va
, size_t mem_size
,
50 unsigned int mem_flags
, unsigned int stack
,
51 unsigned int buffer_size_enum
)
54 unsigned long long __cpa
;
56 struct init_buffer_stack_aux_param temp
;
57 struct init_buffer_stack_aux_param
*params
= &temp
;
59 __result
= va_to_cpa_and_pte(mem_va
, &__cpa
, &__pte
);
62 params
->buffer
.kernel
.cpa
= __cpa
;
63 params
->buffer
.kernel
.size
= mem_size
;
64 params
->buffer
.kernel
.pte
= __pte
;
65 params
->buffer
.kernel
.flags
= mem_flags
;
66 params
->stack
= stack
;
67 params
->buffer_size_enum
= buffer_size_enum
;
69 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
71 GXIO_MPIPE_OP_INIT_BUFFER_STACK_AUX
);
74 EXPORT_SYMBOL(gxio_mpipe_init_buffer_stack_aux
);
77 struct alloc_notif_rings_param
{
83 int gxio_mpipe_alloc_notif_rings(gxio_mpipe_context_t
*context
,
84 unsigned int count
, unsigned int first
,
87 struct alloc_notif_rings_param temp
;
88 struct alloc_notif_rings_param
*params
= &temp
;
90 params
->count
= count
;
91 params
->first
= first
;
92 params
->flags
= flags
;
94 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
95 sizeof(*params
), GXIO_MPIPE_OP_ALLOC_NOTIF_RINGS
);
98 EXPORT_SYMBOL(gxio_mpipe_alloc_notif_rings
);
100 struct init_notif_ring_aux_param
{
101 union iorpc_mem_buffer buffer
;
105 int gxio_mpipe_init_notif_ring_aux(gxio_mpipe_context_t
*context
, void *mem_va
,
106 size_t mem_size
, unsigned int mem_flags
,
110 unsigned long long __cpa
;
112 struct init_notif_ring_aux_param temp
;
113 struct init_notif_ring_aux_param
*params
= &temp
;
115 __result
= va_to_cpa_and_pte(mem_va
, &__cpa
, &__pte
);
118 params
->buffer
.kernel
.cpa
= __cpa
;
119 params
->buffer
.kernel
.size
= mem_size
;
120 params
->buffer
.kernel
.pte
= __pte
;
121 params
->buffer
.kernel
.flags
= mem_flags
;
124 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
126 GXIO_MPIPE_OP_INIT_NOTIF_RING_AUX
);
129 EXPORT_SYMBOL(gxio_mpipe_init_notif_ring_aux
);
131 struct request_notif_ring_interrupt_param
{
132 union iorpc_interrupt interrupt
;
136 int gxio_mpipe_request_notif_ring_interrupt(gxio_mpipe_context_t
*context
,
137 int inter_x
, int inter_y
,
138 int inter_ipi
, int inter_event
,
141 struct request_notif_ring_interrupt_param temp
;
142 struct request_notif_ring_interrupt_param
*params
= &temp
;
144 params
->interrupt
.kernel
.x
= inter_x
;
145 params
->interrupt
.kernel
.y
= inter_y
;
146 params
->interrupt
.kernel
.ipi
= inter_ipi
;
147 params
->interrupt
.kernel
.event
= inter_event
;
150 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
152 GXIO_MPIPE_OP_REQUEST_NOTIF_RING_INTERRUPT
);
155 EXPORT_SYMBOL(gxio_mpipe_request_notif_ring_interrupt
);
157 struct enable_notif_ring_interrupt_param
{
161 int gxio_mpipe_enable_notif_ring_interrupt(gxio_mpipe_context_t
*context
,
164 struct enable_notif_ring_interrupt_param temp
;
165 struct enable_notif_ring_interrupt_param
*params
= &temp
;
169 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
171 GXIO_MPIPE_OP_ENABLE_NOTIF_RING_INTERRUPT
);
174 EXPORT_SYMBOL(gxio_mpipe_enable_notif_ring_interrupt
);
176 struct alloc_notif_groups_param
{
182 int gxio_mpipe_alloc_notif_groups(gxio_mpipe_context_t
*context
,
183 unsigned int count
, unsigned int first
,
186 struct alloc_notif_groups_param temp
;
187 struct alloc_notif_groups_param
*params
= &temp
;
189 params
->count
= count
;
190 params
->first
= first
;
191 params
->flags
= flags
;
193 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
194 sizeof(*params
), GXIO_MPIPE_OP_ALLOC_NOTIF_GROUPS
);
197 EXPORT_SYMBOL(gxio_mpipe_alloc_notif_groups
);
199 struct init_notif_group_param
{
201 gxio_mpipe_notif_group_bits_t bits
;
204 int gxio_mpipe_init_notif_group(gxio_mpipe_context_t
*context
,
206 gxio_mpipe_notif_group_bits_t bits
)
208 struct init_notif_group_param temp
;
209 struct init_notif_group_param
*params
= &temp
;
211 params
->group
= group
;
214 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
215 sizeof(*params
), GXIO_MPIPE_OP_INIT_NOTIF_GROUP
);
218 EXPORT_SYMBOL(gxio_mpipe_init_notif_group
);
220 struct alloc_buckets_param
{
226 int gxio_mpipe_alloc_buckets(gxio_mpipe_context_t
*context
, unsigned int count
,
227 unsigned int first
, unsigned int flags
)
229 struct alloc_buckets_param temp
;
230 struct alloc_buckets_param
*params
= &temp
;
232 params
->count
= count
;
233 params
->first
= first
;
234 params
->flags
= flags
;
236 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
237 sizeof(*params
), GXIO_MPIPE_OP_ALLOC_BUCKETS
);
240 EXPORT_SYMBOL(gxio_mpipe_alloc_buckets
);
242 struct init_bucket_param
{
244 MPIPE_LBL_INIT_DAT_BSTS_TBL_t bucket_info
;
247 int gxio_mpipe_init_bucket(gxio_mpipe_context_t
*context
, unsigned int bucket
,
248 MPIPE_LBL_INIT_DAT_BSTS_TBL_t bucket_info
)
250 struct init_bucket_param temp
;
251 struct init_bucket_param
*params
= &temp
;
253 params
->bucket
= bucket
;
254 params
->bucket_info
= bucket_info
;
256 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
257 sizeof(*params
), GXIO_MPIPE_OP_INIT_BUCKET
);
260 EXPORT_SYMBOL(gxio_mpipe_init_bucket
);
262 struct alloc_edma_rings_param
{
268 int gxio_mpipe_alloc_edma_rings(gxio_mpipe_context_t
*context
,
269 unsigned int count
, unsigned int first
,
272 struct alloc_edma_rings_param temp
;
273 struct alloc_edma_rings_param
*params
= &temp
;
275 params
->count
= count
;
276 params
->first
= first
;
277 params
->flags
= flags
;
279 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
280 sizeof(*params
), GXIO_MPIPE_OP_ALLOC_EDMA_RINGS
);
283 EXPORT_SYMBOL(gxio_mpipe_alloc_edma_rings
);
285 struct init_edma_ring_aux_param
{
286 union iorpc_mem_buffer buffer
;
288 unsigned int channel
;
291 int gxio_mpipe_init_edma_ring_aux(gxio_mpipe_context_t
*context
, void *mem_va
,
292 size_t mem_size
, unsigned int mem_flags
,
293 unsigned int ring
, unsigned int channel
)
296 unsigned long long __cpa
;
298 struct init_edma_ring_aux_param temp
;
299 struct init_edma_ring_aux_param
*params
= &temp
;
301 __result
= va_to_cpa_and_pte(mem_va
, &__cpa
, &__pte
);
304 params
->buffer
.kernel
.cpa
= __cpa
;
305 params
->buffer
.kernel
.size
= mem_size
;
306 params
->buffer
.kernel
.pte
= __pte
;
307 params
->buffer
.kernel
.flags
= mem_flags
;
309 params
->channel
= channel
;
311 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
312 sizeof(*params
), GXIO_MPIPE_OP_INIT_EDMA_RING_AUX
);
315 EXPORT_SYMBOL(gxio_mpipe_init_edma_ring_aux
);
318 int gxio_mpipe_commit_rules(gxio_mpipe_context_t
*context
, const void *blob
,
321 const void *params
= blob
;
323 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
, blob_size
,
324 GXIO_MPIPE_OP_COMMIT_RULES
);
327 EXPORT_SYMBOL(gxio_mpipe_commit_rules
);
329 struct register_client_memory_param
{
335 int gxio_mpipe_register_client_memory(gxio_mpipe_context_t
*context
,
336 unsigned int iotlb
, HV_PTE pte
,
339 struct register_client_memory_param temp
;
340 struct register_client_memory_param
*params
= &temp
;
342 params
->iotlb
= iotlb
;
344 params
->flags
= flags
;
346 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
348 GXIO_MPIPE_OP_REGISTER_CLIENT_MEMORY
);
351 EXPORT_SYMBOL(gxio_mpipe_register_client_memory
);
353 struct link_open_aux_param
{
354 _gxio_mpipe_link_name_t name
;
358 int gxio_mpipe_link_open_aux(gxio_mpipe_context_t
*context
,
359 _gxio_mpipe_link_name_t name
, unsigned int flags
)
361 struct link_open_aux_param temp
;
362 struct link_open_aux_param
*params
= &temp
;
365 params
->flags
= flags
;
367 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
368 sizeof(*params
), GXIO_MPIPE_OP_LINK_OPEN_AUX
);
371 EXPORT_SYMBOL(gxio_mpipe_link_open_aux
);
373 struct link_close_aux_param
{
377 int gxio_mpipe_link_close_aux(gxio_mpipe_context_t
*context
, int mac
)
379 struct link_close_aux_param temp
;
380 struct link_close_aux_param
*params
= &temp
;
384 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
385 sizeof(*params
), GXIO_MPIPE_OP_LINK_CLOSE_AUX
);
388 EXPORT_SYMBOL(gxio_mpipe_link_close_aux
);
390 struct link_set_attr_aux_param
{
396 int gxio_mpipe_link_set_attr_aux(gxio_mpipe_context_t
*context
, int mac
,
397 uint32_t attr
, int64_t val
)
399 struct link_set_attr_aux_param temp
;
400 struct link_set_attr_aux_param
*params
= &temp
;
406 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
407 sizeof(*params
), GXIO_MPIPE_OP_LINK_SET_ATTR_AUX
);
410 EXPORT_SYMBOL(gxio_mpipe_link_set_attr_aux
);
412 struct get_timestamp_aux_param
{
418 int gxio_mpipe_get_timestamp_aux(gxio_mpipe_context_t
*context
, uint64_t *sec
,
419 uint64_t *nsec
, uint64_t *cycles
)
422 struct get_timestamp_aux_param temp
;
423 struct get_timestamp_aux_param
*params
= &temp
;
426 hv_dev_pread(context
->fd
, 0, (HV_VirtAddr
) params
, sizeof(*params
),
427 GXIO_MPIPE_OP_GET_TIMESTAMP_AUX
);
429 *nsec
= params
->nsec
;
430 *cycles
= params
->cycles
;
435 EXPORT_SYMBOL(gxio_mpipe_get_timestamp_aux
);
437 struct set_timestamp_aux_param
{
443 int gxio_mpipe_set_timestamp_aux(gxio_mpipe_context_t
*context
, uint64_t sec
,
444 uint64_t nsec
, uint64_t cycles
)
446 struct set_timestamp_aux_param temp
;
447 struct set_timestamp_aux_param
*params
= &temp
;
451 params
->cycles
= cycles
;
453 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
454 sizeof(*params
), GXIO_MPIPE_OP_SET_TIMESTAMP_AUX
);
457 EXPORT_SYMBOL(gxio_mpipe_set_timestamp_aux
);
459 struct adjust_timestamp_aux_param
{
463 int gxio_mpipe_adjust_timestamp_aux(gxio_mpipe_context_t
*context
, int64_t nsec
)
465 struct adjust_timestamp_aux_param temp
;
466 struct adjust_timestamp_aux_param
*params
= &temp
;
470 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
472 GXIO_MPIPE_OP_ADJUST_TIMESTAMP_AUX
);
475 EXPORT_SYMBOL(gxio_mpipe_adjust_timestamp_aux
);
477 struct config_edma_ring_blks_param
{
479 unsigned int max_blks
;
480 unsigned int min_snf_blks
;
484 int gxio_mpipe_config_edma_ring_blks(gxio_mpipe_context_t
*context
,
485 unsigned int ering
, unsigned int max_blks
,
486 unsigned int min_snf_blks
, unsigned int db
)
488 struct config_edma_ring_blks_param temp
;
489 struct config_edma_ring_blks_param
*params
= &temp
;
491 params
->ering
= ering
;
492 params
->max_blks
= max_blks
;
493 params
->min_snf_blks
= min_snf_blks
;
496 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
498 GXIO_MPIPE_OP_CONFIG_EDMA_RING_BLKS
);
501 EXPORT_SYMBOL(gxio_mpipe_config_edma_ring_blks
);
503 struct adjust_timestamp_freq_param
{
507 int gxio_mpipe_adjust_timestamp_freq(gxio_mpipe_context_t
*context
, int32_t ppb
)
509 struct adjust_timestamp_freq_param temp
;
510 struct adjust_timestamp_freq_param
*params
= &temp
;
514 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
516 GXIO_MPIPE_OP_ADJUST_TIMESTAMP_FREQ
);
519 EXPORT_SYMBOL(gxio_mpipe_adjust_timestamp_freq
);
521 struct arm_pollfd_param
{
522 union iorpc_pollfd pollfd
;
525 int gxio_mpipe_arm_pollfd(gxio_mpipe_context_t
*context
, int pollfd_cookie
)
527 struct arm_pollfd_param temp
;
528 struct arm_pollfd_param
*params
= &temp
;
530 params
->pollfd
.kernel
.cookie
= pollfd_cookie
;
532 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
533 sizeof(*params
), GXIO_MPIPE_OP_ARM_POLLFD
);
536 EXPORT_SYMBOL(gxio_mpipe_arm_pollfd
);
538 struct close_pollfd_param
{
539 union iorpc_pollfd pollfd
;
542 int gxio_mpipe_close_pollfd(gxio_mpipe_context_t
*context
, int pollfd_cookie
)
544 struct close_pollfd_param temp
;
545 struct close_pollfd_param
*params
= &temp
;
547 params
->pollfd
.kernel
.cookie
= pollfd_cookie
;
549 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
550 sizeof(*params
), GXIO_MPIPE_OP_CLOSE_POLLFD
);
553 EXPORT_SYMBOL(gxio_mpipe_close_pollfd
);
555 struct get_mmio_base_param
{
559 int gxio_mpipe_get_mmio_base(gxio_mpipe_context_t
*context
, HV_PTE
*base
)
562 struct get_mmio_base_param temp
;
563 struct get_mmio_base_param
*params
= &temp
;
566 hv_dev_pread(context
->fd
, 0, (HV_VirtAddr
) params
, sizeof(*params
),
567 GXIO_MPIPE_OP_GET_MMIO_BASE
);
568 *base
= params
->base
;
573 EXPORT_SYMBOL(gxio_mpipe_get_mmio_base
);
575 struct check_mmio_offset_param
{
576 unsigned long offset
;
580 int gxio_mpipe_check_mmio_offset(gxio_mpipe_context_t
*context
,
581 unsigned long offset
, unsigned long size
)
583 struct check_mmio_offset_param temp
;
584 struct check_mmio_offset_param
*params
= &temp
;
586 params
->offset
= offset
;
589 return hv_dev_pwrite(context
->fd
, 0, (HV_VirtAddr
) params
,
590 sizeof(*params
), GXIO_MPIPE_OP_CHECK_MMIO_OFFSET
);
593 EXPORT_SYMBOL(gxio_mpipe_check_mmio_offset
);