From 44e92ed927c0c93e2177fc3638f2af501ebe9be6 Mon Sep 17 00:00:00 2001 From: bertrik Date: Sun, 18 Oct 2009 15:50:30 +0000 Subject: [PATCH] Use wrap-safe TIME_BEFORE/TIME_AFTER macros to compare times with current_time, instead of comparing them directly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23246 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/list.c | 3 +-- apps/plugins/brickmania.c | 6 +++--- apps/plugins/clix.c | 4 ++-- apps/plugins/invadrox.c | 2 +- apps/plugins/mandelbrot.c | 4 ++-- apps/plugins/pong.c | 24 ++++++++++++------------ apps/plugins/rockblox1d.c | 2 +- apps/plugins/spacerocks.c | 2 +- apps/plugins/xobox.c | 2 +- apps/tagcache.c | 2 +- firmware/common/timefuncs.c | 2 +- firmware/kernel.c | 2 +- firmware/target/arm/as3525/ata_sd_as3525.c | 2 +- firmware/target/arm/ipod/adc-ipod-pcf.c | 2 +- 14 files changed, 29 insertions(+), 30 deletions(-) diff --git a/apps/gui/list.c b/apps/gui/list.c index d7ecdccd3..a9d8ff6d9 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c @@ -599,8 +599,7 @@ bool gui_synclist_do_button(struct gui_synclist * lists, { if (!last_accel_tick) last_accel_tick = current_tick + start_delay; - else if (current_tick >= - last_accel_tick + accel_wait) + else if (TIME_AFTER(current_tick, last_accel_tick + accel_wait)) { last_accel_tick = current_tick; next_item_modifier++; diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 3f79f7c7d..9bf4cf2b0 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -1067,7 +1067,7 @@ static void brickmania_sleep(int secs) { if (count == 0) count = *rb->current_tick + HZ*secs; - if ( (*rb->current_tick >= count) && (vscore == score) ) + if ( (TIME_AFTER(*rb->current_tick, count)) && (vscore == score) ) done = true; if(vscore != score) @@ -1323,7 +1323,7 @@ static int brickmania_game_loop(void) if (flip_sides) { - if (*rb->current_tick>=sec_count) + if (TIME_AFTER(*rb->current_tick, sec_count)) { sec_count=*rb->current_tick+HZ; if (num_count!=0) @@ -2111,7 +2111,7 @@ static int brickmania_game_loop(void) rb->yield(); /* Sleep for a bit if there is time to spare */ - if (end > *rb->current_tick) + if (TIME_BEFORE(*rb->current_tick, end)) rb->sleep(end-*rb->current_tick); } return 0; diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index 9c53bdab7..68c56ec1d 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c @@ -684,7 +684,7 @@ static int clix_handle_game(struct clix_game_state_t* state) while(true) { - if (blink_tick < *rb->current_tick) { + if (TIME_AFTER(*rb->current_tick, blink_tick)) { state->blink = state->blink ? false : true; blink_tick = *rb->current_tick + BLINK_TICKCOUNT; } @@ -692,7 +692,7 @@ static int clix_handle_game(struct clix_game_state_t* state) time = 6; /* number of ticks this function will loop reading keys */ start = *rb->current_tick; end = start + time; - while(end > *rb->current_tick) + while(TIME_BEFORE(*rb->current_tick, end)) { oldx = state->x; oldy = state->y; diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 1886ed4b4..b3e5d164c 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c @@ -1751,7 +1751,7 @@ void game_loop(void) /* Wait until next frame */ DBG("%ld (%d)\n", end - *rb->current_tick, (CYCLETIME * HZ) / 1000); - if (end > *rb->current_tick) { + if (TIME_BEFORE(*rb->current_tick, end)) { rb->sleep(end - *rb->current_tick); } else { rb->yield(); diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c index 00542cbb1..dbab55579 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -643,7 +643,7 @@ void calc_mandelbrot_low_prec(void) /* be nice to other threads: * if at least one tick has passed, yield */ - if (*rb->current_tick > last_yield) { + if (TIME_AFTER(*rb->current_tick, last_yield)) { rb->yield(); last_yield = *rb->current_tick; } @@ -706,7 +706,7 @@ void calc_mandelbrot_high_prec(void) /* be nice to other threads: * if at least one tick has passed, yield */ - if (*rb->current_tick > last_yield) { + if (TIME_AFTER(*rb->current_tick, last_yield)) { rb->yield(); last_yield = *rb->current_tick; } diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index a6144d966..1c6f02eb0 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -450,21 +450,21 @@ int keys(struct pong *p) int start = *rb->current_tick; int end = start + time; - while(end > *rb->current_tick) { + while(TIME_BEFORE(*rb->current_tick, end)) { key = rb->button_get_w_tmo(end - *rb->current_tick); #ifdef HAVE_TOUCHSCREEN - short touch_x, touch_y; - if(key & BUTTON_TOUCHSCREEN) - { - touch_x = rb->button_get_data() >> 16; - touch_y = rb->button_get_data() & 0xFFFF; - if(touch_x >= xpos[0] && touch_x <= xpos[0]+(PAD_WIDTH*4)) - padmove(&p->w_pad[0], touch_y-(p->e_pad[0]*2+PAD_HEIGHT)/2); - - if(touch_x >= xpos[1]-(PAD_WIDTH*4) && touch_x <= xpos[1]) - padmove(&p->w_pad[1], touch_y-(p->e_pad[1]*2+PAD_HEIGHT)/2); - } + short touch_x, touch_y; + if(key & BUTTON_TOUCHSCREEN) + { + touch_x = rb->button_get_data() >> 16; + touch_y = rb->button_get_data() & 0xFFFF; + if(touch_x >= xpos[0] && touch_x <= xpos[0]+(PAD_WIDTH*4)) + padmove(&p->w_pad[0], touch_y-(p->e_pad[0]*2+PAD_HEIGHT)/2); + + if(touch_x >= xpos[1]-(PAD_WIDTH*4) && touch_x <= xpos[1]) + padmove(&p->w_pad[1], touch_y-(p->e_pad[1]*2+PAD_HEIGHT)/2); + } #endif #ifdef HAS_BUTTON_HOLD diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c index 12f05bb63..441615845 100644 --- a/apps/plugins/rockblox1d.c +++ b/apps/plugins/rockblox1d.c @@ -302,7 +302,7 @@ enum plugin_status plugin_start(const void* parameter) ++pos_cur_brick; } - if (end > *rb->current_tick) + if (TIME_BEFORE(*rb->current_tick, end)) rb->sleep(end-*rb->current_tick); else rb->yield(); diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index ded3900b0..0061967f8 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -2059,7 +2059,7 @@ static int spacerocks_game_loop(void) if(next_thrust_count) next_thrust_count--; - if (end > *rb->current_tick) + if (TIME_BEFORE(*rb->current_tick, end)) rb->sleep(end-*rb->current_tick); else rb->yield(); diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index 3b7ada31f..423322098 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -1045,7 +1045,7 @@ static int xobox_loop (void) } } - if (end > *rb->current_tick) + if (TIME_BEFORE(*rb->current_tick, end)) rb->sleep (end - *rb->current_tick); else rb->yield (); diff --git a/apps/tagcache.c b/apps/tagcache.c index 4d4935a6b..a5df2f0ad 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c @@ -352,7 +352,7 @@ static bool do_timed_yield(void) { /* Sorting can lock up for quite a while, so yield occasionally */ static long wakeup_tick = 0; - if (current_tick >= wakeup_tick) + if (TIME_AFTER(current_tick, wakeup_tick)) { wakeup_tick = current_tick + (HZ/4); yield(); diff --git a/firmware/common/timefuncs.c b/firmware/common/timefuncs.c index eef804d30..e423e016f 100644 --- a/firmware/common/timefuncs.c +++ b/firmware/common/timefuncs.c @@ -64,7 +64,7 @@ struct tm *get_time(void) static long timeout = 0; /* Don't read the RTC more than once per second */ - if (current_tick > timeout) + if (TIME_AFTER(current_tick, timeout)) { /* Once per second, 1/10th of a second off */ timeout = HZ * (current_tick / HZ + 1) + HZ / 5; diff --git a/firmware/kernel.c b/firmware/kernel.c index 506725ee7..d076d6def 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c @@ -261,7 +261,7 @@ void sleep(int ticks) #elif defined(CREATIVE_ZVx) && defined(BOOTLOADER) /* hacky.. */ long sleep_ticks = current_tick + ticks + 1; - while (sleep_ticks > current_tick) + while (TIME_BEFORE(current_tick, sleep_ticks)) switch_thread(); #else disable_irq(); diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c index 57dc307e7..ee4b8c015 100644 --- a/firmware/target/arm/as3525/ata_sd_as3525.c +++ b/firmware/target/arm/as3525/ata_sd_as3525.c @@ -261,7 +261,7 @@ static int sd_init_card(const int drive) do { /* timeout */ - if(current_tick > init_timeout) + if(TIME_AFTER(current_tick, init_timeout)) return -2; /* app_cmd */ diff --git a/firmware/target/arm/ipod/adc-ipod-pcf.c b/firmware/target/arm/ipod/adc-ipod-pcf.c index 65b25c36a..e4a54e09f 100644 --- a/firmware/target/arm/ipod/adc-ipod-pcf.c +++ b/firmware/target/arm/ipod/adc-ipod-pcf.c @@ -39,7 +39,7 @@ static struct adc_struct adcdata[NUM_ADC_CHANNELS] IDATA_ATTR; static unsigned short _adc_read(struct adc_struct *adc) { - if (adc->timeout < current_tick) { + if (TIME_AFTER(current_tick, adc->timeout)) { unsigned char data[2]; unsigned short value; -- 2.11.4.GIT