comparison packages/io/flash/current/src/legacy_dev.c @ 1763:42c8ea63b78d

Eliminate hwr_map_error() from the V2 driver interface, it no longer serves any useful purpose
author bartv
date Mon, 29 Nov 2004 14:49:20 +0000
parents 9c1d9e5039c2
children 96ec7e534d98
comparison
equal deleted inserted replaced
1762:9c1d9e5039c2 1763:42c8ea63b78d
122 cyg_flashaddr_t block_base) 122 cyg_flashaddr_t block_base)
123 { 123 {
124 typedef int code_fun(cyg_flashaddr_t, unsigned int); 124 typedef int code_fun(cyg_flashaddr_t, unsigned int);
125 code_fun *_flash_erase_block; 125 code_fun *_flash_erase_block;
126 size_t block_size = dev->block_info[0].block_size; 126 size_t block_size = dev->block_info[0].block_size;
127 int stat;
127 128
128 _flash_erase_block = (code_fun*) cyg_flash_anonymizer(&flash_erase_block); 129 _flash_erase_block = (code_fun*) cyg_flash_anonymizer(&flash_erase_block);
129 130
130 return (*_flash_erase_block)(block_base, block_size); 131 stat = (*_flash_erase_block)(block_base, block_size);
132 return flash_hwr_map_error(stat);
131 } 133 }
132 134
133 static int 135 static int
134 legacy_flash_program(struct cyg_flash_dev *dev, 136 legacy_flash_program(struct cyg_flash_dev *dev,
135 cyg_flashaddr_t base, 137 cyg_flashaddr_t base,
137 { 139 {
138 typedef int code_fun(cyg_flashaddr_t, const void *, int, unsigned long, int); 140 typedef int code_fun(cyg_flashaddr_t, const void *, int, unsigned long, int);
139 code_fun *_flash_program_buf; 141 code_fun *_flash_program_buf;
140 size_t block_size = dev->block_info[0].block_size; 142 size_t block_size = dev->block_info[0].block_size;
141 size_t block_mask = ~(block_mask -1); 143 size_t block_mask = ~(block_mask -1);
142 144 int stat;
145
143 _flash_program_buf = (code_fun*) cyg_flash_anonymizer(&flash_program_buf); 146 _flash_program_buf = (code_fun*) cyg_flash_anonymizer(&flash_program_buf);
144 147
145 return (*_flash_program_buf)(base, data, len, block_mask ,block_size); 148 stat = (*_flash_program_buf)(base, data, len, block_mask ,block_size);
149 return flash_hwr_map_error(stat);
146 } 150 }
147 151
148 #ifdef CYGSEM_IO_FLASH_READ_INDIRECT 152 #ifdef CYGSEM_IO_FLASH_READ_INDIRECT
149 static int 153 static int
150 legacy_flash_read (struct cyg_flash_dev *dev, 154 legacy_flash_read (struct cyg_flash_dev *dev,
153 { 157 {
154 typedef int code_fun(const cyg_flashaddr_t, void *, int, unsigned long, int); 158 typedef int code_fun(const cyg_flashaddr_t, void *, int, unsigned long, int);
155 code_fun *_flash_read_buf; 159 code_fun *_flash_read_buf;
156 size_t block_size = dev->block_info[0].block_size; 160 size_t block_size = dev->block_info[0].block_size;
157 size_t block_mask = ~(block_mask -1); 161 size_t block_mask = ~(block_mask -1);
158 162 int stat;
159 _flash_read_buf = (code_fun*) cyg_flash_anonymizer(&flash_read_buf); 163 _flash_read_buf = (code_fun*) cyg_flash_anonymizer(&flash_read_buf);
160 164
161 return (*_flash_read_buf)(base, data, len, block_mask, block_size); 165 stat = (*_flash_read_buf)(base, data, len, block_mask, block_size);
166 return flash_hwr_map_error(stat);
162 } 167 }
163 168
164 # define LEGACY_FLASH_READ legacy_flash_read 169 # define LEGACY_FLASH_READ legacy_flash_read
165 #else 170 #else
166 # define LEGACY_FLASH_READ ((int (*)(struct cyg_flash_dev*, const cyg_flashaddr_t, void*, const size_t))0) 171 # define LEGACY_FLASH_READ ((int (*)(struct cyg_flash_dev*, const cyg_flashaddr_t, void*, const size_t))0)
172 legacy_flash_block_lock (struct cyg_flash_dev *dev, 177 legacy_flash_block_lock (struct cyg_flash_dev *dev,
173 const cyg_flashaddr_t block_base) 178 const cyg_flashaddr_t block_base)
174 { 179 {
175 typedef int code_fun(cyg_flashaddr_t); 180 typedef int code_fun(cyg_flashaddr_t);
176 code_fun *_flash_lock_block; 181 code_fun *_flash_lock_block;
177 182 int stat;
178 _flash_lock_block = (code_fun*) cyg_flash_anonymizer(&flash_lock_block); 183 _flash_lock_block = (code_fun*) cyg_flash_anonymizer(&flash_lock_block);
179 184
180 return (*_flash_lock_block)(block_base); 185 stat = (*_flash_lock_block)(block_base);
186 return flash_hwr_map_error(stat);
181 } 187 }
182 188
183 static int 189 static int
184 legacy_flash_block_unlock (struct cyg_flash_dev *dev, 190 legacy_flash_block_unlock (struct cyg_flash_dev *dev,
185 const cyg_flashaddr_t block_base) 191 const cyg_flashaddr_t block_base)
186 { 192 {
187 typedef int code_fun(cyg_flashaddr_t, int, int); 193 typedef int code_fun(cyg_flashaddr_t, int, int);
188 code_fun *_flash_unlock_block; 194 code_fun *_flash_unlock_block;
189 size_t block_size = dev->block_info[0].block_size; 195 size_t block_size = dev->block_info[0].block_size;
190 cyg_uint32 blocks = dev->block_info[0].blocks; 196 cyg_uint32 blocks = dev->block_info[0].blocks;
191 197 int stat;
192 _flash_unlock_block = (code_fun*) cyg_flash_anonymizer(&flash_unlock_block); 198 _flash_unlock_block = (code_fun*) cyg_flash_anonymizer(&flash_unlock_block);
193 199
194 return (*_flash_unlock_block)(block_base, block_size, blocks); 200 stat = (*_flash_unlock_block)(block_base, block_size, blocks);
201 return flash_hwr_map_error(stat);
195 } 202 }
196 #endif 203 #endif
197
198 // Map a hardware status to a package error
199 static int
200 legacy_flash_hwr_map_error (struct cyg_flash_dev *dev, int err)
201 {
202 return flash_hwr_map_error(err);
203 }
204 204
205 void 205 void
206 flash_dev_query(void* data) 206 flash_dev_query(void* data)
207 { 207 {
208 typedef void code_fun(void*); 208 typedef void code_fun(void*);
220 legacy_flash_init, 220 legacy_flash_init,
221 legacy_flash_query, 221 legacy_flash_query,
222 legacy_flash_erase_block, 222 legacy_flash_erase_block,
223 legacy_flash_program, 223 legacy_flash_program,
224 LEGACY_FLASH_READ, 224 LEGACY_FLASH_READ,
225 legacy_flash_hwr_map_error,
226 legacy_flash_block_lock, 225 legacy_flash_block_lock,
227 legacy_flash_block_unlock 226 legacy_flash_block_unlock
228 ); 227 );
229 228
230 CYG_FLASH_DRIVER(cyg_zzlegacy_flashdev, 229 CYG_FLASH_DRIVER(cyg_zzlegacy_flashdev,