Frank Gevaerts
646edc594f
Fix bpb_is_sane() cluster size calculation for non-512 byte sectors.
...
bpb_is_sane() used to effectively multiplying the sector size (relative
to 512 bytes) twice, which meant that filesystems with e.g. 2K sectors and
32 sectors per cluster were rejected because while this adds up to 64K
clusters (i.e. the upper limit), the calculation wrongly came to 256K.
This bug tends to affect 5.5G ipods when formatted using dosfstools.
Change-Id: Ia3f1e1303b2af953f497ccdbf23cd49c3d72e46a
2014-01-04 21:28:26 +01:00
Michael Sevakis
a56f1ca1ed
Cleanup MV/MD macros a little.
...
When using variadic macros there's no need for IF_MD2/IF_MV2 to deal
with function parameters. IF_MD/IF_MV are enough.
Throw in IF_MD_DRV/ID_MV_VOL that return the parameter if MD/MV, or 0
if not.
Change-Id: I7605e6039f3be19cb47110c84dcb3c5516f2c3eb
2013-08-17 12:18:22 -04:00
Marcin Bukat
18c016b4e0
Fix test fat failing on 64bit system (second bit of FS#12646)
...
We use unsigned long/long in number of places in fat.c. When this
is used to cast 32bit fat field it fails on 64bit systems.
This patch introduces explicit types (uint16_t, uint32_t) only
in places which influence how fat structures are interpreted.
Change-Id: I0be44d0b355f9de20b4deb221698d095f55d4bde
Reviewed-on: http://gerrit.rockbox.org/232
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
Reviewed-by: Torne Wuff <torne@wolfpuppy.org.uk>
2012-05-08 13:00:56 +02:00
Rafaël Carré
65bb8e4452
Remove extraneous parens
2012-05-06 23:13:34 -04:00
Amaury Pouly
eb90d95693
imx233/fuze+: huge rework
...
- enable MMU
-rework lcd frame buffer
- add rtc/adc/power stubs (or not)
- fix a few MMC related defines (hopefully)
- implement cache handling for DMA
- more SD work
- add keymap (based on clip)
- add virtual buttons
- update linker scripts
- big step toward apps actually compiling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30200 a1c6a512-1295-4272-9138-f99709370657
2011-07-23 11:45:22 +00:00
Michael Sparmann
1b5e31ed43
iPod Classic CE-ATA Support (Part 2 of 4: Remove on-stack sector buffers, and replace them with a single statically allocated sector buffer that's arbitrated amongst users)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29445 a1c6a512-1295-4272-9138-f99709370657
2011-02-27 22:44:54 +00:00
Michael Sparmann
751303c2ac
iPod Classic CE-ATA Support (Part 1 of 4: Cacheline align some statically allocated sector buffers)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29444 a1c6a512-1295-4272-9138-f99709370657
2011-02-27 22:44:30 +00:00
Michael Sparmann
7fea136903
Autodetect sector size on superfloppy volumes based on the FAT32 BPB (kudos to Frank Gevaerts)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28946 a1c6a512-1295-4272-9138-f99709370657
2011-01-02 22:28:22 +00:00
Frank Gevaerts
1db3dfdd75
Accept FS#11774 by Michael Hohmuth (with some own modifications to #ifdef conditions)
...
Unmount all filesystems before connecting USB. This ensures that all filehandles are closed, which avoids possible filesystem corruption
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28693 a1c6a512-1295-4272-9138-f99709370657
2010-11-28 15:22:51 +00:00
Frank Gevaerts
1960a8029b
Fix multivolume case
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28577 a1c6a512-1295-4272-9138-f99709370657
2010-11-13 15:46:38 +00:00
Michael Sparmann
79d26ed7f9
Reduce the amount of stack space needed by fat_rename and mkdir_uncached.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28576 a1c6a512-1295-4272-9138-f99709370657
2010-11-13 15:41:18 +00:00
Frank Gevaerts
5d4b13beef
Slightly reorganise the FAT driver to ensure that no more than one sector buffer is ever allocated on the stack simultaneously. Fixes FS#11433
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28011 a1c6a512-1295-4272-9138-f99709370657
2010-09-06 14:14:07 +00:00
Rafaël Carré
c7c04eb5a9
fat.c: fix format specifier in DEBUG build
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27386 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 16:46:40 +00:00
Frank Gevaerts
376d8d577f
Add IO priority handling. Currently all IO has equal priority, except the dircache scanning thread which is lower. This fixes the slow boot problem for me, with the added benefit that actual audio playback also starts faster.
...
Lots of the changes are due to changing storage_(read|write)sectors() from macros to wrapper functions. This means that they have to be called with IF_MD2(drive,) again.
Flyspray: FS#11167
Author: Frank Gevaerts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25459 a1c6a512-1295-4272-9138-f99709370657
2010-04-03 22:02:09 +00:00
Amaury Pouly
a8137252a5
FS#11118: reduce the number of cached sector in FAT code because some are useless after a rewrite of LFN entries handling. Also makes LFN handling more robust.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25290 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 10:35:25 +00:00
Mustapha Senhaji
ae8bf6fe73
Fix a typo on a comment
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25210 a1c6a512-1295-4272-9138-f99709370657
2010-03-16 00:54:08 +00:00
Amaury Pouly
46565f594a
fat: make fat_open more flexible by accepting the file==&dir->file and make fat_opendir also more flexible by accepting dir==parent_dir
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25202 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 12:31:24 +00:00
Maurus Cuelenaere
d052ced874
Merge branch 'hotswap'
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23759 a1c6a512-1295-4272-9138-f99709370657
2009-11-26 16:57:30 +00:00
Frank Gevaerts
3502e70366
Fix Free and Disk size display when SECTOR_SIZE!=512
...
Flyspray: FS#10656
Author: Laurent Papier
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23595 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 22:53:54 +00:00
Jens Arnold
bf9facc49c
FAT timestamp handling improvements for non-RTC targets:
...
- When writing to a file that is older than the build, file date is set to the build date.
- Time is advanced so that the minutes are a multiple of 11, excluding '00', and seconds =
minutes. This is done as a hint that the time isn't 100% correct.
- Date increment uses actual month lengths (but without leap year handling)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22348 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 17:18:45 +00:00
Frank Gevaerts
c0a5a67387
Commit FS#9545, storage cleanup and multi-driver support
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21933 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 22:28:49 +00:00
Nils Wallménius
3d4701a6e4
FS#10080
...
* Move strncpy() from core to the pluginlib
* Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins
* Drop strncpy() from the codec api as no codec used it
* Bump codec and plugin api versions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-07-14 13:57:45 +00:00
Frank Gevaerts
430343bca7
implement single-driver storage layer with macros instead of inlines
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18975 a1c6a512-1295-4272-9138-f99709370657
2008-11-02 01:14:46 +00:00
Frank Gevaerts
2f8a0081c6
Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do that, it also introduces sd_*, nand_*, and mmc_*.
...
This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18960 a1c6a512-1295-4272-9138-f99709370657
2008-11-01 16:14:28 +00:00
Frank Gevaerts
19d1cacb1a
cleanup storage defines
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18950 a1c6a512-1295-4272-9138-f99709370657
2008-10-31 21:25:04 +00:00
Daniel Stenberg
2acc0ac542
Updated our source code header to explicitly mention that we are GPL v2 or
...
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Bertrik Sikken
2843469876
Moved atoi declaration to stdlib.h. Deleted atoi.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17280 a1c6a512-1295-4272-9138-f99709370657
2008-04-28 16:18:04 +00:00
Michael Sevakis
05099149f1
Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
2008-04-06 04:34:57 +00:00
Michael Sevakis
27cf677339
Add a complete priority inheritance implementation to the scheduler (all mutex ownership and queue_send calls are inheritable). Priorities are differential so that dispatch depends on the runnable range of priorities. Codec priority can therefore be raised in small steps (pcmbuf updated to enable). Simplify the kernel functions to ease implementation and use the same kernel.c for both sim and target (I'm tired of maintaining two ;_). 1) Not sure if a minor audio break at first buffering issue will exist on large-sector disks (the main mutex speed issue was genuinely resolved earlier). At this point it's best dealt with at the buffering level. It seems a larger filechunk could be used again. 2) Perhaps 64-bit sims will have some minor issues (finicky) but a backroll of the code of concern there is a 5-minute job. All kernel objects become incompatible so a full rebuild and update is needed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16791 a1c6a512-1295-4272-9138-f99709370657
2008-03-25 02:34:12 +00:00
Michael Sevakis
e37044ff1d
Hotswap code shuffling: Fix yellow. Simplify some target function access. Keep fat lock access from compiling for Ondios - think of a nicer way later.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16637 a1c6a512-1295-4272-9138-f99709370657
2008-03-12 11:08:41 +00:00
Michael Sevakis
06a5299aff
Do some crackdown on kernel object reinitialization after they could be in use and use before initialization. For c200/e200: Be sure fat cache and ata locks are acquired in the proper order during hot swapping. Delay hotswap monitoring until after initial file mounting (address 2nd kobj concern + possible call of fat driver before init).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16636 a1c6a512-1295-4272-9138-f99709370657
2008-03-12 10:03:52 +00:00
Peter D'Hoye
c04f497670
Let the FAT namecheck also look for trailing spaces, fixes FS #8560 .
...
Only call the dircache rename function if the actual rename was ok.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16241 a1c6a512-1295-4272-9138-f99709370657
2008-02-07 22:15:13 +00:00
Peter D'Hoye
bf9615f4e1
Code police, no functional changes (yet)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15352 a1c6a512-1295-4272-9138-f99709370657
2007-10-28 23:44:49 +00:00
Michael Sevakis
a9b2fb5ee3
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
2007-10-16 01:25:17 +00:00
Peter D'Hoye
85058f5d9c
Fix FS #5852 by trying to properly close and update the recorded file, and give the FAT the correct file info. Add filehandle checks to some file functions.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15072 a1c6a512-1295-4272-9138-f99709370657
2007-10-10 23:26:17 +00:00
Dave Chapman
1c2de0a45e
Prevent another divide-by-zero (only affecting targets with FAT16 support enabled, such as the Sansa).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13837 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 22:58:08 +00:00
Robert Keevil
e68255b978
Fix division by 0 error
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13836 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 21:23:26 +00:00
Peter D'Hoye
e3d7c5c464
Fix a (minor) disk corruption when moving directories around. Fixes FS #7359
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13797 a1c6a512-1295-4272-9138-f99709370657
2007-07-05 18:30:55 +00:00
Magnus Holmgren
c09fcc48c6
Fix serious bug in FAT filename check, preventing most files from being created (if they contain a '.', no less). Also allow a few more chars in the long filename and make the code a bit smaller (as in FS #6358 ).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13776 a1c6a512-1295-4272-9138-f99709370657
2007-07-03 17:03:33 +00:00
Jonathan Gordon
fe163c5178
Proper filename checking in the FAT driver (FS#7222 and FS#6358)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13770 a1c6a512-1295-4272-9138-f99709370657
2007-07-03 09:53:16 +00:00
Jens Arnold
2c7b127dd7
Set CONFIG_RTC to 0 for non-RTC targets, and check with #if to profit from -Wundef. No code change.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12811 a1c6a512-1295-4272-9138-f99709370657
2007-03-16 23:47:03 +00:00
Robert Kukla
ae08eeb4ff
remove runtime detection of h1x0 series RTC MOD, but leave driver code
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12554 a1c6a512-1295-4272-9138-f99709370657
2007-03-03 00:11:20 +00:00
Robert Kukla
50b5ee4781
FS#6419 - driver for H1x0 series RTC Mod with runtime detection
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12520 a1c6a512-1295-4272-9138-f99709370657
2007-02-28 13:20:36 +00:00
Nils Wallménius
e53e67014f
Remove unused code, make comments c-style, make one private function static
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12480 a1c6a512-1295-4272-9138-f99709370657
2007-02-25 15:44:55 +00:00
Peter D'Hoye
3036a2a2e2
Use the correct constant to avoid confusion
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12476 a1c6a512-1295-4272-9138-f99709370657
2007-02-24 21:40:00 +00:00
Peter D'Hoye
e26124b327
Better short filename generation. Fixes FS#6648.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12475 a1c6a512-1295-4272-9138-f99709370657
2007-02-24 21:06:28 +00:00
Linus Nielsen Feltzing
ca91b679a5
Reverting the FAT32 driver change - it seems to have introduced a bug
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12152 a1c6a512-1295-4272-9138-f99709370657
2007-01-29 23:35:21 +00:00
Linus Nielsen Feltzing
0f03e3af31
Changed fat_getnext():
...
1) Fixed a bug where really long filenames could be messed up if they spanned 3 sectors
2) Now uses 2 buffers instead of 3, without copying the buffers with memcpy()
3) Can now use aligned sector reads, first step towards iPod 5.5G 80GB
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12151 a1c6a512-1295-4272-9138-f99709370657
2007-01-29 22:26:16 +00:00
Jens Arnold
ef3e129b65
Much simpler implementation of large virtual sector support, not needing larger sector buffers and not touching file.c at all. secmult is simply used to normalize all sector counts to 512-byte physical sectors. * Moved MAX_SECTOR_SIZE definition to config-*.h, and enabled it for iPod Video only. MAX_SECTOR_SIZE now only enables checking for alternate disk layouts due to sector size (as iPod Video G5.5 is presented as having 2048-byte _physical_ sectors to the PC). Large virtual sector support in fat.c is always enabled.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11659 a1c6a512-1295-4272-9138-f99709370657
2006-12-04 21:37:22 +00:00
Jens Arnold
c01a97442f
Removed unused variable, and fixed overflow in free/total calculation. There are still some suspicious things in here...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11656 a1c6a512-1295-4272-9138-f99709370657
2006-12-03 23:22:30 +00:00