1
0
Fork 0
forked from len0rd/rockbox

Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some threading code in IRAM that should be there on PP502x.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15155 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2007-10-16 22:00:51 +00:00
parent 28936603be
commit 84f5c5c3e3
8 changed files with 17 additions and 10 deletions

View file

@ -88,7 +88,7 @@
#ifndef __PCTOOL__ #ifndef __PCTOOL__
/* Tag Cache thread. */ /* Tag Cache thread. */
static struct event_queue tagcache_queue NOCACHEBSS_ATTR; static struct event_queue tagcache_queue;
static long tagcache_stack[(DEFAULT_STACK_SIZE + 0x4000)/sizeof(long)]; static long tagcache_stack[(DEFAULT_STACK_SIZE + 0x4000)/sizeof(long)];
static const char tagcache_thread_name[] = "tagcache"; static const char tagcache_thread_name[] = "tagcache";
#endif #endif
@ -152,7 +152,7 @@ struct tagcache_command_entry {
static struct tagcache_command_entry command_queue[TAGCACHE_COMMAND_QUEUE_LENGTH]; static struct tagcache_command_entry command_queue[TAGCACHE_COMMAND_QUEUE_LENGTH];
static volatile int command_queue_widx = 0; static volatile int command_queue_widx = 0;
static volatile int command_queue_ridx = 0; static volatile int command_queue_ridx = 0;
static struct mutex command_queue_mutex NOCACHEBSS_ATTR; static struct mutex command_queue_mutex;
/* Timestamp of the last added event, so we can wait a bit before committing the /* Timestamp of the last added event, so we can wait a bit before committing the
* whole queue at once. */ * whole queue at once. */
static long command_queue_timestamp = 0; static long command_queue_timestamp = 0;

View file

@ -95,7 +95,7 @@ const signed char backlight_timeout_value[19] =
static void backlight_thread(void); static void backlight_thread(void);
static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)]; static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)];
static const char backlight_thread_name[] = "backlight"; static const char backlight_thread_name[] = "backlight";
static struct event_queue backlight_queue NOCACHEBSS_ATTR; static struct event_queue backlight_queue;
static int backlight_timer; static int backlight_timer;
static int backlight_timeout; static int backlight_timeout;

View file

@ -62,7 +62,7 @@ static unsigned long reserve_used = 0;
static unsigned int cache_build_ticks = 0; static unsigned int cache_build_ticks = 0;
static char dircache_cur_path[MAX_PATH*2]; static char dircache_cur_path[MAX_PATH*2];
static struct event_queue dircache_queue NOCACHEBSS_ATTR; static struct event_queue dircache_queue;
static long dircache_stack[(DEFAULT_STACK_SIZE + 0x900)/sizeof(long)]; static long dircache_stack[(DEFAULT_STACK_SIZE + 0x900)/sizeof(long)];
static const char dircache_thread_name[] = "dircache"; static const char dircache_thread_name[] = "dircache";

View file

@ -83,7 +83,7 @@ static bool lba48 = false; /* set for 48 bit addressing */
#endif #endif
static long ata_stack[(DEFAULT_STACK_SIZE*3)/sizeof(long)]; static long ata_stack[(DEFAULT_STACK_SIZE*3)/sizeof(long)];
static const char ata_thread_name[] = "ata"; static const char ata_thread_name[] = "ata";
static struct event_queue ata_queue NOCACHEBSS_ATTR; static struct event_queue ata_queue;
static bool initialized = false; static bool initialized = false;
static long last_user_activity = -1; static long last_user_activity = -1;

View file

@ -46,7 +46,7 @@
#define MAX_EVENT_AGE HZ #define MAX_EVENT_AGE HZ
#endif #endif
struct event_queue button_queue NOCACHEBSS_ATTR; struct event_queue button_queue;
static long lastbtn; /* Last valid button status */ static long lastbtn; /* Last valid button status */
static long last_read; /* Last button status, for debouncing/filtering */ static long last_read; /* Last button status, for debouncing/filtering */

View file

@ -46,7 +46,7 @@ struct scrollinfo lcd_scroll[LCD_SCROLLABLE_LINES];
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
struct scrollinfo lcd_remote_scroll[LCD_REMOTE_SCROLLABLE_LINES]; struct scrollinfo lcd_remote_scroll[LCD_REMOTE_SCROLLABLE_LINES];
struct event_queue scroll_queue NOCACHEBSS_ATTR; struct event_queue scroll_queue;
#endif #endif
struct scroll_screen_info lcd_scroll_info = struct scroll_screen_info lcd_scroll_info =

View file

@ -387,6 +387,13 @@ void corelock_unlock(struct corelock *cl)
#endif /* CONFIG_CORELOCK == SW_CORELOCK */ #endif /* CONFIG_CORELOCK == SW_CORELOCK */
#ifdef CPU_PP502x
/* Some code relies on timing */
void switch_thread(struct thread_entry *old) ICODE_ATTR;
void core_wake(IF_COP_VOID(unsigned int othercore)) ICODE_ATTR;
void core_idle(void) ICODE_ATTR;
#endif
/*--------------------------------------------------------------------------- /*---------------------------------------------------------------------------
* Put core in a power-saving state if waking list wasn't repopulated and if * Put core in a power-saving state if waking list wasn't repopulated and if
* no other core requested a wakeup for it to perform a task. * no other core requested a wakeup for it to perform a task.
@ -405,7 +412,7 @@ static inline void core_sleep(IF_COP(unsigned int core,) struct thread_entry **w
"ldr r0, [%[w]] \n" /* Check *waking */ "ldr r0, [%[w]] \n" /* Check *waking */
"cmp r0, #0 \n" /* != NULL -> exit */ "cmp r0, #0 \n" /* != NULL -> exit */
"bne 1f \n" "bne 1f \n"
/* ------ fixed-time sequence ----- */ /* ------ fixed-time sequence ----- */ /* Can this be relied upon? */
"ldr r0, [%[ms], %[oc], lsl #2] \n" /* Stay-awake requested? */ "ldr r0, [%[ms], %[oc], lsl #2] \n" /* Stay-awake requested? */
"mov r1, #0x80000000 \n" "mov r1, #0x80000000 \n"
"tst r0, #1 \n" "tst r0, #1 \n"
@ -453,7 +460,7 @@ void core_wake(IF_COP_VOID(unsigned int othercore))
"orr r1, r2, #0xc0 \n" "orr r1, r2, #0xc0 \n"
"msr cpsr_c, r1 \n" "msr cpsr_c, r1 \n"
"mov r1, #1 \n" "mov r1, #1 \n"
/* ------ fixed-time sequence ----- */ /* ------ fixed-time sequence ----- */ /* Can this be relied upon? */
"str r1, [%[ms], %[oc], lsl #2] \n" /* Send stay-awake message */ "str r1, [%[ms], %[oc], lsl #2] \n" /* Send stay-awake message */
"nop \n" "nop \n"
"nop \n" "nop \n"

View file

@ -66,7 +66,7 @@ static int usb_mmc_countdown = 0;
static long usb_stack[(DEFAULT_STACK_SIZE + 0x800)/sizeof(long)]; static long usb_stack[(DEFAULT_STACK_SIZE + 0x800)/sizeof(long)];
static const char usb_thread_name[] = "usb"; static const char usb_thread_name[] = "usb";
#endif #endif
static struct event_queue usb_queue NOCACHEBSS_ATTR; static struct event_queue usb_queue;
static int last_usb_status; static int last_usb_status;
static bool usb_monitor_enabled; static bool usb_monitor_enabled;