Mercurial > flash_v2
diff packages/io/serial/current/src/common/haldiag.c @ 2:443894e2e912 ecos-v1_2_1-release
Block commit of eCos version 1.2.1
| author | jlarmour |
|---|---|
| date | Tue, 11 May 1999 12:24:34 +0000 |
| parents | |
| children | 7a6ac9edc838 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/io/serial/current/src/common/haldiag.c @@ -0,0 +1,120 @@ +//========================================================================== +// +// io/serial/common/haldiag.c +// +// Serial I/O interface module using HAL I/O routines +// +//========================================================================== +//####COPYRIGHTBEGIN#### +// +// ------------------------------------------- +// The contents of this file are subject to the Cygnus eCos Public License +// Version 1.0 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// http://sourceware.cygnus.com/ecos +// +// Software distributed under the License is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +// License for the specific language governing rights and limitations under +// the License. +// +// The Original Code is eCos - Embedded Cygnus Operating System, released +// September 30, 1998. +// +// The Initial Developer of the Original Code is Cygnus. Portions created +// by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. +// ------------------------------------------- +// +//####COPYRIGHTEND#### +//========================================================================== +//#####DESCRIPTIONBEGIN#### +// +// Author(s): gthomas +// Contributors: gthomas +// Date: 1999-02-04 +// Purpose: HAL/diag serial driver +// Description: +// +//####DESCRIPTIONEND#### +// +//========================================================================== + +#include <pkgconf/io.h> +#include <pkgconf/io_serial.h> +#ifdef CYGPKG_IO_SERIAL_HALDIAG +#include <cyg/io/io.h> +#include <cyg/io/devtab.h> +#include <cyg/io/serial.h> +#include <cyg/infra/diag.h> +#include <cyg/hal/hal_diag.h> + +static bool haldiag_init(struct cyg_devtab_entry *tab); +static bool haldiag_putc(serial_channel *chan, unsigned char c); +static unsigned char haldiag_getc(serial_channel *chan); +static bool haldiag_set_config(serial_channel *chan, cyg_serial_info_t *config); + +static SERIAL_FUNS(haldiag_funs, + haldiag_putc, + haldiag_getc, + haldiag_set_config, + 0, // start xmit - not used + 0 // stop xmit - not used + ); + +static int _no_data; +SERIAL_CHANNEL(haldiag_channel0, + haldiag_funs, + _no_data, + CYG_SERIAL_BAUD_DEFAULT, + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +DEVTAB_ENTRY(haldiag_io0, + "/dev/haldiag", + 0, // Does not depend on a lower level interface + &serial_devio, + haldiag_init, + 0, // No initialization/lookup needed + &haldiag_channel0); + +static void +haldiag_config_port(serial_channel *chan) +{ +} + +static bool +haldiag_init(struct cyg_devtab_entry *tab) +{ + serial_channel *chan = (serial_channel *)tab->priv; +#ifdef CYGDBG_IO_INIT + diag_printf("HAL/diag SERIAL init\n"); +#endif + haldiag_config_port(chan); + return true; +} + +// Return 'true' if character is sent to device +static bool +haldiag_putc(serial_channel *chan, unsigned char c) +{ + HAL_DIAG_WRITE_CHAR(c); + return true; +} + +static unsigned char +haldiag_getc(serial_channel *chan) +{ + unsigned char c; + HAL_DIAG_READ_CHAR(c); + return c; +} + +static bool +haldiag_set_config(serial_channel *chan, cyg_serial_info_t *config) +{ + diag_printf("%s\n", __FUNCTION__); + return true; +} +#endif // CYGPKG_IO_SERIAL_HALDIAG
