📄 console-polled.c
字号:
/* * This file contains the hardware independent portion of a polled * console device driver. If a BSP chooses to use this, then it * only has to provide a few board dependent routines. * * COPYRIGHT (c) 1989-1997. * 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: console-polled.c,v 1.4.4.2 2003/09/04 18:45:33 joel Exp $ */#include <bsp.h>#include <rtems/libio.h>#include <stdlib.h>#include <assert.h>/* external prototypes for monitor interface routines */void console_outbyte_polled( int port, char ch);int console_inbyte_nonblocking( int port);void console_initialize_hardware(void);/* * Console Termios Support Entry Points * */int console_write_support ( int minor, const char *bufarg, int len){ int nwrite = 0; const char *buf = bufarg; while (nwrite < len) { console_outbyte_polled( minor, *buf++ ); nwrite++; } return nwrite;}/* * Console Device Driver Entry Points * */ rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg){ rtems_status_code status; rtems_termios_initialize(); /* * Make sure the hardware is initialized. */ console_initialize_hardware(); /* * Register Device Names */ status = rtems_io_register_name( "/dev/console", major, 0 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); return RTEMS_SUCCESSFUL;}rtems_device_driver console_open( rtems_device_major_number major, rtems_device_minor_number minor, void * arg){ rtems_status_code sc; static const rtems_termios_callbacks pollCallbacks = { NULL, /* firstOpen */ NULL, /* lastClose */ console_inbyte_nonblocking, /* pollRead */ console_write_support, /* write */ NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ 0 /* outputUsesInterrupts */ }; assert( minor <= 1 ); if ( minor > 2 ) return RTEMS_INVALID_NUMBER; sc = rtems_termios_open (major, minor, arg, &pollCallbacks ); return RTEMS_SUCCESSFUL;} rtems_device_driver console_close( rtems_device_major_number major, rtems_device_minor_number minor, void * arg){ return rtems_termios_close (arg);} rtems_device_driver console_read( rtems_device_major_number major, rtems_device_minor_number minor, void * arg){ return rtems_termios_read (arg);} rtems_device_driver console_write( rtems_device_major_number major, rtems_device_minor_number minor, void * arg){ return rtems_termios_write (arg);} rtems_device_driver console_control( rtems_device_major_number major, rtems_device_minor_number minor, void * arg){ return rtems_termios_ioctl (arg);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -