externC void cyg_drv_interrupt_level( cyg_vector_t vector, cyg_priority_t level ) { CYG_REPORT_FUNCTION(); CYG_REPORT_FUNCARG2("vector = %d, level = %d", vector, level); CYG_ASSERT( vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector"); CYG_ASSERT( vector <= CYGNUM_HAL_ISR_MAX, "Invalid vector"); HAL_INTERRUPT_SET_LEVEL( vector, level ); CYG_REPORT_RETURN(); }
externC void cyg_drv_interrupt_set_cpu( cyg_vector_t vector, cyg_cpu_t cpu ) { CYG_REPORT_FUNCTION(); CYG_REPORT_FUNCARG2("vector = %d, cpu = %d", vector, cpu); CYG_ASSERT( vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector"); CYG_ASSERT( vector <= CYGNUM_HAL_ISR_MAX, "Invalid vector"); #ifdef CYGPKG_HAL_SMP_SUPPORT HAL_INTERRUPT_SET_CPU( vector, cpu ); #endif CYG_REPORT_RETURN(); }
extern int cfsetispeed( struct termios *termios_p, speed_t speed ) { CYG_REPORT_FUNCTYPE( "returning %d" ); CYG_CHECK_DATA_PTRC( termios_p ); CYG_REPORT_FUNCARG2( "termios_p=%08x, speed=%d", termios_p, speed ); if ( speed > B115200 ) { errno = EINVAL; CYG_REPORT_RETVAL( -1 ); return -1; } termios_p->c_ispeed = speed; CYG_REPORT_RETVAL( 0 ); return 0; } // cfsetispeed()
extern int tcgetattr( int fildes, struct termios *termios_p ) { cyg_file *fp; int ret; int len = sizeof( *termios_p ); CYG_REPORT_FUNCTYPE( "returning %d" ); CYG_REPORT_FUNCARG2( "fildes=%d, termios_p=%08x", fildes, termios_p ); CYG_CHECK_DATA_PTRC( termios_p ); if ( !isatty(fildes) ) { errno = ENOTTY; CYG_REPORT_RETVAL( -1 ); return -1; } fp = cyg_fp_get( fildes ); if ( NULL == fp ) { errno = EBADF; CYG_REPORT_RETVAL( -1 ); return -1; } ret = fp->f_ops->fo_getinfo( fp, CYG_IO_GET_CONFIG_TERMIOS, termios_p, len); cyg_fp_free( fp ); if ( ret > 0 ) { errno = ret; CYG_REPORT_RETVAL( -1 ); return -1; } CYG_REPORT_RETVAL( 0 ); return 0; } // tcgetattr()