diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-07-22 11:54:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-07-22 11:54:10 +0000 |
commit | b28cb82e4f2114ed2a1d77fab6f57b6cb7619065 (patch) | |
tree | 833ea9b0a4037b41be29968ae9b33bada7ecfe7d /testsuites/libtests/devfs04/test_driver.c | |
parent | 2010-07-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-b28cb82e4f2114ed2a1d77fab6f57b6cb7619065.tar.bz2 |
2010-07-22 Bharath Suri <bharath.s.jois@gmail.com>
* devfs02/init.c, devfs02/devfs02.doc, devfs02/devfs02.scn,
devfs02/Makefile.am: New tests added
* devfs03/init.c, devfs03/devfs03.doc, devfs03/devfs03.scn,
devfs03/Makefile.am: New tests added
* devfs04/init.c, devfs04/devfs04.doc, devfs04/devfs04.scn,
devfs04/Makefile.am: New tests added
* Makefile.am, configure.ac: Changes to accommodate the above
newly added tests.
Diffstat (limited to 'testsuites/libtests/devfs04/test_driver.c')
-rw-r--r-- | testsuites/libtests/devfs04/test_driver.c | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/testsuites/libtests/devfs04/test_driver.c b/testsuites/libtests/devfs04/test_driver.c new file mode 100644 index 0000000000..7006c8529a --- /dev/null +++ b/testsuites/libtests/devfs04/test_driver.c @@ -0,0 +1,191 @@ +/* test_driver + * + * COPYRIGHT (c) 1989-2010. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <rtems.h> +#include "test_driver.h" +#include <rtems/libio.h> + +/* + * The test driver routines are mostly derived from the null driver routines. + */ +uint32_t TEST_major; +static char initialized; + +/* testDriver_initialize + * + * This routine is the test device driver init routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ +rtems_device_driver testDriver_initialize( + rtems_device_major_number major, + rtems_device_minor_number minor __attribute__((unused)), + void *pargp __attribute__((unused)) +) +{ + rtems_device_driver status; + + if ( !initialized ) { + initialized = 1; + + status = rtems_io_register_name( + "/dev/test", + major, + (rtems_device_minor_number) 0 + ); + + if (status != RTEMS_SUCCESSFUL) + rtems_fatal_error_occurred(status); + + TEST_major = major; + } + + return RTEMS_SUCCESSFUL; +} + +/* testDriver_open + * + * This routine is the test device driver open routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargb - pointer to open parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ +rtems_device_driver testDriver_open( + rtems_device_major_number major __attribute__((unused)), + rtems_device_minor_number minor __attribute__((unused)), + void *pargp __attribute__((unused)) +) +{ + return RTEMS_SUCCESSFUL; +} + +/* testDriver_close + * + * This routine is the test device driver close routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargb - pointer to close parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ +rtems_device_driver testDriver_close( + rtems_device_major_number major __attribute__((unused)), + rtems_device_minor_number minor __attribute__((unused)), + void *pargp __attribute__((unused)) +) +{ + return RTEMS_SUCCESSFUL; +} + +/* testDriver_read + * + * This routine is the test device driver read routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to read parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ +rtems_device_driver testDriver_read( + rtems_device_major_number major __attribute__((unused)), + rtems_device_minor_number minor __attribute__((unused)), + void *pargp +) +{ + rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp; + + if ( rw_args ) { + if( rw_args->count == 5 ) + rw_args->bytes_moved = 0; + else { + rw_args->bytes_moved = 0; + return RTEMS_NOT_IMPLEMENTED; + } + } + + return RTEMS_SUCCESSFUL; +} + +/* testDriver_write + * + * This routine is the test device driver write routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to write parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ +rtems_device_driver testDriver_write( + rtems_device_major_number major __attribute__((unused)), + rtems_device_minor_number minor __attribute__((unused)), + void *pargp +) +{ + rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp; + + if ( rw_args ) { + if( rw_args->count == 5 ) + rw_args->bytes_moved = rw_args->count; + else { + rw_args->bytes_moved = 0; + return RTEMS_NOT_IMPLEMENTED; + } + } + + return RTEMS_SUCCESSFUL; +} + +/* testDriver_control + * + * This routine is the test device driver control routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to cntrl parameter block + * + * Output parameters: + * rval - RTEMS_SUCCESSFUL + */ + +rtems_device_driver testDriver_control( + rtems_device_major_number major __attribute__((unused)), + rtems_device_minor_number minor __attribute__((unused)), + void *pargp __attribute__((unused)) +) +{ + return RTEMS_NOT_IMPLEMENTED; +} |