forked from len0rd/rockbox
Do some housekeeping with fat.h and SECTOR_SIZE
Many includes of fat.h are pointless. Some includes are just for SECTOR_SIZE. Add a file 'firmware/include/fs_defines.h' for that and to define tuneable values that were scattered amongst various headers. Remove some local definitions of SECTOR_SIZE since they have to be in agreement with the rest of the fs code anyway. (We'll see what's in fact pointless in a moment ;) Change-Id: I9ba183bf58bd87f5c45eba7bd675c7e2c1c18ed5
This commit is contained in:
parent
70c929179b
commit
6db80020b4
29 changed files with 118 additions and 105 deletions
108
firmware/include/fs_defines.h
Normal file
108
firmware/include/fs_defines.h
Normal file
|
@ -0,0 +1,108 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2017 by Michael Sevakis
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef FS_DEFINES_H
|
||||
#define FS_DEFINES_H
|
||||
|
||||
/** Tuneable parameters **/
|
||||
|
||||
#if 0
|
||||
/* Define this just in case you're doing something that may crash a lot and
|
||||
want less write caching */
|
||||
#define FS_MIN_WRITECACHING
|
||||
#endif
|
||||
|
||||
#ifndef MAX_PATH
|
||||
#define MAX_PATH 260
|
||||
#endif
|
||||
|
||||
#define MAX_COMPNAME 260
|
||||
|
||||
/* still experimental? */
|
||||
/* increasing this will increase the total memory used by the cache; the
|
||||
cache, as noted in disk_cache.h, has other minimum requirements that may
|
||||
prevent reducing its number of entries in order to compensate */
|
||||
#ifndef SECTOR_SIZE
|
||||
#define SECTOR_SIZE 512
|
||||
#endif
|
||||
|
||||
/* limits for number of open descriptors - if you increase these values, make
|
||||
certain that the disk cache has enough available buffers */
|
||||
#define MAX_OPEN_FILES 11
|
||||
#define MAX_OPEN_DIRS 12
|
||||
|
||||
/* internal functions open streams as well; make sure they don't fail if all
|
||||
user descs are busy; this needs to be at least the greatest quantity needed
|
||||
at once by all internal functions */
|
||||
#ifdef HAVE_DIRCACHE
|
||||
#define AUX_FILEOBJS 3
|
||||
#else
|
||||
#define AUX_FILEOBJS 2
|
||||
#endif
|
||||
|
||||
/* number of components statically allocated to handle the vast majority
|
||||
of path depths; should maybe be tuned for >= 90th percentile but for now,
|
||||
imma just guessing based on something like:
|
||||
root + 'Music' + 'Artist' + 'Album' + 'Disc N' + filename */
|
||||
#define STATIC_PATHCOMP_NUM 6
|
||||
|
||||
/* unsigned value that will also hold the off_t range we need without
|
||||
overflow */
|
||||
#define file_size_t uint32_t
|
||||
|
||||
#ifdef __USE_FILE_OFFSET64
|
||||
/* if we want, we can deal with files up to 2^32-1 bytes-- the full FAT16/32
|
||||
range */
|
||||
#define FILE_SIZE_MAX (0xffffffffu)
|
||||
#else
|
||||
/* file contents and size will be preserved by the APIs so long as ftruncate()
|
||||
isn't used; bytes passed 2^31-1 will not accessible nor will writes succeed
|
||||
that would extend the file beyond the max for a 32-bit off_t */
|
||||
#define FILE_SIZE_MAX (0x7fffffffu)
|
||||
#endif
|
||||
|
||||
/* if file is "large(ish)", then get rid of the contents now rather than
|
||||
lazily when the file is synced or closed in order to free-up space */
|
||||
#define O_TRUNC_THRESH 65536
|
||||
|
||||
/* This needs enough for all file handles to have a buffer in the worst case
|
||||
* plus at least one reserved exclusively for the cache client and a couple
|
||||
* for other file system code. The buffers are put to use by the cache if not
|
||||
* taken for another purpose (meaning nothing is wasted sitting fallow).
|
||||
*
|
||||
* One map per volume is maintained in order to avoid collisions between
|
||||
* volumes that would slow cache probing. IOC_MAP_NUM_ENTRIES is the number
|
||||
* for each map per volume. The buffers themselves are shared.
|
||||
*/
|
||||
#if MEMORYSIZE < 8
|
||||
#define DC_NUM_ENTRIES 32
|
||||
#define DC_MAP_NUM_ENTRIES 128
|
||||
#elif MEMORYSIZE <= 32
|
||||
#define DC_NUM_ENTRIES 48
|
||||
#define DC_MAP_NUM_ENTRIES 128
|
||||
#else /* MEMORYSIZE > 32 */
|
||||
#define DC_NUM_ENTRIES 64
|
||||
#define DC_MAP_NUM_ENTRIES 256
|
||||
#endif /* MEMORYSIZE */
|
||||
|
||||
/* this _could_ be larger than a sector if that would ever be useful */
|
||||
#define DC_CACHE_BUFSIZE SECTOR_SIZE
|
||||
|
||||
#endif /* FS_DEFINES_H */
|
Loading…
Add table
Add a link
Reference in a new issue