1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
2009-04-28 John Dallaway <john@dallaway.org.uk>
cdl/io_disk.cdl: Use CYGPKG_IO as the parent.
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
//===========================================================================
// ####GPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 2003, 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
//
// 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####
//===========================================================================
|