source: rtems/bsps/powerpc/virtex5/start/dummy_console.c @ 762fa62

5
Last change on this file since 762fa62 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.5 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);
12
13ssize_t __bsp_memory_write(int minor, const char* buf, size_t len)
14{
15  const char* const last = buf+len;
16  while (buf < last)
17  {
18    rtems_putc(*buf++);
19  }
20  return len;
21}
22
23static rtems_termios_callbacks gMemCallbacks = {
24        0,                /* firstOpen */
25        0,                /* lastClose */
26        0,                /* PollRead */
27        app_memory_write, /* write */
28        0,                /* SetAttr */
29        0,                /* stopRemoteTx */
30        0,                /* startRemoteTx */
31        0                 /* outputUsesInterrupts */
32};
33
34rtems_device_driver console_initialize(rtems_device_major_number major,
35                                       rtems_device_minor_number minor,
36                                       void*                     arg)
37{
38  rtems_status_code status;
39
40  rtems_termios_initialize();
41
42  status = rtems_io_register_name("/dev/console", major, 0);
43
44  if (status != RTEMS_SUCCESSFUL)  rtems_fatal_error_occurred (status);
45  return RTEMS_SUCCESSFUL;
46}
47
48rtems_device_driver console_open(rtems_device_major_number major,
49                                 rtems_device_minor_number minor,
50                                 void*                     arg)
51{
52  rtems_status_code sc;
53
54  sc = rtems_termios_open (major, minor, arg, &gMemCallbacks);
55
56  return sc;
57}
58
59rtems_device_driver console_close(rtems_device_major_number major,
60                                  rtems_device_minor_number minor,
61                                  void*                     arg)
62{
63  return rtems_termios_close(arg);
64}
65
66rtems_device_driver console_read(rtems_device_major_number major,
67                                 rtems_device_minor_number minor,
68                                 void*                     arg)
69{
70  return rtems_termios_read(arg);
71}
72
73rtems_device_driver console_write(rtems_device_major_number major,
74                                  rtems_device_minor_number minor,
75                                  void*                     arg)
76{
77  return rtems_termios_write(arg);
78}
79
80rtems_device_driver console_control(rtems_device_major_number major,
81                                    rtems_device_minor_number minor,
82                                    void*                     arg)
83{
84  return rtems_termios_ioctl(arg);
85}
Note: See TracBrowser for help on using the repository browser.