This is the mail archive of the ecos-cvs@sourceware.org mailing list for the ecos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ecos/packages/io/disk/current ChangeLog includ ...


CVSROOT:	/cvs/ecos
Module name:	ecos
Changes by:	jlarmour@sourceware.org	2006-09-21 16:38:38

Modified files:
	packages/io/disk/current: ChangeLog 
	packages/io/disk/current/include: disk.h diskio.h 
	packages/io/disk/current/src: disk.c 

Log message:
	* 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.
	* 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.
	* 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.
	* include/disk.h (DISK_CHANNEL_INIT): New macro. Allows a
	DISK_CHANNEL to be defined dynamically.
	* src/disk.c (disk_bread, disk_bwrite): Made calls to
	cyg_thread_yield() dependent on presence ok kernel.
	* 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.
	* 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.
	* 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.
	* 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.
	* 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]