Convert queues to use intptr_t for event data and return values as most of the time pointer are not passed and it should make some things a bit cleaner.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11818 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2006-12-19 16:50:07 +00:00
parent d152b6492a
commit 4b902679cc
17 changed files with 124 additions and 123 deletions

View file

@ -340,7 +340,7 @@ void mp3_play_data(const unsigned char* start, int size,
LOGFQUEUE("mp3 > voice Q_VOICE_STOP");
queue_post(&voice_queue, Q_VOICE_STOP, 0);
LOGFQUEUE("mp3 > voice Q_VOICE_PLAY");
queue_post(&voice_queue, Q_VOICE_PLAY, &voice_clip);
queue_post(&voice_queue, Q_VOICE_PLAY, (intptr_t)&voice_clip);
voice_thread_start = true;
trigger_cpu_boost();
#else
@ -355,7 +355,7 @@ void mp3_play_stop(void)
#ifdef PLAYBACK_VOICE
queue_remove_from_head(&voice_queue, Q_VOICE_STOP);
LOGFQUEUE("mp3 > voice Q_VOICE_STOP");
queue_post(&voice_queue, Q_VOICE_STOP, (void *)1);
queue_post(&voice_queue, Q_VOICE_STOP, 1);
#endif
}
@ -500,7 +500,7 @@ bool audio_load_encoder(int afmt)
ci.enc_codec_loaded = 0; /* clear any previous error condition */
LOGFQUEUE("audio > Q_AUDIO_LOAD_ENCODER");
queue_post(&audio_queue, Q_AUDIO_LOAD_ENCODER, (void *)enc_fn);
queue_post(&audio_queue, Q_AUDIO_LOAD_ENCODER, (intptr_t)enc_fn);
while (ci.enc_codec_loaded == 0)
yield();
@ -601,7 +601,7 @@ void audio_play(long offset)
/* Truncate any existing voice output so we don't have spelling
* etc. over the first part of the played track */
LOGFQUEUE("mp3 > voice Q_VOICE_STOP");
queue_post(&voice_queue, Q_VOICE_STOP, (void *)1);
queue_post(&voice_queue, Q_VOICE_STOP, 1);
#endif
/* Start playback */
@ -615,7 +615,7 @@ void audio_play(long offset)
LOGFQUEUE("audio > audio Q_AUDIO_STOP");
queue_post(&audio_queue, Q_AUDIO_STOP, 0);
LOGFQUEUE("audio > audio Q_AUDIO_PLAY");
queue_post(&audio_queue, Q_AUDIO_PLAY, (void *)offset);
queue_post(&audio_queue, Q_AUDIO_PLAY, offset);
}
/* Don't return until playback has actually started */
@ -637,13 +637,13 @@ void audio_stop(void)
void audio_pause(void)
{
LOGFQUEUE("audio > audio Q_AUDIO_PAUSE");
queue_post(&audio_queue, Q_AUDIO_PAUSE, (void *)true);
queue_post(&audio_queue, Q_AUDIO_PAUSE, true);
}
void audio_resume(void)
{
LOGFQUEUE("audio > audio Q_AUDIO_PAUSE resume");
queue_post(&audio_queue, Q_AUDIO_PAUSE, (void *)false);
queue_post(&audio_queue, Q_AUDIO_PAUSE, false);
}
void audio_next(void)
@ -654,7 +654,7 @@ void audio_next(void)
pcmbuf_beep(5000, 100, 2500*global_settings.beep);
LOGFQUEUE("audio > audio Q_AUDIO_SKIP 1");
queue_post(&audio_queue, Q_AUDIO_SKIP, (void *)1);
queue_post(&audio_queue, Q_AUDIO_SKIP, 1);
/* Keep wps fast while our message travels inside deep playback queues. */
wps_offset++;
track_changed = true;
@ -675,7 +675,7 @@ void audio_prev(void)
pcmbuf_beep(5000, 100, 2500*global_settings.beep);
LOGFQUEUE("audio > audio Q_AUDIO_SKIP -1");
queue_post(&audio_queue, Q_AUDIO_SKIP, (void *)-1);
queue_post(&audio_queue, Q_AUDIO_SKIP, -1);
/* Keep wps fast while our message travels inside deep playback queues. */
wps_offset--;
track_changed = true;
@ -691,13 +691,13 @@ void audio_prev(void)
void audio_next_dir(void)
{
LOGFQUEUE("audio > audio Q_AUDIO_DIR_SKIP 1");
queue_post(&audio_queue, Q_AUDIO_DIR_SKIP, (void *)1);
queue_post(&audio_queue, Q_AUDIO_DIR_SKIP, 1);
}
void audio_prev_dir(void)
{
LOGFQUEUE("audio > audio Q_AUDIO_DIR_SKIP -1");
queue_post(&audio_queue, Q_AUDIO_DIR_SKIP, (void *)-1);
queue_post(&audio_queue, Q_AUDIO_DIR_SKIP, -1);
}
void audio_pre_ff_rewind(void)
@ -709,7 +709,7 @@ void audio_pre_ff_rewind(void)
void audio_ff_rewind(long newpos)
{
LOGFQUEUE("audio > audio Q_AUDIO_FF_REWIND");
queue_post(&audio_queue, Q_AUDIO_FF_REWIND, (int *)newpos);
queue_post(&audio_queue, Q_AUDIO_FF_REWIND, newpos);
}
void audio_flush_and_reload_tracks(void)
@ -1139,7 +1139,7 @@ static void* voice_request_buffer_callback(size_t *realsize, size_t reqsize)
case Q_VOICE_STOP:
LOGFQUEUE("voice < Q_VOICE_STOP");
if (ev.data == (void *)1 && !playing && pcm_is_playing())
if (ev.data == 1 && !playing && pcm_is_playing())
{
/* Aborting: Slight hack - flush PCM buffer if
only being used for voice */
@ -1192,7 +1192,7 @@ static void* voice_request_buffer_callback(size_t *realsize, size_t reqsize)
voice_is_playing = true;
trigger_cpu_boost();
voice_data = ev.data;
voice_data = (struct voice_info *)ev.data;
voice_remaining = voice_data->size;
voicebuf = voice_data->buf;
voice_getmore = voice_data->callback;
@ -1573,11 +1573,11 @@ static void codec_advance_buffer_callback(size_t amount)
if (amount > CUR_TI->available)
{
int result;
intptr_t result;
LOGFQUEUE("codec >| audio Q_AUDIO_REBUFFER_SEEK");
result = (int)(intptr_t)queue_send(&audio_queue, Q_AUDIO_REBUFFER_SEEK,
(void *)(uintptr_t)(ci.curpos + amount));
result = queue_send(&audio_queue, Q_AUDIO_REBUFFER_SEEK,
ci.curpos + amount);
switch (result)
{
@ -1716,11 +1716,10 @@ static bool codec_seek_buffer_callback(size_t newpos)
/* We need to reload the song. */
if (newpos < CUR_TI->start_pos)
{
int result;
intptr_t result;
LOGFQUEUE("codec >| audio Q_AUDIO_REBUFFER_SEEK");
result = (int)(intptr_t)queue_send(&audio_queue, Q_AUDIO_REBUFFER_SEEK,
(void *)(uintptr_t)newpos);
result = queue_send(&audio_queue, Q_AUDIO_REBUFFER_SEEK, newpos);
switch (result)
{
@ -1851,7 +1850,7 @@ static void codec_track_skip_done(bool was_manual)
static bool codec_load_next_track(void)
{
int result;
intptr_t result;
prev_track_elapsed = CUR_TI->id3.elapsed;
@ -1872,8 +1871,7 @@ static bool codec_load_next_track(void)
trigger_cpu_boost();
LOGFQUEUE("codec >| audio Q_AUDIO_CHECK_NEW_TRACK");
result = (int)(intptr_t)queue_send(&audio_queue, Q_AUDIO_CHECK_NEW_TRACK,
NULL);
result = queue_send(&audio_queue, Q_AUDIO_CHECK_NEW_TRACK, 0);
#if 0 /* Q_CODEC_REQUEST_PENDING never posted anyway */
while (1)
@ -2007,7 +2005,7 @@ static void codec_thread(void)
if (voice_codec_loaded && current_codec == CODEC_IDX_VOICE)
{
LOGFQUEUE("codec > voice Q_ENCODER_RECORD");
queue_post(&voice_queue, Q_ENCODER_RECORD, NULL);
queue_post(&voice_queue, Q_ENCODER_RECORD, 0);
}
mutex_lock(&mutex_codecthread);
#endif
@ -2097,7 +2095,7 @@ static void codec_thread(void)
const char *codec_fn = get_codec_filename(CUR_TI->id3.codectype);
LOGFQUEUE("codec > codec Q_CODEC_LOAD_DISK");
queue_post(&codec_queue, Q_CODEC_LOAD_DISK,
(void *)codec_fn);
(intptr_t)codec_fn);
}
}
break;
@ -2533,7 +2531,7 @@ static bool audio_loadcodec(bool start_play)
ci.taginfo_ready = &CUR_TI->taginfo_ready;
ci.curpos = 0;
LOGFQUEUE("codec > codec Q_CODEC_LOAD_DISK");
queue_post(&codec_queue, Q_CODEC_LOAD_DISK, (void *)codec_fn);
queue_post(&codec_queue, Q_CODEC_LOAD_DISK, (intptr_t)codec_fn);
return true;
}
else
@ -3569,7 +3567,7 @@ static void audio_thread(void)
while (1)
{
void *result = NULL;
intptr_t result = 0;
if (filling)
{
@ -3643,18 +3641,18 @@ static void audio_thread(void)
case Q_AUDIO_REBUFFER_SEEK:
LOGFQUEUE("audio < Q_AUDIO_REBUFFER_SEEK");
result = (void *)(intptr_t)audio_rebuffer_and_seek((size_t)ev.data);
result = audio_rebuffer_and_seek(ev.data);
break;
case Q_AUDIO_CHECK_NEW_TRACK:
LOGFQUEUE("audio < Q_AUDIO_CHECK_NEW_TRACK");
result = (void *)(intptr_t)audio_check_new_track();
result = audio_check_new_track();
break;
case Q_AUDIO_DIR_SKIP:
LOGFQUEUE("audio < Q_AUDIO_DIR_SKIP");
playlist_end = false;
audio_initiate_dir_change((long)ev.data);
audio_initiate_dir_change(ev.data);
break;
case Q_AUDIO_NEW_PLAYLIST:

View file

@ -354,7 +354,7 @@ struct plugin_api {
#endif
void (*queue_init)(struct event_queue *q, bool register_queue);
void (*queue_delete)(struct event_queue *q);
void (*queue_post)(struct event_queue *q, long id, void *data);
void (*queue_post)(struct event_queue *q, long id, intptr_t data);
void (*queue_wait_w_tmo)(struct event_queue *q, struct event *ev,
int ticks);
void (*usb_acknowledge)(long id);

View file

@ -141,7 +141,7 @@ bool exit_tsr(bool reenter)
exit = false;
if (exit)
{
rb->queue_post(&thread_q, EV_EXIT, NULL);
rb->queue_post(&thread_q, EV_EXIT, 0);
while (!s_thread.ended)
rb->yield();
/* remove the thread's queue from the broadcast list */

View file

@ -213,7 +213,7 @@ static void backlight_isr(void)
if (idle)
{
#ifdef CPU_COLDFIRE
queue_post(&backlight_queue, BACKLIGHT_UNBOOST_CPU, NULL);
queue_post(&backlight_queue, BACKLIGHT_UNBOOST_CPU, 0);
#endif
timer_unregister();
bl_timer_active = false;
@ -530,7 +530,7 @@ static void backlight_tick(void)
if(lcd_sleep_timer == 0)
{
/* Queue on bl thread or freeze! */
queue_post(&backlight_queue, LCD_SLEEP, NULL);
queue_post(&backlight_queue, LCD_SLEEP, 0);
}
}
#endif /* HAVE_LCD_SLEEP */
@ -579,7 +579,7 @@ void x5_backlight_shutdown(void)
queue_empty(&backlight_queue);
tick_remove_task(backlight_tick);
/* Next time the thread runs, if at all, it will just remove itself. */
queue_post(&backlight_queue, BACKLIGHT_QUIT, NULL);
queue_post(&backlight_queue, BACKLIGHT_QUIT, 0);
__backlight_on();
}
#endif /* X5_BACKLIGHT_SHUTDOWN */
@ -587,12 +587,12 @@ void x5_backlight_shutdown(void)
void backlight_on(void)
{
queue_remove_from_head(&backlight_queue, BACKLIGHT_ON);
queue_post(&backlight_queue, BACKLIGHT_ON, NULL);
queue_post(&backlight_queue, BACKLIGHT_ON, 0);
}
void backlight_off(void)
{
queue_post(&backlight_queue, BACKLIGHT_OFF, NULL);
queue_post(&backlight_queue, BACKLIGHT_OFF, 0);
}
/* returns true when the backlight is on OR when it's set to always off */
@ -692,12 +692,12 @@ void lcd_set_sleep_after_backlight_off(int index)
#ifdef HAVE_REMOTE_LCD
void remote_backlight_on(void)
{
queue_post(&backlight_queue, REMOTE_BACKLIGHT_ON, NULL);
queue_post(&backlight_queue, REMOTE_BACKLIGHT_ON, 0);
}
void remote_backlight_off(void)
{
queue_post(&backlight_queue, REMOTE_BACKLIGHT_OFF, NULL);
queue_post(&backlight_queue, REMOTE_BACKLIGHT_OFF, 0);
}
void remote_backlight_set_timeout(int index)

View file

@ -571,7 +571,7 @@ static int ata_perform_sleep(void)
void ata_sleep(void)
{
queue_post(&ata_queue, Q_SLEEP, NULL);
queue_post(&ata_queue, Q_SLEEP, 0);
}
void ata_sleepnow(void)

View file

@ -85,7 +85,7 @@ static void button_tick(void)
btn = remote_control_rx();
if(btn)
{
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
}
#endif
@ -94,13 +94,13 @@ static void button_tick(void)
{
if (! phones_present )
{
queue_post(&button_queue, SYS_PHONE_PLUGGED, NULL);
queue_post(&button_queue, SYS_PHONE_PLUGGED, 0);
phones_present = true;
}
} else {
if ( phones_present )
{
queue_post(&button_queue, SYS_PHONE_UNPLUGGED, NULL);
queue_post(&button_queue, SYS_PHONE_UNPLUGGED, 0);
phones_present = false;
}
}
@ -116,17 +116,17 @@ static void button_tick(void)
#ifdef HAVE_REMOTE_LCD
if(diff & BUTTON_REMOTE)
if(!skip_remote_release)
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
else
skip_remote_release = false;
else
#endif
if(!skip_release)
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
else
skip_release = false;
#else
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
#endif
}
else
@ -201,7 +201,7 @@ static void button_tick(void)
* to avoid afterscroll effects. */
if (queue_empty(&button_queue))
{
queue_post(&button_queue, BUTTON_REPEAT | btn, NULL);
queue_post(&button_queue, BUTTON_REPEAT | btn, 0);
#ifdef CONFIG_BACKLIGHT
#ifdef HAVE_REMOTE_LCD
skip_remote_release = false;
@ -221,18 +221,18 @@ static void button_tick(void)
|| (remote_type()==REMOTETYPE_H300_NONLCD)
#endif
)
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
else
skip_remote_release = true;
}
else
#endif
if (!filter_first_keypress || is_backlight_on())
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
else
skip_release = true;
#else /* no backlight, nothing to skip */
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
#endif
post = false;
}

View file

@ -20,6 +20,7 @@
#define _KERNEL_H_
#include <stdbool.h>
#include <inttypes.h>
#include "config.h"
/* wrap-safe macros for tick comparison */
@ -51,15 +52,15 @@
struct event
{
long id;
void *data;
long id;
intptr_t data;
};
#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
struct queue_sender
{
struct thread_entry *thread;
void *retval;
intptr_t retval;
};
struct queue_sender_list
@ -112,17 +113,17 @@ extern void queue_init(struct event_queue *q, bool register_queue);
extern void queue_delete(struct event_queue *q);
extern void queue_wait(struct event_queue *q, struct event *ev);
extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks);
extern void queue_post(struct event_queue *q, long id, void *data);
extern void queue_post(struct event_queue *q, long id, intptr_t data);
#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
extern void queue_enable_queue_send(struct event_queue *q, struct queue_sender_list *send);
extern void * queue_send(struct event_queue *q, long id, void *data);
extern void queue_reply(struct event_queue *q, void *retval);
extern intptr_t queue_send(struct event_queue *q, long id, intptr_t data);
extern void queue_reply(struct event_queue *q, intptr_t retval);
extern bool queue_in_queue_send(struct event_queue *q);
#endif /* HAVE_EXTENDED_MESSAGING_AND_NAME */
extern bool queue_empty(const struct event_queue* q);
extern void queue_clear(struct event_queue* q);
extern void queue_remove_from_head(struct event_queue *q, long id);
extern int queue_broadcast(long id, void *data);
extern int queue_broadcast(long id, intptr_t data);
extern void mutex_init(struct mutex *m);
extern void mutex_lock(struct mutex *m);

View file

@ -107,7 +107,8 @@ static void queue_fetch_sender(struct queue_sender_list *send,
/* Puts the specified return value in the waiting thread's return value
and wakes the thread - a sender should be confirmed to exist first */
static void queue_release_sender(struct queue_sender **sender, void *retval)
static void queue_release_sender(struct queue_sender **sender,
intptr_t retval)
{
(*sender)->retval = retval;
wakeup_thread(&(*sender)->thread);
@ -127,7 +128,7 @@ static void queue_release_all_senders(struct event_queue *q)
&q->send->senders[i & QUEUE_LENGTH_MASK];
if(*spp)
{
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
}
@ -242,7 +243,7 @@ void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks)
}
}
void queue_post(struct event_queue *q, long id, void *data)
void queue_post(struct event_queue *q, long id, intptr_t data)
{
int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL);
unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@ -258,7 +259,7 @@ void queue_post(struct event_queue *q, long id, void *data)
if(*spp)
{
/* overflow protect - unblock any thread waiting at this index */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
#endif
@ -268,7 +269,7 @@ void queue_post(struct event_queue *q, long id, void *data)
}
#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
void * queue_send(struct event_queue *q, long id, void *data)
intptr_t queue_send(struct event_queue *q, long id, intptr_t data)
{
int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL);
unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@ -284,7 +285,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
if(*spp)
{
/* overflow protect - unblock any thread waiting at this index */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
*spp = &sender;
@ -298,7 +299,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
/* Function as queue_post if sending is not enabled */
wakeup_thread(&q->thread);
set_irq_level(oldlevel);
return NULL;
return 0;
}
#if 0 /* not used now but probably will be later */
@ -310,7 +311,7 @@ bool queue_in_queue_send(struct event_queue *q)
#endif
/* Replies with retval to any dequeued message sent with queue_send */
void queue_reply(struct event_queue *q, void *retval)
void queue_reply(struct event_queue *q, intptr_t retval)
{
if(q->send && q->send->curr_sender)
{
@ -360,7 +361,7 @@ void queue_remove_from_head(struct event_queue *q, long id)
if(*spp)
{
/* Release any thread waiting on this message */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
#endif
@ -370,7 +371,7 @@ void queue_remove_from_head(struct event_queue *q, long id)
set_irq_level(oldlevel);
}
int queue_broadcast(long id, void *data)
int queue_broadcast(long id, intptr_t data)
{
int i;

View file

@ -89,7 +89,7 @@ extern int playlist_update_resume_info(const struct mp3entry* id3);
#define MPEG_PRERECORDING_TICK 104
/* indicator for MPEG_NEED_DATA */
#define GENERATE_UNBUFFER_EVENTS ((void*)1)
#define GENERATE_UNBUFFER_EVENTS 1
/* list of tracks in memory */
#define MAX_TRACK_ENTRIES (1<<4) /* Must be power of 2 */
@ -2006,7 +2006,7 @@ static void mpeg_thread(void)
break;
case STOP_RECORDING:
queue_post(&mpeg_queue, MPEG_STOP_DONE, NULL);
queue_post(&mpeg_queue, MPEG_STOP_DONE, 0);
/* will close the file */
break;
@ -2123,7 +2123,7 @@ bool audio_has_changed_track(void)
void audio_init_playback(void)
{
init_playback_done = false;
queue_post(&mpeg_queue, MPEG_INIT_PLAYBACK, NULL);
queue_post(&mpeg_queue, MPEG_INIT_PLAYBACK, 0);
while(!init_playback_done)
sleep_thread(1);
@ -2137,7 +2137,7 @@ void audio_init_recording(unsigned int buffer_offset)
{
buffer_offset = buffer_offset;
init_recording_done = false;
queue_post(&mpeg_queue, MPEG_INIT_RECORDING, NULL);
queue_post(&mpeg_queue, MPEG_INIT_RECORDING, 0);
while(!init_recording_done)
sleep_thread(1);
@ -2256,17 +2256,17 @@ void audio_record(const char *filename)
strncpy(recording_filename, filename, MAX_PATH - 1);
recording_filename[MAX_PATH - 1] = 0;
queue_post(&mpeg_queue, MPEG_RECORD, NULL);
queue_post(&mpeg_queue, MPEG_RECORD, 0);
}
void audio_pause_recording(void)
{
queue_post(&mpeg_queue, MPEG_PAUSE_RECORDING, NULL);
queue_post(&mpeg_queue, MPEG_PAUSE_RECORDING, 0);
}
void audio_resume_recording(void)
{
queue_post(&mpeg_queue, MPEG_RESUME_RECORDING, NULL);
queue_post(&mpeg_queue, MPEG_RESUME_RECORDING, 0);
}
static void prepend_header(void)
@ -2569,7 +2569,7 @@ void audio_new_file(const char *filename)
strncpy(recording_filename, filename, MAX_PATH - 1);
recording_filename[MAX_PATH - 1] = 0;
queue_post(&mpeg_queue, MPEG_NEW_FILE, NULL);
queue_post(&mpeg_queue, MPEG_NEW_FILE, 0);
}
unsigned long audio_recorded_time(void)
@ -2707,7 +2707,7 @@ void audio_play(long offset)
#else /* !SIMULATOR */
is_playing = true;
queue_post(&mpeg_queue, MPEG_PLAY, (void*)offset);
queue_post(&mpeg_queue, MPEG_PLAY, offset);
#endif /* !SIMULATOR */
mpeg_errno = 0;
@ -2717,7 +2717,7 @@ void audio_stop(void)
{
#ifndef SIMULATOR
mpeg_stop_done = false;
queue_post(&mpeg_queue, MPEG_STOP, NULL);
queue_post(&mpeg_queue, MPEG_STOP, 0);
while(!mpeg_stop_done)
yield();
#else /* SIMULATOR */
@ -2736,7 +2736,7 @@ void audio_stop_recording(void)
void audio_pause(void)
{
#ifndef SIMULATOR
queue_post(&mpeg_queue, MPEG_PAUSE, NULL);
queue_post(&mpeg_queue, MPEG_PAUSE, 0);
#else /* SIMULATOR */
is_playing = true;
playing = false;
@ -2747,7 +2747,7 @@ void audio_pause(void)
void audio_resume(void)
{
#ifndef SIMULATOR
queue_post(&mpeg_queue, MPEG_RESUME, NULL);
queue_post(&mpeg_queue, MPEG_RESUME, 0);
#else /* SIMULATOR */
is_playing = true;
playing = true;
@ -2759,7 +2759,7 @@ void audio_next(void)
{
#ifndef SIMULATOR
queue_remove_from_head(&mpeg_queue, MPEG_NEED_DATA);
queue_post(&mpeg_queue, MPEG_NEXT, NULL);
queue_post(&mpeg_queue, MPEG_NEXT, 0);
#else /* SIMULATOR */
char* file;
int steps = 1;
@ -2788,7 +2788,7 @@ void audio_prev(void)
{
#ifndef SIMULATOR
queue_remove_from_head(&mpeg_queue, MPEG_NEED_DATA);
queue_post(&mpeg_queue, MPEG_PREV, NULL);
queue_post(&mpeg_queue, MPEG_PREV, 0);
#else /* SIMULATOR */
char* file;
int steps = -1;
@ -2815,7 +2815,7 @@ void audio_prev(void)
void audio_ff_rewind(long newtime)
{
#ifndef SIMULATOR
queue_post(&mpeg_queue, MPEG_FF_REWIND, (void *)newtime);
queue_post(&mpeg_queue, MPEG_FF_REWIND, newtime);
#else /* SIMULATOR */
(void)newtime;
#endif /* SIMULATOR */
@ -2824,7 +2824,7 @@ void audio_ff_rewind(long newtime)
void audio_flush_and_reload_tracks(void)
{
#ifndef SIMULATOR
queue_post(&mpeg_queue, MPEG_FLUSH_RELOAD, NULL);
queue_post(&mpeg_queue, MPEG_FLUSH_RELOAD, 0);
#endif /* !SIMULATOR*/
}

View file

@ -249,7 +249,7 @@ static int pcm_rec_have_more(int status)
if (status == DMA_REC_ERROR_DMA)
{
/* Flush recorded data to disk and stop recording */
queue_post(&pcmrec_queue, PCMREC_STOP, NULL);
queue_post(&pcmrec_queue, PCMREC_STOP, 0);
return -1;
}
/* else try again next transmission */
@ -388,7 +388,7 @@ void pcm_rec_init(void)
void audio_init_recording(unsigned int buffer_offset)
{
logf("audio_init_recording");
queue_send(&pcmrec_queue, PCMREC_INIT, NULL);
queue_send(&pcmrec_queue, PCMREC_INIT, 0);
logf("audio_init_recording done");
(void)buffer_offset;
} /* audio_init_recording */
@ -399,7 +399,7 @@ void audio_init_recording(unsigned int buffer_offset)
void audio_close_recording(void)
{
logf("audio_close_recording");
queue_send(&pcmrec_queue, PCMREC_CLOSE, NULL);
queue_send(&pcmrec_queue, PCMREC_CLOSE, 0);
logf("audio_close_recording done");
} /* audio_close_recording */
@ -409,7 +409,7 @@ void audio_close_recording(void)
void audio_set_recording_options(struct audio_recording_options *options)
{
logf("audio_set_recording_options");
queue_send(&pcmrec_queue, PCMREC_OPTIONS, (void *)options);
queue_send(&pcmrec_queue, PCMREC_OPTIONS, (intptr_t)options);
logf("audio_set_recording_options done");
} /* audio_set_recording_options */
@ -419,7 +419,7 @@ void audio_set_recording_options(struct audio_recording_options *options)
void audio_record(const char *filename)
{
logf("audio_record: %s", filename);
queue_send(&pcmrec_queue, PCMREC_RECORD, (void *)filename);
queue_send(&pcmrec_queue, PCMREC_RECORD, (intptr_t)filename);
logf("audio_record_done");
} /* audio_record */
@ -429,7 +429,7 @@ void audio_record(const char *filename)
void audio_stop_recording(void)
{
logf("audio_stop_recording");
queue_send(&pcmrec_queue, PCMREC_STOP, NULL);
queue_send(&pcmrec_queue, PCMREC_STOP, 0);
logf("audio_stop_recording done");
} /* audio_stop_recording */
@ -439,7 +439,7 @@ void audio_stop_recording(void)
void audio_pause_recording(void)
{
logf("audio_pause_recording");
queue_send(&pcmrec_queue, PCMREC_PAUSE, NULL);
queue_send(&pcmrec_queue, PCMREC_PAUSE, 0);
logf("audio_pause_recording done");
} /* audio_pause_recording */
@ -449,7 +449,7 @@ void audio_pause_recording(void)
void audio_resume_recording(void)
{
logf("audio_resume_recording");
queue_send(&pcmrec_queue, PCMREC_RESUME, NULL);
queue_send(&pcmrec_queue, PCMREC_RESUME, 0);
logf("audio_resume_recording done");
} /* audio_resume_recording */
@ -1069,7 +1069,7 @@ static void pcmrec_new_stream(const char *filename, /* next file name */
flush will hang the screen for a bit otherwise */
strncpy(buf, filename, MAX_PATH);
filename = buf;
queue_reply(&pcmrec_queue, NULL);
queue_reply(&pcmrec_queue, 0);
pcmrec_flush(-1);
}
@ -1182,7 +1182,7 @@ static void pcmrec_set_recording_options(struct audio_recording_options *options
/* apply pcm settings to hardware */
pcm_apply_settings(true);
queue_reply(&pcmrec_queue, NULL); /* Release sender */
queue_reply(&pcmrec_queue, 0); /* Release sender */
if (audio_load_encoder(enc_config.afmt))
{
@ -1310,7 +1310,7 @@ static void pcmrec_stop(void)
}
dma_lock = true; /* lock dma write position */
queue_reply(&pcmrec_queue, NULL);
queue_reply(&pcmrec_queue, 0);
/* flush all available data first to avoid overflow while waiting
for encoding to finish */
@ -1470,7 +1470,7 @@ static void pcmrec_thread(void)
break;
} /* end switch */
queue_reply(&pcmrec_queue, NULL);
queue_reply(&pcmrec_queue, 0);
} /* end while */
} /* pcmrec_thread */

View file

@ -784,7 +784,7 @@ static void power_thread_sleep(int ticks)
charger_input_state = CHARGER_PLUGGED;
return;
case CHARGER_PLUGGED:
queue_broadcast(SYS_CHARGER_CONNECTED, NULL);
queue_broadcast(SYS_CHARGER_CONNECTED, 0);
charger_input_state = CHARGER;
break;
case CHARGER:
@ -795,7 +795,7 @@ static void power_thread_sleep(int ticks)
case NO_CHARGER:
break;
case CHARGER_UNPLUGGED:
queue_broadcast(SYS_CHARGER_DISCONNECTED, NULL);
queue_broadcast(SYS_CHARGER_DISCONNECTED, 0);
charger_input_state = NO_CHARGER;
break;
case CHARGER_PLUGGED:
@ -1279,7 +1279,7 @@ void sys_poweroff(void)
shutdown_timeout += HZ*20;
}
queue_post(&button_queue, SYS_POWEROFF, NULL);
queue_post(&button_queue, SYS_POWEROFF, 0);
}
void cancel_shutdown(void)

View file

@ -93,7 +93,7 @@ void handle_scroll_wheel(int new_scroll, int was_hold, int reverse)
}
}
if (wheel_keycode != BUTTON_NONE && queue_empty(&button_queue))
queue_post(&button_queue, wheel_keycode, NULL);
queue_post(&button_queue, wheel_keycode, 0);
prev_scroll = new_scroll;
}

View file

@ -139,7 +139,7 @@ static inline int ipod_4g_button_read(void)
{
data = (wheel_delta << 16) | new_wheel_value;
queue_post(&button_queue, wheel_keycode | wheel_repeat,
(void *)data);
data);
}
if (!wheel_repeat) wheel_repeat = BUTTON_REPEAT;

View file

@ -100,7 +100,7 @@ void handle_scroll_wheel(int new_scroll, int was_hold, int reverse)
}
}
if (wheel_keycode != BUTTON_NONE && queue_empty(&button_queue))
queue_post(&button_queue, wheel_keycode, NULL);
queue_post(&button_queue, wheel_keycode, 0);
prev_scroll = new_scroll;
}

View file

@ -235,7 +235,7 @@ static void usb_thread(void)
/* Tell all threads that they have to back off the ATA.
We subtract one for our own thread. */
num_acks_to_expect =
queue_broadcast(SYS_USB_CONNECTED, NULL) - 1;
queue_broadcast(SYS_USB_CONNECTED, 0) - 1;
waiting_for_ack = true;
DEBUGF("USB inserted. Waiting for ack from %d threads...\n",
num_acks_to_expect);
@ -290,7 +290,7 @@ static void usb_thread(void)
/* Tell all threads that we are back in business */
num_acks_to_expect =
queue_broadcast(SYS_USB_DISCONNECTED, NULL) - 1;
queue_broadcast(SYS_USB_DISCONNECTED, 0) - 1;
waiting_for_ack = true;
DEBUGF("USB extracted. Waiting for ack from %d threads...\n",
num_acks_to_expect);
@ -392,9 +392,9 @@ static void usb_tick(void)
if(countdown == 0)
{
if(current_status)
queue_post(&usb_queue, USB_INSERTED, NULL);
queue_post(&usb_queue, USB_INSERTED, 0);
else
queue_post(&usb_queue, USB_EXTRACTED, NULL);
queue_post(&usb_queue, USB_EXTRACTED, 0);
}
}
}
@ -403,7 +403,7 @@ static void usb_tick(void)
{
usb_mmc_countdown--;
if (usb_mmc_countdown == 0)
queue_post(&usb_queue, USB_REENABLE, NULL);
queue_post(&usb_queue, USB_REENABLE, 0);
}
#endif
}
@ -411,7 +411,7 @@ static void usb_tick(void)
void usb_acknowledge(long id)
{
queue_post(&usb_queue, id, NULL);
queue_post(&usb_queue, id, 0);
}
void usb_init(void)

View file

@ -481,17 +481,17 @@ void button_event(int key, bool pressed)
#ifdef HAVE_REMOTE_LCD
if(diff & BUTTON_REMOTE)
if(!skip_remote_release)
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
else
skip_remote_release = false;
else
#endif
if(!skip_release)
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
else
skip_release = false;
#else
queue_post(&button_queue, BUTTON_REL | diff, NULL);
queue_post(&button_queue, BUTTON_REL | diff, 0);
#endif
}
@ -543,7 +543,7 @@ void button_event(int key, bool pressed)
{
if (queue_empty(&button_queue))
{
queue_post(&button_queue, BUTTON_REPEAT | btn, NULL);
queue_post(&button_queue, BUTTON_REPEAT | btn, 0);
#ifdef CONFIG_BACKLIGHT
#ifdef HAVE_REMOTE_LCD
if(btn & BUTTON_REMOTE)
@ -565,18 +565,18 @@ void button_event(int key, bool pressed)
#ifdef HAVE_REMOTE_LCD
if (btn & BUTTON_REMOTE) {
if (!remote_filter_first_keypress || is_remote_backlight_on())
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
else
skip_remote_release = true;
}
else
#endif
if (!filter_first_keypress || is_backlight_on())
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
else
skip_release = true;
#else /* no backlight, nothing to skip */
queue_post(&button_queue, btn, NULL);
queue_post(&button_queue, btn, 0);
#endif
post = false;
}

View file

@ -53,7 +53,8 @@ static void queue_fetch_sender(struct queue_sender_list *send,
/* Puts the specified return value in the waiting thread's return value
and wakes the thread - a sender should be confirmed to exist first */
static void queue_release_sender(struct queue_sender **sender, void *retval)
static void queue_release_sender(struct queue_sender **sender,
intptr_t retval)
{
(*sender)->retval = retval;
*sender = NULL;
@ -72,7 +73,7 @@ static void queue_release_all_senders(struct event_queue *q)
&q->send->senders[i & QUEUE_LENGTH_MASK];
if(*spp)
{
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
}
@ -154,7 +155,7 @@ void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks)
}
}
void queue_post(struct event_queue *q, long id, void *data)
void queue_post(struct event_queue *q, long id, intptr_t data)
{
int oldlevel = set_irq_level(15<<4);
unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@ -170,7 +171,7 @@ void queue_post(struct event_queue *q, long id, void *data)
if(*spp)
{
/* overflow protect - unblock any thread waiting at this index */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
#endif
@ -179,7 +180,7 @@ void queue_post(struct event_queue *q, long id, void *data)
}
#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
void * queue_send(struct event_queue *q, long id, void *data)
intptr_t queue_send(struct event_queue *q, long id, intptr_t data)
{
int oldlevel = set_irq_level(15<<4);
unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@ -195,7 +196,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
if(*spp)
{
/* overflow protect - unblock any thread waiting at this index */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
*spp = &sender;
@ -211,7 +212,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
/* Function as queue_post if sending is not enabled */
set_irq_level(oldlevel);
return NULL;
return 0;
}
#if 0 /* not used now but probably will be later */
@ -223,7 +224,7 @@ bool queue_in_queue_send(struct event_queue *q)
#endif
/* Replies with retval to any dequeued message sent with queue_send */
void queue_reply(struct event_queue *q, void *retval)
void queue_reply(struct event_queue *q, intptr_t retval)
{
if(q->send && q->send->curr_sender)
{
@ -270,7 +271,7 @@ void queue_remove_from_head(struct event_queue *q, long id)
if(*spp)
{
/* Release any thread waiting on this message */
queue_release_sender(spp, NULL);
queue_release_sender(spp, 0);
}
}
#endif