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