XCORE SDK
XCORE Software Development Kit
rtos_intertile.h
1 // Copyright 2020-2021 XMOS LIMITED.
2 // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3 
16 #ifndef RTOS_INTERTILE_H_
17 #define RTOS_INTERTILE_H_
18 
26 #include <xcore/channel.h>
27 #include <xcore/channel_transaction.h>
28 
29 #include "rtos_osal.h"
30 
36 typedef struct {
37  chanend_t c;
38 
39  size_t tx_len;
40  size_t rx_len;
41  rtos_osal_mutex_t lock;
42  rtos_osal_event_group_t event_group;
44 
50 typedef struct {
52  int port;
54 
63 void rtos_intertile_tx_len(
64  rtos_intertile_t *ctx,
65  uint8_t port,
66  size_t len);
67 size_t rtos_intertile_tx_data(
68  rtos_intertile_t *ctx,
69  void *data,
70  size_t len);
71 
83  rtos_intertile_t *ctx,
84  uint8_t port,
85  void *msg,
86  size_t len);
87 
88 size_t rtos_intertile_rx_len(
89  rtos_intertile_t *ctx,
90  uint8_t port,
91  unsigned timeout);
92 size_t rtos_intertile_rx_data(
93  rtos_intertile_t *ctx,
94  void *data,
95  size_t len);
96 
120 size_t rtos_intertile_rx(
121  rtos_intertile_t *ctx,
122  uint8_t port,
123  void **msg,
124  unsigned timeout);
125 
138  rtos_intertile_t *intertile_ctx);
139 
156  rtos_intertile_t *intertile_ctx,
157  chanend_t c);
158 
161 #endif /* RTOS_INTERTILE_H_ */
size_t rtos_intertile_rx(rtos_intertile_t *ctx, uint8_t port, void **msg, unsigned timeout)
Definition: rtos_intertile.c:99
void rtos_intertile_tx(rtos_intertile_t *ctx, uint8_t port, void *msg, size_t len)
Definition: rtos_intertile.c:54
void rtos_intertile_init(rtos_intertile_t *intertile_ctx, chanend_t c)
Definition: rtos_intertile.c:154
void rtos_intertile_start(rtos_intertile_t *intertile_ctx)
Definition: rtos_intertile.c:126
Definition: rtos_intertile.h:50
rtos_intertile_t * intertile_ctx
Definition: rtos_intertile.h:51
int port
Definition: rtos_intertile.h:52
Definition: rtos_intertile.h:36