a85044bf9e
switching should be more efficient and tasks are stored in linked lists to eliminate unnecessary task switching to improve performance. Audio should no longer skip on swcodec targets caused by too CPU hungry UI thread or background threads. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10958 a1c6a512-1295-4272-9138-f99709370657
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2002 by Linus Nielsen Feltzing
|
|
*
|
|
* All files in this archive are subject to the GNU General Public License.
|
|
* See the file COPYING in the source tree root for full license agreement.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
#include <stdio.h>
|
|
#include "buffer.h"
|
|
|
|
#ifdef SIMULATOR
|
|
unsigned char audiobuffer[(MEM*1024-256)*1024];
|
|
unsigned char *audiobufend = audiobuffer + sizeof(audiobuffer);
|
|
#else
|
|
/* defined in linker script */
|
|
extern unsigned char audiobuffer[];
|
|
#endif
|
|
|
|
unsigned char *audiobuf;
|
|
|
|
void buffer_init(void)
|
|
{
|
|
/* 32-bit aligned */
|
|
audiobuf = (void *)(((unsigned long)audiobuffer + 3) & ~3);
|
|
}
|
|
|
|
void *buffer_alloc(size_t size)
|
|
{
|
|
void *retval = audiobuf;
|
|
|
|
audiobuf += size;
|
|
/* 32-bit aligned */
|
|
audiobuf = (void *)(((unsigned long)audiobuf + 3) & ~3);
|
|
|
|
return retval;
|
|
}
|
|
|