summaryrefslogtreecommitdiff
path: root/firmware/common/dircache.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-10-16 01:25:17 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-10-16 01:25:17 +0000
commita9b2fb5ee3114fe835f6515b6aeae7454f66d821 (patch)
treefc4e96d0c1f215565918406c8827b16b806c1345 /firmware/common/dircache.c
parenta3fbbc9fa7e12fd3fce122bbd235dc362050e024 (diff)
downloadrockbox-a9b2fb5ee3114fe835f6515b6aeae7454f66d821.tar.gz
rockbox-a9b2fb5ee3114fe835f6515b6aeae7454f66d821.zip
Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/common/dircache.c')
-rw-r--r--firmware/common/dircache.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index c39dd7f7b5..b92d8fe974 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -62,7 +62,7 @@ static unsigned long reserve_used = 0;
62static unsigned int cache_build_ticks = 0; 62static unsigned int cache_build_ticks = 0;
63static char dircache_cur_path[MAX_PATH*2]; 63static char dircache_cur_path[MAX_PATH*2];
64 64
65static struct event_queue dircache_queue; 65static struct event_queue dircache_queue NOCACHEBSS_ATTR;
66static long dircache_stack[(DEFAULT_STACK_SIZE + 0x900)/sizeof(long)]; 66static long dircache_stack[(DEFAULT_STACK_SIZE + 0x900)/sizeof(long)];
67static const char dircache_thread_name[] = "dircache"; 67static const char dircache_thread_name[] = "dircache";
68 68
@@ -147,7 +147,7 @@ static struct travel_data dir_recursion[MAX_SCAN_DEPTH];
147 */ 147 */
148static bool check_event_queue(void) 148static bool check_event_queue(void)
149{ 149{
150 struct event ev; 150 struct queue_event ev;
151 151
152 queue_wait_w_tmo(&dircache_queue, &ev, 0); 152 queue_wait_w_tmo(&dircache_queue, &ev, 0);
153 switch (ev.id) 153 switch (ev.id)
@@ -598,7 +598,7 @@ static int dircache_do_rebuild(void)
598 */ 598 */
599static void dircache_thread(void) 599static void dircache_thread(void)
600{ 600{
601 struct event ev; 601 struct queue_event ev;
602 602
603 while (1) 603 while (1)
604 { 604 {
@@ -701,8 +701,9 @@ void dircache_init(void)
701 701
702 queue_init(&dircache_queue, true); 702 queue_init(&dircache_queue, true);
703 create_thread(dircache_thread, dircache_stack, 703 create_thread(dircache_thread, dircache_stack,
704 sizeof(dircache_stack), dircache_thread_name IF_PRIO(, PRIORITY_BACKGROUND) 704 sizeof(dircache_stack), 0, dircache_thread_name
705 IF_COP(, CPU, false)); 705 IF_PRIO(, PRIORITY_BACKGROUND)
706 IF_COP(, CPU));
706} 707}
707 708
708/** 709/**