source: rtems/bsps/powerpc/virtex4/start/dummy_console.c @ 9964895

5
Last change on this file since 9964895 was 9964895, checked in by Sebastian Huber <sebastian.huber@…>, on 04/20/18 at 08:35:35

bsps: Move startup files to bsps

Adjust build support files to new directory layout.

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 2.7 KB
Line 
1#include <rtems.h>
2#include <rtems/libio.h>
3#include <rtems/bspIo.h>
4#include <rtems/console.h>
5
6#include <string.h>
7
8ssize_t app_memory_write(int minor, const char* buf, size_t len)
9__attribute__(( weak, alias("__bsp_memory_write") ));
10
11ssize_t __bsp_memory_write(int minor, const char* buf, size_t len);
12rtems_device_driver console_initialize(rtems_device_major_number major,
13                                       rtems_device_minor_number minor,
14                                       void*                     arg);
15
16ssize_t __bsp_memory_write(int minor, const char* buf, size_t len)
17{
18  const char* const last = buf+len;
19  while (buf < last)
20  {
21    rtems_putc(*buf++);
22  }
23  return len;
24}
25
26static rtems_termios_callbacks gMemCallbacks = {
27        0,                /* firstOpen */
28        0,                /* lastClose */
29        0,                /* PollRead */
30        app_memory_write, /* write */
31        0,                /* SetAttr */
32        0,                /* stopRemoteTx */
33        0,                /* startRemoteTx */
34        0                 /* outputUsesInterrupts */
35};
36
37rtems_device_driver console_initialize(rtems_device_major_number major,
38                                       rtems_device_minor_number minor,
39                                       void*                     arg)
40{
41  rtems_status_code status;
42
43  rtems_termios_initialize();
44
45  status = rtems_io_register_name("/dev/console", major, 0);
46
47  if (status != RTEMS_SUCCESSFUL)  rtems_fatal_error_occurred (status);
48  return RTEMS_SUCCESSFUL;
49}
50
51rtems_device_driver console_open(rtems_device_major_number major,
52                                 rtems_device_minor_number minor,
53                                 void*                     arg)
54{
55  rtems_status_code sc;
56
57  sc = rtems_termios_open (major, minor, arg, &gMemCallbacks);
58
59  return sc;
60}
61
62rtems_device_driver console_close(rtems_device_major_number major,
63                                  rtems_device_minor_number minor,
64                                  void*                     arg)
65{
66  return rtems_termios_close(arg);
67}
68
69rtems_device_driver console_read(rtems_device_major_number major,
70                                 rtems_device_minor_number minor,
71                                 void*                     arg)
72{
73  return rtems_termios_read(arg);
74}
75
76rtems_device_driver console_write(rtems_device_major_number major,
77                                  rtems_device_minor_number minor,
78                                  void*                     arg)
79{
80  return rtems_termios_write(arg);
81}
82
83rtems_device_driver console_control(rtems_device_major_number major,
84                                    rtems_device_minor_number minor,
85                                    void*                     arg)
86{
87  return rtems_termios_ioctl(arg);
88}
Note: See TracBrowser for help on using the repository browser.