File indexing completed on 2025-05-11 08:24:15
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #ifdef HAVE_CONFIG_H
0029 #include "config.h"
0030 #endif
0031
0032 #include <rtems/console.h>
0033 #include <rtems/bspIo.h>
0034 #include <rtems/imfs.h>
0035
0036 #include "consolesimple.h"
0037
0038 static ssize_t _Console_simple_Write(
0039 rtems_libio_t *iop,
0040 const void *buffer,
0041 size_t count
0042 )
0043 {
0044 const char *buf;
0045 ssize_t i;
0046 ssize_t n;
0047
0048 buf = buffer;
0049 n = (ssize_t) count;
0050
0051 for ( i = 0; i < n; ++i ) {
0052 rtems_putc( buf[ i ] );
0053 }
0054
0055 return n;
0056 }
0057
0058 static const rtems_filesystem_file_handlers_r _Console_simple_Handlers = {
0059 .open_h = rtems_filesystem_default_open,
0060 .close_h = rtems_filesystem_default_close,
0061 .read_h = _Console_simple_Read,
0062 .write_h = _Console_simple_Write,
0063 .ioctl_h = rtems_filesystem_default_ioctl,
0064 .lseek_h = rtems_filesystem_default_lseek,
0065 .fstat_h = IMFS_stat,
0066 .ftruncate_h = rtems_filesystem_default_ftruncate,
0067 .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
0068 .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
0069 .fcntl_h = rtems_filesystem_default_fcntl,
0070 .readv_h = rtems_filesystem_default_readv,
0071 .writev_h = rtems_filesystem_default_writev,
0072 .mmap_h = rtems_filesystem_default_mmap
0073 };
0074
0075 static const IMFS_node_control
0076 _Console_simple_Node_control = IMFS_NODE_CONTROL_INITIALIZER(
0077 &_Console_simple_Handlers,
0078 IMFS_node_initialize_default,
0079 IMFS_do_nothing_destroy
0080 );
0081
0082 static const char _Console_simple_Name[] = "console";
0083
0084 static IMFS_jnode_t _Console_simple_Node = IMFS_NODE_INITIALIZER(
0085 &_Console_simple_Node_control,
0086 _Console_simple_Name,
0087 sizeof( _Console_simple_Name ) - 1,
0088 S_IFCHR | S_IRWXU | S_IRWXG | S_IRWXO
0089 );
0090
0091 void _Console_simple_Initialize( void )
0092 {
0093 IMFS_add_node( "/dev", &_Console_simple_Node, NULL );
0094 }