33 #ifndef __TSCH_SLOT_OPERATION_H__
34 #define __TSCH_SLOT_OPERATION_H__
40 #include "net/mac/tsch/tsch-packet.h"
47 #ifdef TSCH_CONF_DEQUEUED_ARRAY_SIZE
48 #define TSCH_DEQUEUED_ARRAY_SIZE TSCH_CONF_DEQUEUED_ARRAY_SIZE
52 #if QUEUEBUF_CONF_NUM <= 4
53 #define TSCH_DEQUEUED_ARRAY_SIZE 4
54 #elif QUEUEBUF_CONF_NUM <= 8
55 #define TSCH_DEQUEUED_ARRAY_SIZE 8
56 #elif QUEUEBUF_CONF_NUM <= 16
57 #define TSCH_DEQUEUED_ARRAY_SIZE 16
58 #elif QUEUEBUF_CONF_NUM <= 32
59 #define TSCH_DEQUEUED_ARRAY_SIZE 32
60 #elif QUEUEBUF_CONF_NUM <= 64
61 #define TSCH_DEQUEUED_ARRAY_SIZE 64
62 #elif QUEUEBUF_CONF_NUM <= 128
63 #define TSCH_DEQUEUED_ARRAY_SIZE 128
65 #define TSCH_DEQUEUED_ARRAY_SIZE 256
71 #ifdef TSCH_CONF_MAX_INCOMING_PACKETS
72 #define TSCH_MAX_INCOMING_PACKETS TSCH_CONF_MAX_INCOMING_PACKETS
74 #define TSCH_MAX_INCOMING_PACKETS 4
81 #ifdef TSCH_CALLBACK_DO_NACK
82 int TSCH_CALLBACK_DO_NACK(
struct tsch_link *link, linkaddr_t *src, linkaddr_t *dst);
89 uint8_t payload[TSCH_PACKET_MAX_LEN];
99 extern struct ringbufindex dequeued_ringbuf;
100 extern struct tsch_packet *dequeued_array[TSCH_DEQUEUED_ARRAY_SIZE];
103 extern struct ringbufindex input_ringbuf;
104 extern struct input_packet input_array[TSCH_MAX_INCOMING_PACKETS];
109 uint8_t tsch_calculate_channel(
struct asn_t *asn, uint8_t channel_offset);
111 int tsch_is_locked(
void);
113 int tsch_get_lock(
void);
115 void tsch_release_lock(
void);
118 void tsch_slot_operation_sync(rtimer_clock_t next_slot_start,
119 struct asn_t *next_slot_asn);
121 void tsch_slot_operation_start(
void);
Private TSCH definitions (meant for use by TSCH implementation files only) ...
Header file for the ringbufindex library