2006-09-21  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/disk.h (DISK_CHANNEL): No need for extra _part_dev
	slot intended for entire disk's own devtab.

	* src/disk.c (disk_lookup): Just access pdevs_dev directly
	with no adjusted offset.
	(disk_init): No longer set entry 0 from device devtab.
	It's unnecessary.

2006-09-20  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/disk.h: Merge eCosCentric CVS with public eCos CVS.
	This merges (and therefore changes) the API. ChangeLog
	entries have been incorporated in the correct places below.
	* include/diskio.h: Also merged.
	* cdl/io_disk.cdl: Also merged.
	* src/disk.c: Also merged.

2006-08-18  Andy Jackson  <andy@xylanta.com>

	* cdl/io_disk.cdl: Made debugging CDL controlled. 
	* src/disk.c: Added support to allow non-CHS disk devices to 
	use LBA information in MBR.

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

	* src/disk.c (read_partition): Switched to favour LBA partition
	information in partition tables. This also means we don't now rely
	on the driver reporting a correct CHS size for the disk.
	(disk_bread, disk_bwrite): API changed to take length in sectors
	rather than bytes. Also call hardware driver to transfer in
	(up to) max_transfer sized chunks, rather than a sector at a
	time. Call in to driver now made with DSR lock claimed, to avoid a
	race condition between the DSR and the calling thread.
	(disk_get_config): Added phys_block_size to channel info.

	* include/diskio.h (struct cyg_disk_identify_t): Added
	phys_block_size and max_transfer fields. These must be filled in
	by the driver.

2005-12-12  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/disk.h (DISK_CHANNEL_INIT): New macro. Allows a
	DISK_CHANNEL to be defined dynamically.

2005-12-02  Andrew Lunn  <andrew.lunn@ascom.ch>

	* src/disk.c: Add comments that bread/bwrite take the position and
	len in terms of blocks, not bytes.

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

	* src/disk.c (disk_bread, disk_bwrite): Made calls to
	cyg_thread_yield() dependent on presence ok kernel.

2005-06-01  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/disk.c (disk_bwrite): Uncomment the cyg_thread_yield() at
	the end to prevent thread starvation between threads at the same
	priority.
	(disk_bread): Ditto.

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

	* src/disk.c (read_partition): Changed to account for very large
	disks which report bogus CHS geometry. We can only use the LBA
	partition parameters in such disks.
	(disk_set_config): Added some extra debug output.

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

 	* src/disk.c:
 	* include/disk.h:
 	* include/diskio.h:
 	Use predefined arrays for partition devices and info 
 	radher than malloc. Extended DISK_CHANNEL macro to
  	support defining maximum number of partitions.

2004-04-15  Nick Garnett  <nickg@ecoscentric.com>

	* src/disk.c: 
	Various changes to support disconnect/reconnect of changeable
	media.

	* include/diskio.h: Added mount counter to disk_info structure.

	* include/disk.h: Changed disk_disconnected() function to take a
	pointer to a struct disk_channel rather than a struct
	cyg_devtab_entry. Added mount count to disk_channel structure.
	Moved include of diskio.h to end to fix declaration problems.

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

	* src/disk.c: Fixed bug in write routine where controller result
	field was not being initialized. Added signals on controller queue
	condition variable after setting controller busy flag to false.

	* include/disk.h: Made controller result and busy fields
	volatile. Just in case.

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

	* include/disk.h: 
	* src/disk.c:
	Many changes. Added additional disk_controller data structure to
	better reflect hardware structure. Added support for serialization
	of multithreaded accesses to a single controller. Added support
	for asynchronous, interrupt driven, IO operations. Various
	tidies.

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

	* src/disk.c:
	* include/disk.h: Removed block_pos arguments from
	hardware driver read and write calls: it is not necessary.

	* src/disk.c (read_mbr): Modified to read a complete sector from
	the disk rather than pieces. Drivers should only ever see
	reads/writes in multiples of 512 bytes.

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

	* src/disk.c:
        Check return code from MBR scan and set
        connected flag only if there was no error.

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

        * cdl/io_disk.cdl:
        * inc/disk.h:
        * inc/diskio.h:
        * src/disk.c:
        A block device IO implementation



//===========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 2003 Savin Zlobec
// Copyright (C) 2004, 2005, 2006 eCosCentric Limited
//
// eCos 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.
//
// eCos 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 eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
//
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//===========================================================================
