Mercurial > ecos
comparison packages/devs/common/current/src/table.cxx @ 0:3111d98ba7b3 ecos-v1_1-release
Initial commit of eCos version 1.1
| author | jlarmour |
|---|---|
| date | Tue, 11 May 1999 11:16:07 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:3111d98ba7b3 |
|---|---|
| 1 //========================================================================== | |
| 2 // | |
| 3 // devs/table.cxx | |
| 4 // | |
| 5 // Virtual Device Table without Virtual Functions | |
| 6 // | |
| 7 //========================================================================== | |
| 8 //####COPYRIGHTBEGIN#### | |
| 9 // | |
| 10 // ------------------------------------------- | |
| 11 // The contents of this file are subject to the Cygnus eCos Public License | |
| 12 // Version 1.0 (the "License"); you may not use this file except in | |
| 13 // compliance with the License. You may obtain a copy of the License at | |
| 14 // http://sourceware.cygnus.com/ecos | |
| 15 // | |
| 16 // Software distributed under the License is distributed on an "AS IS" | |
| 17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the | |
| 18 // License for the specific language governing rights and limitations under | |
| 19 // the License. | |
| 20 // | |
| 21 // The Original Code is eCos - Embedded Cygnus Operating System, released | |
| 22 // September 30, 1998. | |
| 23 // | |
| 24 // The Initial Developer of the Original Code is Cygnus. Portions created | |
| 25 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. | |
| 26 // ------------------------------------------- | |
| 27 // | |
| 28 //####COPYRIGHTEND#### | |
| 29 //========================================================================== | |
| 30 //#####DESCRIPTIONBEGIN#### | |
| 31 // | |
| 32 // Author(s): proven | |
| 33 // Contributors: proven | |
| 34 // Date: 1998-05-20 | |
| 35 // Purpose: Virtual Device Table | |
| 36 // Description: Allow packages to use devices without having to know the | |
| 37 // device class. | |
| 38 // | |
| 39 //####DESCRIPTIONEND#### | |
| 40 // | |
| 41 //========================================================================== | |
| 42 | |
| 43 #include <pkgconf/devices.h> // Include all the possible devices | |
| 44 #include <cyg/infra/cyg_type.h> // Common type definitions and support | |
| 45 #include <cyg/devs/common/table.h> | |
| 46 #include <cyg/hal/hal_diag.h> // HAL diagnostic output | |
| 47 | |
| 48 #ifdef CYG_DEVICE_TABLE | |
| 49 | |
| 50 // --------------------------------------------------------------------------- | |
| 51 // CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 52 | |
| 53 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 54 | |
| 55 externC Cyg_ErrNo | |
| 56 Cyg_Device_Serial_RS232_mn10300_1_read_cancel(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 57 { | |
| 58 cyg_int32 ret; | |
| 59 | |
| 60 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.io_read_cancel(iorb); | |
| 61 CYG_ASSERT(ret == 0, "Read cancel failed to the mn10300 serial port 1."); | |
| 62 return ENOERR; | |
| 63 } | |
| 64 | |
| 65 externC Cyg_ErrNo | |
| 66 Cyg_Device_Serial_RS232_mn10300_1_read_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 67 { | |
| 68 cyg_int32 ret; | |
| 69 | |
| 70 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.io_read_blocking(iorb); | |
| 71 CYG_ASSERT(ret == 0, "Read failed to the mn10300 serial port 1."); | |
| 72 return ENOERR; | |
| 73 } | |
| 74 | |
| 75 externC Cyg_ErrNo | |
| 76 Cyg_Device_Serial_RS232_mn10300_1_write_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 77 { | |
| 78 cyg_int32 ret; | |
| 79 | |
| 80 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.io_write_blocking(iorb); | |
| 81 CYG_ASSERT(ret == 0, "Write failed to the mn10300 serial port 1."); | |
| 82 return ENOERR; | |
| 83 } | |
| 84 | |
| 85 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1_KMODE_INTERRUPT | |
| 86 externC Cyg_ErrNo | |
| 87 Cyg_Device_Serial_RS232_mn10300_1_read_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 88 { | |
| 89 cyg_int32 ret; | |
| 90 | |
| 91 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.io_read_asynchronous(iorb); | |
| 92 CYG_ASSERT(ret == 0, | |
| 93 "Read asynchronous failed to the mn10300 serial port 1."); | |
| 94 return ENOERR; | |
| 95 } | |
| 96 | |
| 97 externC Cyg_ErrNo | |
| 98 Cyg_Device_Serial_RS232_mn10300_1_write_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 99 { | |
| 100 cyg_int32 ret; | |
| 101 | |
| 102 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.io_write_asynchronous(iorb); | |
| 103 CYG_ASSERT(ret == 0, | |
| 104 "Write asynchronous failed to the mn10300 serial port 1."); | |
| 105 return ENOERR; | |
| 106 } | |
| 107 #endif | |
| 108 | |
| 109 // Device specific routines; | |
| 110 externC Cyg_ErrNo | |
| 111 Cyg_Device_Serial_RS232_mn10300_1_set_kmode(CYG_ADDRWORD cookie, cyg_uint32 mode) | |
| 112 { | |
| 113 cyg_int32 ret; | |
| 114 | |
| 115 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.set_kmode(mode); | |
| 116 CYG_ASSERT(ret == 0, "Set kmode failed to the mn10300 serial port 1."); | |
| 117 return ENOERR; | |
| 118 } | |
| 119 | |
| 120 externC Cyg_ErrNo | |
| 121 Cyg_Device_Serial_RS232_mn10300_1_get_baud_rate(CYG_ADDRWORD cookie, | |
| 122 cyg_int32 * old_baud_rate) | |
| 123 { | |
| 124 *old_baud_rate = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.get_baud_rate(); | |
| 125 return ENOERR; | |
| 126 } | |
| 127 | |
| 128 externC Cyg_ErrNo | |
| 129 Cyg_Device_Serial_RS232_mn10300_1_set_baud_rate(CYG_ADDRWORD cookie, | |
| 130 cyg_int32 baud_rate, cyg_int32 * old_baud_rate) | |
| 131 { | |
| 132 *old_baud_rate = | |
| 133 CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.set_baud_rate(baud_rate); | |
| 134 CYG_ASSERT(*old_baud_rate >= 0, | |
| 135 "Set baud rate failed to the mn10300 serial port 1."); | |
| 136 return ENOERR; | |
| 137 } | |
| 138 | |
| 139 externC Cyg_ErrNo | |
| 140 Cyg_Device_Serial_RS232_mn10300_1_get_line_mode(CYG_ADDRWORD cookie, | |
| 141 cyg_int32 * line_mode) | |
| 142 { | |
| 143 *line_mode = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.get_line_mode(); | |
| 144 return ENOERR; | |
| 145 } | |
| 146 | |
| 147 externC Cyg_ErrNo | |
| 148 Cyg_Device_Serial_RS232_mn10300_1_set_line_mode(CYG_ADDRWORD cookie, | |
| 149 cyg_int32 line_mode, cyg_int32 * old_line_mode) | |
| 150 { | |
| 151 *old_line_mode = | |
| 152 CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.set_line_mode(line_mode); | |
| 153 CYG_ASSERT(*old_line_mode >= 0, | |
| 154 "Set line mode failed to the mn10300 serial port 1."); | |
| 155 return ENOERR; | |
| 156 } | |
| 157 | |
| 158 // externC Cyg_ErrNo | |
| 159 // Cyg_Device_Serial_RS232_mn10300_1_get_read_mode(CYG_ADDRWORD cookie, | |
| 160 // cyg_int32 * read_mode) | |
| 161 // { | |
| 162 // *line_mode = serial.get_read_mode(); | |
| 163 // return ENOERR; | |
| 164 // } | |
| 165 | |
| 166 externC Cyg_ErrNo | |
| 167 Cyg_Device_Serial_RS232_mn10300_1_set_read_mode(CYG_ADDRWORD cookie, | |
| 168 cyg_int32 read_mode, cyg_int32 * old_read_mode) | |
| 169 { | |
| 170 *old_read_mode = | |
| 171 CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.set_read_mode(read_mode); | |
| 172 CYG_ASSERT(*old_read_mode >= 0, | |
| 173 "Set read mode failed to the mn10300 serial port 1."); | |
| 174 return ENOERR; | |
| 175 } | |
| 176 | |
| 177 externC Cyg_ErrNo | |
| 178 Cyg_Device_Serial_RS232_mn10300_1_set_read_data(CYG_ADDRWORD cookie, | |
| 179 cyg_int32 mode, const char * str, cyg_uint32 length) | |
| 180 { | |
| 181 cyg_int32 ret; | |
| 182 | |
| 183 ret = CYG_DEVICE_SERIAL_RS232_MN10300_1_NAME.set_read_data(mode, str, length); | |
| 184 CYG_ASSERT(0 == ret, "Set read data failed to the mn10300 serial port 1."); | |
| 185 return ENOERR; | |
| 186 } | |
| 187 | |
| 188 #endif // CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 189 | |
| 190 // --------------------------------------------------------------------------- | |
| 191 // CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 192 | |
| 193 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 194 | |
| 195 externC Cyg_ErrNo | |
| 196 Cyg_Device_Serial_RS232_mn10300_2_read_cancel(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 197 { | |
| 198 cyg_int32 ret; | |
| 199 | |
| 200 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.io_read_cancel(iorb); | |
| 201 CYG_ASSERT(ret == 0, "Read cancel failed to the mn10300 serial port 2."); | |
| 202 return ENOERR; | |
| 203 } | |
| 204 | |
| 205 externC Cyg_ErrNo | |
| 206 Cyg_Device_Serial_RS232_mn10300_2_read_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 207 { | |
| 208 cyg_int32 ret; | |
| 209 | |
| 210 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.io_read_blocking(iorb); | |
| 211 CYG_ASSERT(ret == 0, "Read failed to the mn10300 serial port 2."); | |
| 212 return ENOERR; | |
| 213 } | |
| 214 | |
| 215 externC Cyg_ErrNo | |
| 216 Cyg_Device_Serial_RS232_mn10300_2_write_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 217 { | |
| 218 cyg_int32 ret; | |
| 219 | |
| 220 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.io_write_blocking(iorb); | |
| 221 CYG_ASSERT(ret == 0, "Write failed to the mn10300 serial port 2."); | |
| 222 return ENOERR; | |
| 223 } | |
| 224 | |
| 225 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2_KMODE_INTERRUPT | |
| 226 externC Cyg_ErrNo | |
| 227 Cyg_Device_Serial_RS232_mn10300_2_read_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 228 { | |
| 229 cyg_int32 ret; | |
| 230 | |
| 231 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.io_read_asynchronous(iorb); | |
| 232 CYG_ASSERT(ret == 0, | |
| 233 "Read asynchronous failed to the mn10300 serial port 2."); | |
| 234 return ENOERR; | |
| 235 } | |
| 236 | |
| 237 externC Cyg_ErrNo | |
| 238 Cyg_Device_Serial_RS232_mn10300_2_write_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 239 { | |
| 240 cyg_int32 ret; | |
| 241 | |
| 242 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.io_write_asynchronous(iorb); | |
| 243 CYG_ASSERT(ret == 0, | |
| 244 "Write asynchronous failed to the mn10300 serial port 2."); | |
| 245 return ENOERR; | |
| 246 } | |
| 247 #endif | |
| 248 | |
| 249 // Device specific routines; | |
| 250 externC Cyg_ErrNo | |
| 251 Cyg_Device_Serial_RS232_mn10300_2_set_kmode(CYG_ADDRWORD cookie, cyg_uint32 mode) | |
| 252 { | |
| 253 cyg_int32 ret; | |
| 254 | |
| 255 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.set_kmode(mode); | |
| 256 CYG_ASSERT(ret == 0, "Set kmode failed to the mn10300 serial port 2."); | |
| 257 return ENOERR; | |
| 258 } | |
| 259 | |
| 260 externC Cyg_ErrNo | |
| 261 Cyg_Device_Serial_RS232_mn10300_2_get_baud_rate(CYG_ADDRWORD cookie, | |
| 262 cyg_int32 * old_baud_rate) | |
| 263 { | |
| 264 *old_baud_rate = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.get_baud_rate(); | |
| 265 return ENOERR; | |
| 266 } | |
| 267 | |
| 268 externC Cyg_ErrNo | |
| 269 Cyg_Device_Serial_RS232_mn10300_2_set_baud_rate(CYG_ADDRWORD cookie, | |
| 270 cyg_int32 baud_rate, cyg_int32 * old_baud_rate) | |
| 271 { | |
| 272 *old_baud_rate = | |
| 273 CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.set_baud_rate(baud_rate); | |
| 274 CYG_ASSERT(*old_baud_rate >= 0, | |
| 275 "Set baud rate failed to the mn10300 serial port 2."); | |
| 276 return ENOERR; | |
| 277 } | |
| 278 | |
| 279 externC Cyg_ErrNo | |
| 280 Cyg_Device_Serial_RS232_mn10300_2_get_line_mode(CYG_ADDRWORD cookie, | |
| 281 cyg_int32 * line_mode) | |
| 282 { | |
| 283 *line_mode = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.get_line_mode(); | |
| 284 return ENOERR; | |
| 285 } | |
| 286 | |
| 287 externC Cyg_ErrNo | |
| 288 Cyg_Device_Serial_RS232_mn10300_2_set_line_mode(CYG_ADDRWORD cookie, | |
| 289 cyg_int32 line_mode, cyg_int32 * old_line_mode) | |
| 290 { | |
| 291 *old_line_mode = | |
| 292 CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.set_line_mode(line_mode); | |
| 293 CYG_ASSERT(*old_line_mode >= 0, | |
| 294 "Set line mode failed to the mn10300 serial port 2."); | |
| 295 return ENOERR; | |
| 296 } | |
| 297 | |
| 298 // externC Cyg_ErrNo | |
| 299 // Cyg_Device_Serial_RS232_mn10300_2_get_read_mode(CYG_ADDRWORD cookie, | |
| 300 // cyg_int32 * read_mode) | |
| 301 // { | |
| 302 // *line_mode = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.get_read_mode(); | |
| 303 // return ENOERR; | |
| 304 // } | |
| 305 | |
| 306 externC Cyg_ErrNo | |
| 307 Cyg_Device_Serial_RS232_mn10300_2_set_read_mode(CYG_ADDRWORD cookie, | |
| 308 cyg_int32 read_mode, cyg_int32 * old_read_mode) | |
| 309 { | |
| 310 *old_read_mode = | |
| 311 CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.set_read_mode(read_mode); | |
| 312 CYG_ASSERT(*old_read_mode >= 0, | |
| 313 "Set read mode failed to the mn10300 serial port 2."); | |
| 314 return ENOERR; | |
| 315 } | |
| 316 | |
| 317 externC Cyg_ErrNo | |
| 318 Cyg_Device_Serial_RS232_mn10300_2_set_read_data(CYG_ADDRWORD cookie, | |
| 319 cyg_int32 mode, const char * str, cyg_uint32 length) | |
| 320 { | |
| 321 cyg_int32 ret; | |
| 322 | |
| 323 ret = CYG_DEVICE_SERIAL_RS232_MN10300_2_NAME.set_read_data(mode, str, length); | |
| 324 CYG_ASSERT(0 == ret, "Set read data failed to the mn10300 serial port 2."); | |
| 325 return ENOERR; | |
| 326 } | |
| 327 | |
| 328 #endif // CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 329 | |
| 330 // --------------------------------------------------------------------------- | |
| 331 // CYG_DEVICE_SERIAL_RS232_TX39 | |
| 332 | |
| 333 #ifdef CYG_DEVICE_SERIAL_RS232_TX39 | |
| 334 | |
| 335 externC Cyg_ErrNo | |
| 336 Cyg_Device_Serial_RS232_tx39_read_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 337 { | |
| 338 cyg_int32 ret; | |
| 339 | |
| 340 ret = CYG_DEVICE_SERIAL_RS232_TX39_NAME.io_read_blocking(iorb); | |
| 341 CYG_ASSERT(ret == 0, "Read failed to the TX39 serial port 0."); | |
| 342 return ENOERR; | |
| 343 } | |
| 344 | |
| 345 externC Cyg_ErrNo | |
| 346 Cyg_Device_Serial_RS232_tx39_write_blocking(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 347 { | |
| 348 cyg_int32 ret; | |
| 349 | |
| 350 ret = CYG_DEVICE_SERIAL_RS232_TX39_NAME.io_write_blocking(iorb); | |
| 351 CYG_ASSERT(ret == 0, "Write failed to the TX39 serial port 0."); | |
| 352 return ENOERR; | |
| 353 } | |
| 354 | |
| 355 #ifdef CYG_DEVICE_SERIAL_RS232_TX39_KMODE_INTERRUPT | |
| 356 externC Cyg_ErrNo | |
| 357 Cyg_Device_Serial_RS232_tx39_read_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 358 { | |
| 359 cyg_int32 ret; | |
| 360 | |
| 361 ret = CYG_DEVICE_SERIAL_RS232_TX39_NAME.io_read_asynchronous(iorb); | |
| 362 CYG_ASSERT(ret == 0, | |
| 363 "Read asynchronous failed to the TX39 serial port 0."); | |
| 364 return ENOERR; | |
| 365 } | |
| 366 | |
| 367 externC Cyg_ErrNo | |
| 368 Cyg_Device_Serial_RS232_tx39_write_asynchronous(CYG_ADDRWORD cookie, Cyg_IORB * iorb) | |
| 369 { | |
| 370 cyg_int32 ret; | |
| 371 | |
| 372 ret = CYG_DEVICE_SERIAL_RS232_TX39_NAME.io_write_asynchronous(iorb); | |
| 373 CYG_ASSERT(ret == 0, | |
| 374 "Write asynchronous failed to the TX39 serial port 0."); | |
| 375 return ENOERR; | |
| 376 } | |
| 377 #endif | |
| 378 | |
| 379 // Device specific routines; | |
| 380 externC Cyg_ErrNo | |
| 381 Cyg_Device_Serial_RS232_tx39_set_kmode(CYG_ADDRWORD cookie, cyg_uint32 mode) | |
| 382 { | |
| 383 cyg_int32 ret; | |
| 384 | |
| 385 ret = CYG_DEVICE_SERIAL_RS232_TX39_NAME.set_kmode(mode); | |
| 386 CYG_ASSERT(ret == 0, "Set kmode failed to the TX39 serial port 0."); | |
| 387 return ENOERR; | |
| 388 } | |
| 389 | |
| 390 externC Cyg_ErrNo | |
| 391 Cyg_Device_Serial_RS232_tx39_get_baud_rate(CYG_ADDRWORD cookie, | |
| 392 cyg_int32 * old_baud_rate) | |
| 393 { | |
| 394 *old_baud_rate = CYG_DEVICE_SERIAL_RS232_TX39_NAME.get_baud_rate(); | |
| 395 return ENOERR; | |
| 396 } | |
| 397 | |
| 398 externC Cyg_ErrNo | |
| 399 Cyg_Device_Serial_RS232_tx39_set_baud_rate(CYG_ADDRWORD cookie, | |
| 400 cyg_int32 baud_rate, cyg_int32 * old_baud_rate) | |
| 401 { | |
| 402 *old_baud_rate = | |
| 403 CYG_DEVICE_SERIAL_RS232_TX39_NAME.set_baud_rate(baud_rate); | |
| 404 CYG_ASSERT(*old_baud_rate >= 0, | |
| 405 "Set baud rate failed to the TX39 serial port 0."); | |
| 406 return ENOERR; | |
| 407 } | |
| 408 | |
| 409 externC Cyg_ErrNo | |
| 410 Cyg_Device_Serial_RS232_tx39_get_line_mode(CYG_ADDRWORD cookie, | |
| 411 cyg_int32 * line_mode) | |
| 412 { | |
| 413 *line_mode = CYG_DEVICE_SERIAL_RS232_TX39_NAME.get_line_mode(); | |
| 414 return ENOERR; | |
| 415 } | |
| 416 | |
| 417 externC Cyg_ErrNo | |
| 418 Cyg_Device_Serial_RS232_tx39_set_line_mode(CYG_ADDRWORD cookie, | |
| 419 cyg_int32 line_mode, cyg_int32 * old_line_mode) | |
| 420 { | |
| 421 *old_line_mode = | |
| 422 CYG_DEVICE_SERIAL_RS232_TX39_NAME.set_line_mode(line_mode); | |
| 423 CYG_ASSERT(*old_line_mode >= 0, | |
| 424 "Set line mode failed to the TX39 serial port 0."); | |
| 425 return ENOERR; | |
| 426 } | |
| 427 | |
| 428 #endif /* CYG_DEVICE_SERIAL_RS232_TX39 */ | |
| 429 | |
| 430 // --------------------------------------------------------------------------- | |
| 431 // HAL_DIAG | |
| 432 | |
| 433 #ifdef HAL_DIAG_INIT | |
| 434 externC Cyg_ErrNo | |
| 435 Cyg_Device_Pseudo_Hal_Diag_open( CYG_ADDRWORD cookie, Cyg_DeviceOpenMode ) | |
| 436 { | |
| 437 HAL_DIAG_INIT(); | |
| 438 return ENOERR; | |
| 439 } | |
| 440 #endif | |
| 441 | |
| 442 #ifdef HAL_DIAG_READ_CHAR | |
| 443 externC Cyg_ErrNo | |
| 444 Cyg_Device_Pseudo_Hal_Diag_read_blocking( CYG_ADDRWORD cookie, Cyg_IORB *iorb ) | |
| 445 { | |
| 446 cyg_ucount32 i; | |
| 447 cyg_bool exit_loop = false; | |
| 448 | |
| 449 for (i=0; (i < iorb->buffer_length) && !exit_loop; i++) | |
| 450 { | |
| 451 HAL_DIAG_READ_CHAR(* ((char*)iorb->buffer + i) ); | |
| 452 | |
| 453 // exit loop on certain characters, newline, EOF, etc. | |
| 454 switch (*((char*)iorb->buffer + i)) | |
| 455 { | |
| 456 case 4: | |
| 457 case 10: | |
| 458 case 13: | |
| 459 case 26: | |
| 460 exit_loop = true; | |
| 461 break; | |
| 462 default: | |
| 463 break; | |
| 464 } // switch | |
| 465 } // for | |
| 466 | |
| 467 iorb->xferred_length = i; | |
| 468 return ENOERR; | |
| 469 } | |
| 470 #endif | |
| 471 | |
| 472 #ifdef HAL_DIAG_WRITE_CHAR | |
| 473 externC Cyg_ErrNo | |
| 474 Cyg_Device_Pseudo_Hal_Diag_write_blocking( CYG_ADDRWORD cookie, Cyg_IORB *iorb ) | |
| 475 { | |
| 476 cyg_ucount32 i; | |
| 477 | |
| 478 for (i=0; i < iorb->buffer_length; i++) | |
| 479 { | |
| 480 HAL_DIAG_WRITE_CHAR(*((char *)iorb->buffer + i)); | |
| 481 } // for | |
| 482 | |
| 483 iorb->xferred_length = iorb->buffer_length; | |
| 484 return ENOERR; | |
| 485 } | |
| 486 #endif | |
| 487 | |
| 488 // --------------------------------------------------------------------------- | |
| 489 // Device specific ioctl table | |
| 490 // | |
| 491 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 492 struct Cyg_Device_Serial_RS232_Table_t Cyg_Device_Serial_RS232_mn10300_1_Table = | |
| 493 { | |
| 494 &Cyg_Device_Serial_RS232_mn10300_1_set_kmode, | |
| 495 &Cyg_Device_Serial_RS232_mn10300_1_get_baud_rate, | |
| 496 &Cyg_Device_Serial_RS232_mn10300_1_set_baud_rate, | |
| 497 &Cyg_Device_Serial_RS232_mn10300_1_get_line_mode, | |
| 498 &Cyg_Device_Serial_RS232_mn10300_1_set_line_mode, | |
| 499 NULL, | |
| 500 &Cyg_Device_Serial_RS232_mn10300_1_set_read_mode, | |
| 501 &Cyg_Device_Serial_RS232_mn10300_1_set_read_data | |
| 502 }; | |
| 503 #endif | |
| 504 | |
| 505 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 506 struct Cyg_Device_Serial_RS232_Table_t Cyg_Device_Serial_RS232_mn10300_2_Table = | |
| 507 { | |
| 508 &Cyg_Device_Serial_RS232_mn10300_2_set_kmode, | |
| 509 &Cyg_Device_Serial_RS232_mn10300_2_get_baud_rate, | |
| 510 &Cyg_Device_Serial_RS232_mn10300_2_set_baud_rate, | |
| 511 &Cyg_Device_Serial_RS232_mn10300_2_get_line_mode, | |
| 512 &Cyg_Device_Serial_RS232_mn10300_2_set_line_mode, | |
| 513 NULL, | |
| 514 &Cyg_Device_Serial_RS232_mn10300_2_set_read_mode, | |
| 515 &Cyg_Device_Serial_RS232_mn10300_2_set_read_data | |
| 516 }; | |
| 517 #endif | |
| 518 | |
| 519 #ifdef CYG_DEVICE_SERIAL_RS232_TX39 | |
| 520 struct Cyg_Device_Serial_RS232_Table_t Cyg_Device_Serial_RS232_tx39_Table = | |
| 521 { | |
| 522 &Cyg_Device_Serial_RS232_tx39_set_kmode, | |
| 523 &Cyg_Device_Serial_RS232_tx39_get_baud_rate, | |
| 524 &Cyg_Device_Serial_RS232_tx39_set_baud_rate, | |
| 525 &Cyg_Device_Serial_RS232_tx39_get_line_mode, | |
| 526 &Cyg_Device_Serial_RS232_tx39_set_line_mode, | |
| 527 NULL, NULL, NULL | |
| 528 }; | |
| 529 #endif | |
| 530 // --------------------------------------------------------------------------- | |
| 531 // Device table | |
| 532 // | |
| 533 struct Cyg_Device_Table_t Cyg_Device_Table[] = { | |
| 534 | |
| 535 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 536 { "serial1", (CYG_ADDRWORD) 0, | |
| 537 NULL, // no open | |
| 538 &Cyg_Device_Serial_RS232_mn10300_1_read_cancel, | |
| 539 NULL, | |
| 540 &Cyg_Device_Serial_RS232_mn10300_1_read_blocking, | |
| 541 &Cyg_Device_Serial_RS232_mn10300_1_write_blocking, | |
| 542 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1_KMODE_INTERRUPT | |
| 543 &Cyg_Device_Serial_RS232_mn10300_1_read_asynchronous, | |
| 544 &Cyg_Device_Serial_RS232_mn10300_1_write_asynchronous, | |
| 545 #else | |
| 546 NULL, NULL, | |
| 547 #endif | |
| 548 NULL, // no close | |
| 549 (CYG_ADDRWORD)&Cyg_Device_Serial_RS232_mn10300_1_Table | |
| 550 }, | |
| 551 #endif | |
| 552 | |
| 553 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 554 { "serial2", (CYG_ADDRWORD) 0, | |
| 555 NULL, // no open | |
| 556 &Cyg_Device_Serial_RS232_mn10300_2_read_cancel, | |
| 557 NULL, | |
| 558 &Cyg_Device_Serial_RS232_mn10300_2_read_blocking, | |
| 559 &Cyg_Device_Serial_RS232_mn10300_2_write_blocking, | |
| 560 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2_KMODE_INTERRUPT | |
| 561 &Cyg_Device_Serial_RS232_mn10300_2_read_asynchronous, | |
| 562 &Cyg_Device_Serial_RS232_mn10300_2_write_asynchronous, | |
| 563 #else | |
| 564 NULL, NULL, | |
| 565 #endif | |
| 566 NULL, // no close | |
| 567 (CYG_ADDRWORD)&Cyg_Device_Serial_RS232_mn10300_2_Table | |
| 568 }, | |
| 569 #endif | |
| 570 | |
| 571 #ifdef CYG_DEVICE_SERIAL_RS232_TX39 | |
| 572 { "serial0", (CYG_ADDRWORD) 0, | |
| 573 NULL, // no open | |
| 574 NULL, | |
| 575 NULL, | |
| 576 &Cyg_Device_Serial_RS232_tx39_read_blocking, | |
| 577 &Cyg_Device_Serial_RS232_tx39_write_blocking, | |
| 578 #ifdef CYG_DEVICE_SERIAL_RS232_TX39_KMODE_INTERRUPT | |
| 579 &Cyg_Device_Serial_RS232_tx39_read_asynchronous, | |
| 580 &Cyg_Device_Serial_RS232_tx39_write_asynchronous, | |
| 581 #else | |
| 582 NULL,NULL, | |
| 583 #endif | |
| 584 NULL, // no close | |
| 585 (CYG_ADDRWORD)&Cyg_Device_Serial_RS232_tx39_Table | |
| 586 }, | |
| 587 #endif | |
| 588 | |
| 589 { "haldiag", (CYG_ADDRWORD) 0, | |
| 590 #ifdef HAL_DIAG_INIT | |
| 591 &Cyg_Device_Pseudo_Hal_Diag_open, | |
| 592 #else | |
| 593 NULL, | |
| 594 #endif | |
| 595 | |
| 596 NULL, | |
| 597 NULL, | |
| 598 | |
| 599 #ifdef HAL_DIAG_READ_CHAR | |
| 600 &Cyg_Device_Pseudo_Hal_Diag_read_blocking, | |
| 601 #else | |
| 602 NULL, | |
| 603 #endif | |
| 604 | |
| 605 #ifdef HAL_DIAG_WRITE_CHAR | |
| 606 &Cyg_Device_Pseudo_Hal_Diag_write_blocking, | |
| 607 #else | |
| 608 NULL, | |
| 609 #endif | |
| 610 NULL }, // no close | |
| 611 | |
| 612 { NULL, (CYG_ADDRWORD) 0, NULL, NULL, NULL, NULL } | |
| 613 }; | |
| 614 | |
| 615 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_1 | |
| 616 CYG_ADDRWORD stdeval1_serial1 = (CYG_ADDRWORD)&Cyg_Device_Table[0]; | |
| 617 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 618 CYG_ADDRWORD stdeval1_serial2 = (CYG_ADDRWORD)&Cyg_Device_Table[1]; | |
| 619 #endif | |
| 620 #else | |
| 621 #ifdef CYG_DEVICE_SERIAL_RS232_MN10300_2 | |
| 622 CYG_ADDRWORD stdeval1_serial2 = (CYG_ADDRWORD)&Cyg_Device_Table[0]; | |
| 623 #endif | |
| 624 #endif | |
| 625 | |
| 626 #ifdef CYG_DEVICE_SERIAL_RS232_TX39 | |
| 627 CYG_ADDRWORD jmr3904_serial = (CYG_ADDRWORD)&Cyg_Device_Table[0]; | |
| 628 #endif | |
| 629 | |
| 630 #endif | |
| 631 | |
| 632 /*---------------------------------------------------------------------------*/ | |
| 633 /* End of devs/table.cxx */ |
