source: rtems/c/src/lib/libbsp/c4x/c4xsim/console/console.c @ 9ace8a74

4.104.114.84.95
Last change on this file since 9ace8a74 was be90751, checked in by Joel Sherrill <joel.sherrill@…>, on Oct 12, 2001 at 8:59:22 PM

2001-10-12 Joel Sherrill <joel@…>

  • console/console.c: Fixed typo.
  • Property mode set to 100644
File size: 3.0 KB
Line 
1/*
2 *  This file contains the hardware specific portions of the TTY driver
3 *  for the serial ports on the erc32.
4 *
5 *  COPYRIGHT (c) 1989-1997.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.OARcorp.com/rtems/license.html.
11 *
12 *  $Id$
13 */
14
15#include <bsp.h>
16#include <rtems/libio.h>
17#include <stdlib.h>
18#include <assert.h>
19
20#include <simio.h>
21
22/*
23 *  console_outbyte_polled
24 *
25 *  This routine transmits a character using polling.
26 */
27
28void console_outbyte_polled(
29  int  port,
30  char ch
31);
32
33/*
34 *  console_inbyte_nonblocking
35 *
36 *  This routine polls for a character.
37 */
38
39int console_inbyte_nonblocking(
40  int port
41);
42
43/*
44 *  Console Termios Support Entry Points
45 *
46 */
47
48int console_write_support (
49  int minor,
50  const char *bufarg,
51  int len
52)
53{
54  int nwrite = 0;
55  const char *buf = bufarg;
56
57  while (nwrite < len) {
58    if ( *buf )
59      console_outbyte_polled( minor, *buf & 0x7f );
60    buf++;
61    nwrite++;
62  }
63  return nwrite;
64}
65
66/*
67 *  Console Device Driver Entry Points
68 *
69 */
70 
71rtems_device_driver console_initialize(
72  rtems_device_major_number  major,
73  rtems_device_minor_number  minor,
74  void                      *arg
75)
76{
77  rtems_status_code status;
78
79  rtems_termios_initialize();
80
81  /*
82   *  Register Device Names
83   */
84
85  status = rtems_io_register_name( "/dev/console", major, 0 );
86  if (status != RTEMS_SUCCESSFUL)
87    rtems_fatal_error_occurred(status);
88
89  return RTEMS_SUCCESSFUL;
90}
91
92rtems_device_driver console_open(
93  rtems_device_major_number major,
94  rtems_device_minor_number minor,
95  void                    * arg
96)
97{
98  rtems_status_code sc;
99  static const rtems_termios_callbacks pollCallbacks = {
100    NULL,                        /* firstOpen */
101    NULL,                        /* lastClose */
102    console_inbyte_nonblocking,  /* pollRead */
103    console_write_support,       /* write */
104    NULL,                        /* setAttributes */
105    NULL,                        /* stopRemoteTx */
106    NULL,                        /* startRemoteTx */
107    0                            /* outputUsesInterrupts */
108  };
109
110
111  assert( minor <= 1 );
112  if ( minor > 2 )
113    return RTEMS_INVALID_NUMBER;
114 
115  sc = rtems_termios_open (major, minor, arg, &pollCallbacks );
116
117  return RTEMS_SUCCESSFUL;
118}
119 
120rtems_device_driver console_close(
121  rtems_device_major_number major,
122  rtems_device_minor_number minor,
123  void                    * arg
124)
125{
126  return rtems_termios_close (arg);
127}
128 
129rtems_device_driver console_read(
130  rtems_device_major_number major,
131  rtems_device_minor_number minor,
132  void                    * arg
133)
134{
135  return rtems_termios_read (arg);
136}
137 
138rtems_device_driver console_write(
139  rtems_device_major_number major,
140  rtems_device_minor_number minor,
141  void                    * arg
142)
143{
144  return rtems_termios_write (arg);
145}
146 
147rtems_device_driver console_control(
148  rtems_device_major_number major,
149  rtems_device_minor_number minor,
150  void                    * arg
151)
152{
153  return rtems_termios_ioctl (arg);
154}
Note: See TracBrowser for help on using the repository browser.