diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-02-28 10:06:19 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-02-28 10:06:19 +0100 |
commit | 89e05fd346eec9a2202cb010ba5f60cdbfd23658 (patch) | |
tree | c93bc1021dc2286b20a1fbca6bccf8af108155a3 /src/target/firmware/layer1/tdma_sched.c | |
parent | c468741500790d975422b45f32333c92549dc397 (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.c | 18 |
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; } |