summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1/tdma_sched.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-02-28 10:06:19 +0100
committerHarald Welte <laforge@gnumonks.org>2010-02-28 10:06:19 +0100
commit89e05fd346eec9a2202cb010ba5f60cdbfd23658 (patch)
treec93bc1021dc2286b20a1fbca6bccf8af108155a3 /src/target/firmware/layer1/tdma_sched.c
parentc468741500790d975422b45f32333c92549dc397 (diff)
tdma_sched: Explicitly advance the bucket at end of l1_sync()
Diffstat (limited to 'src/target/firmware/layer1/tdma_sched.c')
-rw-r--r--src/target/firmware/layer1/tdma_sched.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/target/firmware/layer1/tdma_sched.c b/src/target/firmware/layer1/tdma_sched.c
index 56174a90..0ed1a758 100644
--- a/src/target/firmware/layer1/tdma_sched.c
+++ b/src/target/firmware/layer1/tdma_sched.c
@@ -75,7 +75,7 @@ int tdma_schedule_set(uint8_t frame_offset, const struct tdma_sched_item *item_s
{
struct tdma_scheduler *sched = &l1s.tdma_sched;
uint8_t bucket_nr = wrap_bucket(frame_offset);
- int i = 0;
+ int i;
for (i = 0; 1; i++) {
const struct tdma_sched_item *sched_item = &item_set[i];
@@ -103,12 +103,22 @@ int tdma_schedule_set(uint8_t frame_offset, const struct tdma_sched_item *item_s
return i;
}
+/* Advance TDMA scheduler to the next bucket */
+void tdma_sched_advance(void)
+{
+ struct tdma_scheduler *sched = &l1s.tdma_sched;
+ uint8_t next_bucket;
+
+ /* advance to the next bucket */
+ next_bucket = wrap_bucket(1);
+ sched->cur_bucket = next_bucket;
+}
+
/* Execute pre-scheduled events for current frame */
int tdma_sched_execute(void)
{
struct tdma_scheduler *sched = &l1s.tdma_sched;
struct tdma_sched_bucket *bucket;
- uint8_t next_bucket;
int i, num_events = 0;
/* determine current bucket */
@@ -135,10 +145,6 @@ int tdma_sched_execute(void)
/* clear/reset the bucket */
bucket->num_items = 0;
- /* advance to the next bucket */
- next_bucket = wrap_bucket(1);
- sched->cur_bucket = next_bucket;
-
/* return number of items that we called */
return num_events;
}