2007-06-20 Joel Sherrill <joel.sherrill@OARcorp.com>

* libcsupport/Makefile.am:
	* libcsupport/src/open_dev_console.c: New file.
This commit is contained in:
Joel Sherrill
2007-06-20 22:20:32 +00:00
parent 5129b24c4e
commit 442e430ddc
3 changed files with 58 additions and 1 deletions

View File

@@ -1,3 +1,8 @@
2007-06-20 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/Makefile.am:
* libcsupport/src/open_dev_console.c: New file.
2007-06-20 Joel Sherrill <joel.sherrill@oarcorp.com>
* score/src/corerwlock.c: Make sure structure is fully initialized.

View File

@@ -45,7 +45,8 @@ ASSOCIATION_C_FILES = src/assoc.c src/assoclocalbyname.c \
BASE_FS_C_FILES = src/base_fs.c src/mount.c src/unmount.c src/libio.c \
src/libio_init.c \
src/libio_sockets.c src/eval.c src/fs_null_handlers.c src/privateenv.c
src/libio_sockets.c src/eval.c src/fs_null_handlers.c src/privateenv.c \
src/open_dev_console.c
TERMIOS_C_FILES = src/cfgetispeed.c src/cfgetospeed.c src/cfsetispeed.c \
src/cfsetospeed.c src/tcgetattr.c src/tcsetattr.c src/tcdrain.c \

View File

@@ -0,0 +1,51 @@
/*
* open_dev_console - open /dev/console
*
* COPYRIGHT (c) 1989-2007.
* 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$
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems.h>
#include <rtems/libio.h>
#include <fcntl.h>
/*
* This is a replaceable stub
*/
void open_dev_console(void)
{
int stdin_fd, stdout_fd, stderr_fd;
int error_code = 'S' << 24 | 'T' << 16 | 'D' << 8;
/*
* Attempt to open /dev/console.
*/
if ((stdin_fd = open("/dev/console", O_RDONLY, 0)) == -1) {
/*
* There may not be a console driver so this is OK.
*/
return;
}
/*
* But if we find /dev/console once, we better find it twice more
* or something is REALLY wrong.
*/
if ((stdout_fd = open("/dev/console", O_WRONLY, 0)) == -1)
rtems_fatal_error_occurred( error_code | '1' );
if ((stderr_fd = open("/dev/console", O_WRONLY, 0)) == -1)
rtems_fatal_error_occurred( error_code | '2' );
}