2009-07-10  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c (fatfs_rmdir): Fix return code for attempt to delete
	a file, should be ENOTDIR, not EPERM.
	(fatfs_rename): Reorganize a little and add code to remove
	destination object if it is present. This is what POSIX
	expects. Also prevent renaming a file over a directory or vice
	versa.

	* src/fatfs_ncache.c (CYG_TRACEX): Tidy up output a little.

	* src/fatfs_supp.c (fatfs_delete_file): Return ENOTEMPTY if a
	directory cannot be deleted because it still has entries.

	* tests/fatfs1.c: 
	* tests/fatfs3.c: 
	* tests/fatfs4.c:
	* tests/fatfs6.c: Update tests to reflect changes in filesystem
	behaviour and return codes.
	
2009-04-27  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.h: 
	* src/fatfs.c: 
	* src/fatfs_blib.c:
	* src/fatfs_supp.c: Rename cyg_blib_* symbols to fatfs_blib_* to
	avoid clashing with original BLIB package.

	* src/fatfs_blib.c (fatfs_blib_delete): Extend CYGPKG_KERNEL ifdef
	to cover cyg_thread_delay() call.

2009-04-07  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.h: Add prototype for fatfs_update_fsinfo().

	* src/fatfs.c (find_direntry): Remove BUG1000539FIX stuff. This
	has been fixed in the node cache instead.
	(fatfs_umount): Add call to update FSInfo block for FAT32 disks.
	(fatfs_rename): Add call to fatfs_node_free_unref() for source
	node. This ensures that it will be freed, rather than be put in
	the dead list, where it might get up to mischief in the future.

	* src/fatfs_ncache.c (fatfs_node_find_cluster): Add this function
	to search a node list for a node that points to the given
	cluster. Used to look for duplicate nodes.
	(fatfs_node_alloc): Add code to detect "." and ".." entries that
	duplicate properly named directory entries and use/update-to the
	proper one if it is in the cache.
	(fatfs_node_ref, fatfs_node_unref): Update debugging messages.

	* src/fatfs_supp.c (fatfs_update_fsinfo): Add support for FSInfo
	block in FAT32.

	* tests/fatfs1.c (fileio1_main): Add extra operations to delme
	test to check for node reuse cases in node cache.

	* tests/fatfs5.c (fs_callback): Make diag_printf() options. 
	Switch default stack size to typical+4K.

	* tests/fatfs4.c (CLEANUP): 
	* tests/fatfs6.c (CLEANUP): Add CLEANUP option which, when
	disabled, permits files to be left on disk after test run. Mainly
	so that they may be examined on some other system.

	* cdl/fatfs.cdl: 
	* tests/fatfs8.c: Add this test, mainly to get performance figures
	for writing large files.

2009-01-12  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/fatfs.c (find_direntry): Conditionalise use of changes here
	of 2009-01-09 as it is not clear of their correctness.

2009-01-09  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/fatfs_supp.c (fatfs_delete_dir_entry): High cluster needs
	clearing too.

	* src/fatfs.c (find_direntry): Integrate changes of 2008-05-13 into
	LFN code, and then refactor to keep shared bits common.

2009-01-08  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/fatfs.cdl: Disable configury change of 2008-08-19.

2008-12-10  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (write_raw_dentry, fatfs_create_dir_entry):
	Ensure that directory entries are written to disk with
	uninitialized fields set to zero.

2008-11-04  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/fatfs.cdl: Improve constraints on CYGNUM_FS_FAT_NODE_POOL_SIZE,
	CYGNUM_FS_FAT_BLOCK_CACHE_BLOCKSIZE and
	CYGNUM_FS_FAT_BLOCK_CACHE_MEMSIZE. And expound more on the reasons
	for the constraints and values.

2008-08-19  Andrew Lunn  <andrew.lunn@ascom.ch>

	* cdl/fatfs.cdl: Add configury for the disk device names to be
	used for the tests. Default to the synthetic tests, since what
	seems to be the most used test platform.
	* doc/README.txt: Updates for the naming scheme.
	* doc/fat16.ecm: Fit the new naming scheme.
	
2008-05-13  Savin Zlobec <savinz@users.sourceforge.net>

	* src/fatfs.c: Fix handling of '.' and '..' nodes in dirsearch.

2008-05-08  Jonathan Larmour  <jifl@eCosCentric.com>

	* tests/fatfs5.c (checkfile): Silence many warnings.
	(checkfile1): Ditto.
	(fatfs5_main): Delete fatfs5.4 file before end of test so it
	doesn't stick around across test runs.

2008-05-08  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_find_dir_entry): Fix bug in last bug
	fix: a fencepost problem in calculating the number of extra
	directory entries a long filename needs.

2008-04-24  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_is_long_filename): Fix bug which would
	allow a dotless filename of more that 8 characters to be
	misidentified as a short name.
	(fatfs_find_dir_entry): Fix bug which allowed filenames to match
	directory entries that contained an initial substring and were an
	exact number of entries long.

2008-04-11  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.h (fatfs_node_s): Add free_pending field to record
	that this node should be released to the free pool when the last
	reference is removed.
	Add prototype for fatfs_node_free_unref().

	* src/fatfs.c (fatfs_rmdir): Add calls to fatfs_node_free_unref()
	to free the "." and ".." node cache entries for the directory if
	they are present and unreferenced.

	* src/fatfs_ncache.c (fatfs_node_free_unref): Add this function to
	either release a node back to the free pool if it is unreferenced,
	or mark it pending until all references are released.
	(fatfs_node_unref): Add code to act on free_pending flag in a node.
	(node_hash_find): Don't consider nodes marked free_pending.
	Generally: tidy up and make tracing a little more informative; fix
	some comments.

	* tests/fatfs1.c (fileio1_main): Add a few extra INFO messages.
	
2008-04-02  Xinghua Yang <yxinghua@sunnorth.com.cn>
            Andrew Lunn <andrew.lunn@ascom.ch>
	    Taiyun Wang <taiyun@sunnorth.com.cn>

	* cdl/fatfs.cdl: Use CYGPKG_FS_FAT_RET_DIRENT_DTYPE to control
	  whether fatfs sets file type in fatfs_fo_dirread.
	* src/fatfs.c: Set file type in fatfs_fo_dirread
	* test/fatfs1.c: Test the new d_type in dirent when present.
	
2007-10-18  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_read_dir_entry_name)
	(fatfs_find_dir_entry): Volume labels were being mis-identified as
	directory entries. Normally this was benign since they were
	detected and ignored at a higher level. However, if the volume
	label was codepage encoded and no translation routines were
	available, then it would fail here and send an error up to the
	application. Fixed by correctly identifying volume labels here and
	then ignoring them as intended.

2007-09-12  John Dallaway  <jld@ecoscentric.com>

	* cdl/fatfs.cdl: Build tests regardless of
	CYGDAT_DEVS_DISK_TEST_DEVICE definition.

2007-07-31  Hajime Ishitani <pigmon@mail.snd.co.jp>

	* src/fatfs.c: When removing a directory, first remove . and
	.. nodes.
	
2007-07-06  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c (find_entry): Change namelen from char to int. This
	looks like something bogus inherited from the original author.

2007-07-05  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/fatfs.cdl:
	Change default value of CYGNUM_FS_FAT_LONG_FILE_NAME_MAX to derive
	from CYGNUM_FILEIO_NAME_MAX.

2007-06-27  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.h: Add sector_size to cyg_blib_t. Add sector_size
	argument to blib creation routines.

	* src/fatfs.c (fatfs_mount): Ensure device is informed of unmount
	in event of errors. Add sector size argument to
	cyg_blib_io_create(), and ensure cache block size is a whole
	multiple.

	* src/fatfs_supp.c (fatfs_init): Test that the boot record reports
	the same sector size as the disk device.

	* src/fatfs_blib.c (blib_sync_block): Only sync a block to disk if
	it is not already being synced.
	(blib_sync_block, blib_get_block): Make use of sector size in
	calculation of transfer sizes.
	(blib_init_cache, blib_init_cache, cyg_blib_create) 
	(cyg_blib_io_create, cyg_blib_flush, cyg_blib_set_block_size): Use
	and propogate sector size in creation of cache.

2007-06-22  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c: Add support for UTF-8 encoding of filename
	strings and full UTF-16LE encoding of long filenames. When long
	filenames are disabled, ensure that 8.3 names are treated 8-bit
	clean when non-ASCII characters are present. This involves a
	number of extra functions plus various detailed changes to
	existing functions too numerous to list here.

	* src/fatfs.h (struct fatfs_disk_s): Add translation function
	structure when long filenames are enabled.

	* src/fatfs.c (fatfs_mbcs_to_utf16le_dummy) 
	(fatfs_utf16le_to_mbcs_dummy): Supply dummy translation functions.
	(fatfs_mount): Intall dummy translation functions by default.
	(fatfs_getinfo): Add case to return translation functions.
	(fatfs_setinfo): Add case to set translation functions.

	* doc/fatfs.sgml: Add documentation of Non-ASCII character
	support.

	* cdl/fatfs.cdl: Add fatfs6 and fatfs7 tests.

	* tests/fatfs6.c: Added this test for UTF-8/Unicode support in the
	filesystem.

	* tests/fatfs7.c: Added this test for dealing with 8.3 codepage
	encoded names in both long filename and non-long filename
	configurations.

	* host/cp2uc.c: Add this program for generating a code page to
	unicode translation table.

	* tests/korean.c: 
	* tests/cyrillic.c: Microsoft code page to unicode translation
	tables. Generated by cp2uc and used by fatfs7 test.

	* tests/fatfs2.c: Fix synchronization bug by moving call to
	usb_stack_init() into code only executed by thread 0.

	* tests/fatfs5.c: 
	* tests/fatfs4.c: Various tidies.
	
2007-06-05  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c (fatfs_getinfo): Fix various bugs in disk usage
	code. It looks like these were inherited in the last merge from
	anoncvs.

	* src/fatfs_supp.c (fatfs_init): Fix typo in last change. A return
	got lost somewhere along the way, probably an editing error.

2007-06-04  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_init): Extend boot record validation to
	detect further inconsistencies in the boot record for FAT32
	filesystems. This is mainly to deal with devices that have a
	partition table overlayed on a superficially correct boot sector.

2007-06-03  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_init): Change boot record validation to
	look for "FAT" in fat_name and to ignore the ext_sig. In theory
	the ext_sig should be checked for 0x28 or 0x29. However, there
	appear to be poorly formatted devices around that don't have this
	set, or the serial number or volume name. By rights we should
	reject these, but in practice we have to try and work with
	them. Fortunately the unset fields are not used by this
	filesystem.

	* tests/fatfs4.c (listdir): Change directory list format.
	
2007-05-14  Jonathan Larmour  <jifl@eCosCentric.com>

	* tests/fatfs1.c: Cannot opendir "". Use "." instead.
	* tests/fatfs3.c: Ditto.
	* tests/fatfs4.c: Ditto.
	* tests/fatfs5.c: Ditto.

2007-05-01  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_blib.c (blib_sync_block): Remove test for write error,
	we want to mark the block unmodified regardless, especially when
	the medium has been removed.

2007-04-30  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.h: Add fields to data structures to support removable
	media and different synchronization modes. Add other definitions
	in support of this.

	* src/fatfs.c (fatfs_mount): Add option handling.
	(fatfs_umount): Add support for new force argument.
	(fatfs_open): Add test for mounted filesystem, deal with extra
	failure modes for removable media.
	(fatfs_fo_close): Add support for new sync modes.
	Generally, test for mounted filesystem and fail if not.
	(fatfs_setinfo, fatfs_getinfo): Added support for FS_INFO_CALLBACK
	to set and get a filesystem event callback function.

	* src/fatfs_blib.c: Add support for synchronization modes and
	removable media. Add support for filesystem event callback; the
	calls here indicate whether the filesystem is up to date on disk
	or not.

	* doc/fatfs.sgml: Update documentation.
	
	* tests/fatfs1.c:
	* tests/fatfs2.c:
	* tests/fatfs3.c:
	* tests/fatfs4.c:
	* tests/fatfs5.c: Added support for testing via Jungo USB stack.
	
2007-03-28  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/fatfs.cdl: Add CYGNUM_FS_FAT_BLOCK_CACHE_BLOCKSIZE to permit
	adjustment of cache block size, and hence disk data transfer size.

	* src/fatfs.c (fatfs_mount):
	Use CYGNUM_FS_FAT_BLOCK_CACHE_BLOCKSIZE when initializing the
	cache.

	* src/fatfs_blib.c (blib_sync_block, blib_get_block): Permit cache
	blocks other that 512 bytes.
	(cyg_blib_bread, cyg_blib_bwrite): Remove these functions. They
	are not used.

	* src/fatfs_supp.c (cluster_to_block_pos): Rewrite to permit
	support for different cache block sizes.

	* tests/fatfs5.c: Added new test to gather performance figures for
	filesystem.

	* doc/fatfs.sgml:
	Added documentation for CYGNUM_FS_FAT_BLOCK_CACHE_BLOCKSIZE.

2007-03-06  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/fatfs_blib.c (init_block_mem_pool): Align block data
	to data cache line boundary if disk package indicates it's needed.

2007-02-14  Nick Garnett  <nickg@ecoscentric.com>

	* tests/fatfs1.c: 
	* tests/fatfs2.c: 
	* tests/fatfs3.c: 
	* tests/fatfs4.c: 
	* src/fatfs_ncache.c (node_hash_check): Quieten compiler warnings.

2007-02-05  Ya-Chau Yang <a8850607@stmail.fju.edu.tw> 
            Savin Zlobec <savinz@users.sourceforge.net>

	* src/fatfs_supp.c: Fixed FAT32 cluster handling in
	fatfs_delete_file and fatfs_rename_file.

2007-02-01  John Dallaway  <jld@ecoscentric.com>

	* cdl/fatfs.cdl: Build tests only if CYGDAT_DEVS_DISK_TEST_DEVICE
	defined.

2007-01-27  Andrew Lunn  <andrew.lunn@ascom.ch>

	* tests/fatfs1.c: Fixed the format string to diag_printf()
	to remove compiler warnings.

2006-08-04  Paul Fine  <pfine@dtccom.com>
            Andrew Lunn <andrew.lunn@ascom.ch>

	* src/fats.c: Added functionality to the fatfs_getinfo() function
	to return disk usage information about the filesystem, making this
	information accessible through the cyg_fs_getinfo() interface.
	* tests/fatfs1.c: Added code to test the disk usage.

2005-07-30  Andrew Lunn  <andrew.lunn@ascom.ch>

	* src/fatfs_supp.c: Correct types to remove compiler warnings.

2006-06-30  Nick Garnett  <nickg@ecoscentric.com>

	* doc/fatfs.sgml: Tidied up in various places.

2006-04-05  John Dallaway  <jld@ecoscentric.com>

	* cdl/fatfs.cdl: Add reference to package documentation.

2006-03-17  John Dallaway  <jld@ecoscentric.com>

	* cdl/fatfs.cdl: Build FAT filesystem package with default optimisation
	flags.

2006-03-08  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (dentry_to_raw): Fixed bug in test for
	directory vs file entry.

	* src/fatfs_ncache.c (fatfs_node_unref, fatfs_node_ref): Added
	some extra diagnostics.

	* tests/fatfs1.c: 
	* tests/fatfs2.c: Extended tests in various ways.

2006-02-24  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/fatfs.c (find_direntry): Fix trace macro use for current layout.
	(fatfs_mount): Do not use lock or condvar in non-kernel config.
	(fatfs_fo_dirread): Silence unused var warning if long file names.

	* src/fatfs.h (struct fatfs_disk_s): Don't need mutex lock or condvar
	for non-kernel config.

	* src/fatfs_blib.c (io_bread): Don't use mutex lock or condvar
	for non-kernel config.
	(io_bwrite): Ditto.
	(io_pend): Ditto.
	(io_unpend): Ditto.

	* src/fatfs_supp.c (DENTRY_IS_EXTNAME): Keep this macro always.
	(print_boot_record): Update for current fat_boot_record_t structure.
	(print_raw_dentry): Support LFN fragments.
	(fatfs_match_exname): Need to byte-swap 16-bit unicode on big-endian
	systems.
	(fatfs_get_exname): Ditto.
	(raw_to_dentry): Mark all entries as readable and executable for FAT.
	(fatfs_read_dir_entry): ignore LFN fragments (since this function is
	only used when !LFN).
	(fatfs_create_dir_entry): Silence warnings. Need to byte-swap 16-bit
	unicode on big-endian systems.
	(fatfs_delete_dir_entry): Silence warnings.
	(fatfs_rename_file): Silence warnings.	

2006-02-23  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c (fatfs_open): Fix bug in handling reference count of
	directory when the open fails.

2006-02-10  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_supp.c (fatfs_get_exname): Fixed fencepost problem in
	handling of long filenames that are an exact multiple of 13
	characters long.

	* tests/fatfs4.c: Adjusted some file names to be a multiple of 13
	characters to test for above fix.
	
2005-12-12  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/fatfs.c (fatfs_mount): cyg_io_* functions return negative
	error codes.
	(fatfs_umount): Ditto.

2005-10-11  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_blib.c:
	* src/fatfs.h: Merged some changes that were missed in merge from
	anoncvs. These eliminate the block cache library dependence on
	kernel memory management support.

2005-08-04  Nick Garnett  <nickg@ecoscentric.com>

	* include/fatfs.h: New header added to define attribute macros.

2005-08-03  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_ncache.c: 
	* src/fatfs_supp.c: 
	* src/fatfs.c:
	Various fixes to long filename support, mostly to do with
	long/short name aliasing.

	* tests/fatfs4.c: Added some tests for various long filename cases.

2005-08-01  Nick Garnett  <nickg@ecoscentric.com>

	* all:
	Merged changes from anoncvs sources. This includes the following
	changes from the anoncvs ChangeLog:

	2005-06-07  Savin Zlobec  <savin@elatec.si>

		* src/fatfs_supp.c: lseek returned EEOF when at the end of the
		file rather than the current position. 

	2005-03-27  Andrew Lunn  <andrew.lunn@ascom.ch>

		* tests/fatfs1.c: Fixed various compiler warnings about types passed to
		diag_printf().

	2005-01-18  Savin Zlobec  <savin@elatec.si>

		* src/fatfs_supp.c:
		Fixed FAT12/16 root dir size checking in read_next_raw_dentry - 
		reported by Stephane Royo.

	2004-12-13  John Dallaway  <jld@ecoscentric.com>

		* tests/fileio1.c: Rename to fatfs1.c. eCos test names should be
		unique.
		* cdl/fatfs.cdl: Build the renamed test.

	2004-11-14  Jani Monoses <jani@iv.ro>

		* test/fileio1.c: Start the test using main, not via a
		thread. This makes is more uniform with the other fileio1 tests.

	2004-11-11  David Brennan  <eCos@brennanhome.com>

		* src/fatfs.c: fixed typos in TRACE statements

	2004-10-23  David Brennan  <eCos@brennanhome.com>

		* tests/fileio1.c: fixed check for return value for attribute
		tests.

	2004-10-17  David Brennan  <eCos@brennanhome.com>

		* src/fatfs.c:
		* src/fatfs_supp.c:
		* include/fatfs.h (NEW):
		* tests/fileio1.c:
		* cdl/fatfs.cdl: Added configurable support for FAT filesystem
		attributes.

	2004-10-13  David Brennan  <eCos@brennanhome.com>

		* src/fatfs.c: Added code to setinfo to allow performing a
		file-system sync

	2004-10-06  David Brennan  <eCos@brennanhome.com>

		* tests/fileio1.c: Added include of <stdio.h> to fix compiler
		warning for rename().

	2004-08-10  Savin Zlobec  <savin@elatec.si>

		* src/fatfs.h:
		* src/fatfs_supp.c:
		Added FAT32 support.

	2004-07-13  Savin Zlobec  <savin@elatec.si>

		* cdl/fatfs.cdl:
		* src/fatfs.h:
		* src/fatfs.c:
		* src/fatfs_supp.c:
		* src/fatfs_ncache.c:
		Refactored the code and changed file node cache memory 
		allocation from malloc to custom pool based one.

	2004-07-05  Savin Zlobec  <savin@elatec.si>

		* cdl/fatfs.cdl:
		* src/fatfs.h:
		* src/fatfs.c:
		* src/fatfs_supp.c:
		* src/fatfs_ncache.c:
		Removed FAT table cache - it added little or no speed gain to
		the fatfs. Implemented private data for fatfs file descriptors which
		holds the current FAT cluster position, this greatly improves
		read/write times for big files comparing to the old implementation.
		* src/fatfs_tcache.c: Removed.

	2004-06-24  Savin Zlobec  <savin@elatec.si>

		* src/fatfs.h:
		* src/fatfs_supp.c:
		Implemented fatfs_get_disk_usage function for 
		getting the number of total and free clusters.

	* cdl/fatfs.cdl:
	* src/fatfs.c: 
	* src/fatfs_ncache.c: 
	* src/fatfs.h: 
	* src/fatfs_supp.c:
	Many changes to support long file name handling.

	* doc/fatfs.sgml: Update documentation to match recent changes.

	* doc/mkdisk3: Added this script to make disk image for FAT32
	testing.
	
	* tests/fatfs4.c: New test for long file name support. This is
	functionally equivalent to fatfs1 but uses long names.

	* tests/fatfs3.c: Added code to test for and create test directory
	in second disk.

2004-09-07  Bart Veer  <bartv@ecoscentric.com>

	* src/fatfs_blib.c: fatfs and generic file I/O use +ve numbers to
	indicate errors. Disk device drivers use -ve numbers. The block
	layer performs the translation.

2004-07-02  Nick Garnett  <nickg@ecoscentric.com>

	* tests/fatfs3.c: Tidied up the mount of the second disk. Removed
	a few compiler warnings.

2004-06-17  Bart Veer  <bartv@ecoscentric.com>

	* tests/fatfs1.c, tests/fatfs2.c, tests/fatfs3.c: halt the tests
	early on if the device cannot be mounted.

2004-06-10  John Dallaway  <jld@ecoscentric.com>

	* doc/fatfs.sgml: Accommodate the recent change of test names.

2004-06-08  John Dallaway  <jld@ecoscentric.com>

	* tests/fileio*.c: Rename tests to fatfs*.c to distinguish them
	from tests in the File I/O package.
	* cdl/fatfs.cdl: Accommodate the above change.

2004-06-07  John Dallaway  <jld@ecoscentric.com>

	* cdl/fatfs.cdl: Specify the executable names of tests for
	compatibility with the eCos Configuration Tool. Require
	CYGPKG_IO_DISK, CYGPKG_LINUX_COMPAT and CYGPKG_LIBC_STRING.

2004-06-01  Bart Veer  <bartv@ecoscentric.com>

	* tests/fileio2.c, tests/fileio3.c: fix mentions of fileio1 in the
	test output and elsewhere.

2004-05-26  Nick Garnett  <nickg@ecoscentric.com>

	* doc/README.txt: 
	* doc/fatfs.ecm: 
	* doc/fat16.ecm: 
	Removed these files. They are obsolete and could be misleading.
	
2004-04-16  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs_ncache.c (fatfs_node_free): Reorganized node free code
	so that nodes are always freed with a refcount of 1. This avoids a
	potential race condition.

	* src/fatfs.c: Added cyg_io_set_config() calls for
	CYG_IO_SET_CONFIG_DISK_MOUNT and CYG_IO_SET_CONFIG_DISK_UMOUNT in
	mount and unmount routines to signal these events to the driver.
	Removed some unnecessary headers.
	Reorganized unlink() and rmdir() to invoke fatfs_node_free() with
	a non-zero refcount.

	* src/fatfs_blib.c: Commented out instrumentation.

	* src/fatfs.h: Removed some unnecessary headers. Added current
	list pointer to node structure for error checking.

	* tests/fileio3.c:
	* cdl/fatfs.cdl: Added test fileio3.c to test the media change
	support.

	* doc/mkdisk1: Added this script to create an alternative disk
	image.

2004-02-16  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c (fatfs_setinfo): Added support for sync() function.

	* tests/fileio1.c:	
	* tests/fileio2.c:
	Added call to sync() at end of test. Added some shutdown
	synchronization to fileio2.

2004-02-12  Nick Garnett  <nickg@ecoscentric.com>

	* doc/fatfs.sgml: Added initial documentation.

2004-02-05  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c: Fixed some bugs in reference counting code, mostly
	when handling errors.

	* tests/fileio1.c: Added some extra tests for certain error
	conditions.
	
2004-02-04  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c: When searching the directory tree, keep a reference
	on the current directory. This reference is passed down the search
	and is left on the target object, or the last directory
	searched. Filesystem functions adjusted to release this reference
	when necessary.

	* src/fatfs_ncache.c: Added some debugging for reference counting.

	* tests/fileio1.c:
	* tests/fileio2.c:
	Adjusted tests to make use of new test configuration definitions
	and to behave more sensibly all round.

2004-01-30  Nick Garnett  <nickg@ecoscentric.com>

	* src/fatfs.c: 
	* src/fatfs.h:
	Various changes to support multithreading of access to the
	filesystem.
	
	* src/fatfs_supp.c: 
	* src/fatfs_blib.c:
	Moved BLIB implementation here from a separate package.
	Multithreading requires it to have more detailed knowledge of the
	workings of the filesystem than is easily possible with a separate
	package. This version of the code also has many internal changes
	to support multithreading.

	* src/fatfs_ncache.c: Fixed typo.
	* tests/fileio1.c: Various fixes.
	* tests/fileio2.c: Added to test multithreading support. 
	
	* cdl/fatfs.cdl: Removed dependency on BLIB package. Added fileio2
	test for multithreaded operation.

2004-01-19  Nick Garnett  <nickg@ecoscentric.com>

	* doc/README.txt: 
	* doc/fatfs.ecm: 
	* doc/fat16.ecm: 
	* doc/mkdisk0:
	Added some initial basic documentation, sample configurations and
	shell script to manufacture test disk image.
	
2003-10-18 Savin Zlobec <savin@elatec.si>

        * cdl/fatfs.cdl:
        * src/fatfs.h:
        * src/fatfs_ncache.c:
        Fixed node allocation tresholds (there should be no
        more unnecessary node memory allocation/deallocation).
        Added more sanity checks and a cdl option to enable them.

2003-10-17 Savin Zlobec <savin@elatec.si>
    
        * src/fatfs_supp.c: Fixed dos to unix date conversion.

2003-10-16 Savin Zlobec <savin@elatec.si>

        * src/fatfs.c: Fixed dir entry searching.
        * src/fatfs_ncache.c: Added more sanity checks.

2003-10-13 Savin Zlobec <savin@elatec.si>

        * src/fatfs.h:
        * src/fatfs.c:
        * src/fatfs_supp.c:
        Added FAT12 support and FAT type detection.
        Fixed file deletion.
        Fixed reusing of deleted directory entries.
        Fixed free clusters search.
        Fixed directory renaming.
        Fixed out of space situation while writting.

2003-09-01 Savin Zlobec <savin@elatec.si>

        * cdl/fatfs.cdl:
        * src/fatfs.h:
        * src/fatfs.c:
        * src/fatfs_supp.c:
        * src/fatfs_tcache.c:
        * src/fatfs_ncache.c:
        Implemented block IO with BLib, fixed FAT data access
        problems and added FAT table cache memory constraints. 
        
2003-07-07 Savin Zlobec <savin@elatec.si>

        * cdl/fatfs.cdl:
        * src/fatfs.h:
        * src/fatfs.c:
        * src/fatfs_supp.c:
        * src/fatfs_ncache.c:
        * src/fatfs_tcache.c:
        A FAT16 filesystem implementation



//===========================================================================
// ####GPLCOPYRIGHTBEGIN####                                                
// -------------------------------------------                              
// This file is part of eCos, the Embedded Configurable Operating System.   
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 eCosCentric Limited     
//
// 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 or (at your option) any   
// later version.                                                           
//
// This program is distributed in the hope that it will be useful, but      
// WITHOUT ANY WARRANTY; without even the implied warranty of               
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        
// General Public License for more details.                                 
//
// You should have received a copy of the GNU General Public License        
// along with this program; if not, write to the                            
// Free Software Foundation, Inc., 51 Franklin Street,                      
// Fifth Floor, Boston, MA  02110-1301, USA.                                
// -------------------------------------------                              
// ####GPLCOPYRIGHTEND####                                                  
//===========================================================================
