From 85d03e28c74c683d8a2c6c3ad049e91c3b561086 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 5 Jan 2001 13:26:51 +0000 Subject: 2001-01-05 Joel Sherrill * devnull: New addition. Moved from libcpu/sh. * devnull/devnull.c, devnull/devnull.h, devnull/.cvsignore, devnull/Makefile.am: New files. * Makefile.am, configure.in, wrapup/Makefile.am: Modified to reflect addition of above. --- c/src/libmisc/devnull/.cvsignore | 2 + c/src/libmisc/devnull/Makefile.am | 43 ++++++++++ c/src/libmisc/devnull/devnull.c | 174 ++++++++++++++++++++++++++++++++++++++ c/src/libmisc/devnull/devnull.h | 71 ++++++++++++++++ 4 files changed, 290 insertions(+) create mode 100644 c/src/libmisc/devnull/.cvsignore create mode 100644 c/src/libmisc/devnull/Makefile.am create mode 100644 c/src/libmisc/devnull/devnull.c create mode 100644 c/src/libmisc/devnull/devnull.h (limited to 'c/src/libmisc/devnull') diff --git a/c/src/libmisc/devnull/.cvsignore b/c/src/libmisc/devnull/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/libmisc/devnull/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/c/src/libmisc/devnull/Makefile.am b/c/src/libmisc/devnull/Makefile.am new file mode 100644 index 0000000000..9154a40725 --- /dev/null +++ b/c/src/libmisc/devnull/Makefile.am @@ -0,0 +1,43 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 + +LIBNAME = libdevnull-tmp +LIB = $(ARCH)/$(LIBNAME).a + + +C_FILES = devnull.c +C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o) + +H_FILES = devnull.h + +OBJS = $(C_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../automake/compile.am +include $(top_srcdir)/../../../automake/lib.am + +$(PROJECT_INCLUDE)/rtems: + @$(mkinstalldirs) $@ +$(PROJECT_INCLUDE)/rtems/%.h: %.h + $(INSTALL_DATA) $< $@ + +# +# (OPTIONAL) Add local stuff here using += +# + +$(LIB): $(OBJS) + $(make-library) + +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems \ + $(H_FILES:%=$(PROJECT_INCLUDE)/rtems/%) + +all-local: $(ARCH) $(PREINSTALL_FILES) $(OBJS) $(LIB) + +.PRECIOUS: $(LIB) + +EXTRA_DIST = devnull.c + +include $(top_srcdir)/../../../automake/local.am diff --git a/c/src/libmisc/devnull/devnull.c b/c/src/libmisc/devnull/devnull.c new file mode 100644 index 0000000000..c569fcb2ba --- /dev/null +++ b/c/src/libmisc/devnull/devnull.c @@ -0,0 +1,174 @@ +/* /dev/null + * + * Derived from rtems' stub driver. + * + * Author: Ralf Corsepius (corsepiu@faw.uni-ulm.de) + * + * COPYRIGHT (c) 1989-2000. + * 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.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include +#include +#include + +/* null_initialize + * + * This routine is the null device driver init routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_unsigned32 NULL_major; + +rtems_device_driver null_initialize( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + rtems_device_driver status ; + + status = rtems_io_register_name( + "/dev/null", + major, + (rtems_device_minor_number) 0 + ); + + if (status != RTEMS_SUCCESSFUL) + rtems_fatal_error_occurred(status); + + NULL_major = major; + + return RTEMS_SUCCESSFUL; +} + +/* null_open + * + * This routine is the null device driver open routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargb - pointer to open parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_device_driver null_open( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + return NULL_SUCCESSFUL; +} + + +/* null_close + * + * This routine is the null device driver close routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargb - pointer to close parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_device_driver null_close( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + return NULL_SUCCESSFUL; +} + + +/* null_read + * + * This routine is the null device driver read routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to read parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_device_driver null_read( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + return NULL_SUCCESSFUL; +} + + +/* null_write + * + * This routine is the null device driver write routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to write parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_device_driver null_write( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp ; + + rw_args->bytes_moved = rw_args->count ; + + return NULL_SUCCESSFUL; +} + + +/* null_control + * + * This routine is the null device driver control routine. + * + * Input parameters: + * major - device major number + * minor - device minor number + * pargp - pointer to cntrl parameter block + * + * Output parameters: + * rval - NULL_SUCCESSFUL + */ + +rtems_device_driver null_control( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *pargp +) +{ + return NULL_SUCCESSFUL; +} diff --git a/c/src/libmisc/devnull/devnull.h b/c/src/libmisc/devnull/devnull.h new file mode 100644 index 0000000000..7c0d7f1dcf --- /dev/null +++ b/c/src/libmisc/devnull/devnull.h @@ -0,0 +1,71 @@ +/* devnull.h + * + * Null device driver, derived from rtems' stub driver. + * + * Author: Ralf Corsepius (corsepiu@faw.uni-ulm.de) + * + * COPYRIGHT (c) 1989-2000. + * 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.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#ifndef __NULL_DRIVER_h +#define __NULL_DRIVER_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DEVNULL_DRIVER_TABLE_ENTRY \ + { null_initialize, null_open, null_close, null_read, \ + null_write, null_control } + +#define NULL_SUCCESSFUL RTEMS_SUCCESSFUL + +rtems_device_driver null_initialize( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +rtems_device_driver null_open( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +rtems_device_driver null_close( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +rtems_device_driver null_read( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +rtems_device_driver null_write( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +rtems_device_driver null_control( + rtems_device_major_number, + rtems_device_minor_number, + void * +); + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ -- cgit v1.2.3