source: rtems/testsuites/libtests/devfs04/test_driver.c @ f97536d

5
Last change on this file since f97536d was f97536d, checked in by Sebastian Huber <sebastian.huber@…>, on 10/16/15 at 06:21:48

basdefs.h: Add and use RTEMS_UNUSED

  • Property mode set to 100644
File size: 4.1 KB
Line 
1/*  test_driver
2 *
3 *  COPYRIGHT (c) 1989-2010.
4 *  On-Line Applications Research Corporation (OAR).
5 *
6 *  The license and distribution terms for this file may be
7 *  found in the file LICENSE in this distribution or at
8 *  http://www.rtems.org/license/LICENSE.
9 */
10
11#ifdef HAVE_CONFIG_H
12#include "config.h"
13#endif
14
15#include <rtems.h>
16#include "test_driver.h"
17#include <rtems/libio.h>
18#include <rtems/devnull.h>
19/*
20 * The test driver routines are mostly derived from the null driver routines.
21 */
22uint32_t   TEST_major;
23static char initialized;
24
25/*  testDriver_initialize
26 *
27 *  This routine is the test device driver init routine.
28 *
29 *  Input parameters:
30 *    major - device major number
31 *    minor - device minor number
32 *    pargp - pointer to parameter block
33 *
34 *  Output parameters:
35 *    rval       - RTEMS_SUCCESSFUL
36 */
37rtems_device_driver testDriver_initialize(
38  rtems_device_major_number major,
39  rtems_device_minor_number minor RTEMS_UNUSED,
40  void *pargp RTEMS_UNUSED
41)
42{
43  rtems_device_driver status;
44
45  if ( !initialized ) {
46    initialized = 1;
47
48    status = rtems_io_register_name(
49      "/dev/test",
50      major,
51      (rtems_device_minor_number) 0
52    );
53
54    if (status != RTEMS_SUCCESSFUL)
55      rtems_fatal_error_occurred(status);
56
57    TEST_major = major;
58  }
59
60  return RTEMS_SUCCESSFUL;
61}
62
63/*  testDriver_open
64 *
65 *  This routine is the test device driver open routine.
66 *
67 *  Input parameters:
68 *    major - device major number
69 *    minor - device minor number
70 *    pargb - pointer to open parameter block
71 *
72 *  Output parameters:
73 *    rval       - RTEMS_SUCCESSFUL
74 */
75rtems_device_driver testDriver_open(
76  rtems_device_major_number major RTEMS_UNUSED,
77  rtems_device_minor_number minor RTEMS_UNUSED,
78  void *pargp RTEMS_UNUSED
79)
80{
81  return RTEMS_SUCCESSFUL;
82}
83
84/*  testDriver_close
85 *
86 *  This routine is the test device driver close routine.
87 *
88 *  Input parameters:
89 *    major - device major number
90 *    minor - device minor number
91 *    pargb - pointer to close parameter block
92 *
93 *  Output parameters:
94 *    rval       - RTEMS_SUCCESSFUL
95 */
96rtems_device_driver testDriver_close(
97  rtems_device_major_number major RTEMS_UNUSED,
98  rtems_device_minor_number minor RTEMS_UNUSED,
99  void *pargp RTEMS_UNUSED
100)
101{
102  return RTEMS_SUCCESSFUL;
103}
104
105/*  testDriver_read
106 *
107 *  This routine is the test device driver read routine.
108 *
109 *  Input parameters:
110 *    major - device major number
111 *    minor - device minor number
112 *    pargp - pointer to read parameter block
113 *
114 *  Output parameters:
115 *    rval       - RTEMS_SUCCESSFUL
116 */
117rtems_device_driver testDriver_read(
118  rtems_device_major_number major RTEMS_UNUSED,
119  rtems_device_minor_number minor RTEMS_UNUSED,
120  void *pargp
121)
122{
123  rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp;
124
125  if ( rw_args ) {
126    if( rw_args->count == 5 )
127      rw_args->bytes_moved = 0;
128    else {
129      rw_args->bytes_moved = 0;
130      return RTEMS_NOT_IMPLEMENTED;
131    }
132  }
133 
134  return RTEMS_SUCCESSFUL;
135}
136
137/*  testDriver_write
138 *
139 *  This routine is the test device driver write routine.
140 *
141 *  Input parameters:
142 *    major - device major number
143 *    minor - device minor number
144 *    pargp - pointer to write parameter block
145 *
146 *  Output parameters:
147 *    rval       - RTEMS_SUCCESSFUL
148 */
149rtems_device_driver testDriver_write(
150  rtems_device_major_number major RTEMS_UNUSED,
151  rtems_device_minor_number minor RTEMS_UNUSED,
152  void *pargp
153)
154{
155  rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp;
156
157  if ( rw_args ) {
158    if( rw_args->count == 5 )
159      return null_write( 0, 0, pargp );
160    else {
161      rw_args->bytes_moved = 0;
162      return RTEMS_NOT_IMPLEMENTED;
163    }
164  }
165
166  return RTEMS_SUCCESSFUL;
167}
168
169/*  testDriver_control
170 *
171 *  This routine is the test device driver control routine.
172 *
173 *  Input parameters:
174 *    major - device major number
175 *    minor - device minor number
176 *    pargp - pointer to cntrl parameter block
177 *
178 *  Output parameters:
179 *    rval       - RTEMS_SUCCESSFUL
180 */
181
182rtems_device_driver testDriver_control(
183  rtems_device_major_number major RTEMS_UNUSED,
184  rtems_device_minor_number minor RTEMS_UNUSED,
185  void *pargp RTEMS_UNUSED
186)
187{
188  return RTEMS_NOT_IMPLEMENTED;
189}
Note: See TracBrowser for help on using the repository browser.