From 8ef38186faea3d9b5e6f0f1242f668cb7e7a3d52 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 12 Jun 2000 19:57:02 +0000 Subject: Patch from John Cotton , Charles-Antoine Gauthier , and Darlene A. Stewart to add support for a number of very significant things: + BSPs for many variations on the Motorola MBX8xx board series + Cache Manager including initial support for m68040 and PowerPC + Rework of mpc8xx libcpu code so all mpc8xx CPUs now use same code base. + Rework of eth_comm BSP to utiltize above. John reports this works on the 821 and 860 --- cpukit/libcsupport/include/sys/termios.h | 1 + cpukit/libcsupport/src/malloc.c | 22 ++++++++++++++++++++++ cpukit/libcsupport/src/termios.c | 8 +++++++- 3 files changed, 30 insertions(+), 1 deletion(-) (limited to 'cpukit/libcsupport') diff --git a/cpukit/libcsupport/include/sys/termios.h b/cpukit/libcsupport/include/sys/termios.h index 7cc28d7d38..199bb2aef2 100644 --- a/cpukit/libcsupport/include/sys/termios.h +++ b/cpukit/libcsupport/include/sys/termios.h @@ -181,6 +181,7 @@ int tcflow(int, int); int tcflush(int, int); int tcgetattr(int, struct termios *); int tcsetattr(int, int, struct termios *); +int tcdrain(int); pid_t tcgetprgrp(int); int tcsetprgrp(int, pid_t); int tcsendbreak(int, int); diff --git a/cpukit/libcsupport/src/malloc.c b/cpukit/libcsupport/src/malloc.c index 08660d75cc..dc6824891a 100644 --- a/cpukit/libcsupport/src/malloc.c +++ b/cpukit/libcsupport/src/malloc.c @@ -418,5 +418,27 @@ void _free_r( { free( ptr ); } + + +/* + * rtems_cache_aligned_malloc + * + * DESCRIPTION: + * + * This function is used to allocate storage that spans an + * integral number of cache blocks. + */ +RTEMS_INLINE_ROUTINE void * rtems_cache_aligned_malloc ( + size_t nbytes +) +{ + /* + * Arrange to have the user storage start on the first cache + * block beyond the header. + */ + return (void *) ((((unsigned long) malloc( nbytes + _CPU_DATA_CACHE_ALIGNMENT - 1 )) + + _CPU_DATA_CACHE_ALIGNMENT - 1 ) &(~(_CPU_DATA_CACHE_ALIGNMENT - 1)) ); +} + #endif diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c index 7883e94b63..5052502e76 100644 --- a/cpukit/libcsupport/src/termios.c +++ b/cpukit/libcsupport/src/termios.c @@ -23,6 +23,7 @@ #include #include #include +#include /* * FreeBSD does not support a full POSIX termios so we have to help it out @@ -243,7 +244,7 @@ rtems_termios_open ( /* * Set default parameters */ - tty->termios.c_iflag = BRKINT | ICRNL | IMAXBEL; + tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; @@ -474,6 +475,11 @@ rtems_termios_ioctl (void *arg) case RTEMS_IO_TCDRAIN: drainOutput (tty); break; + + case FIONREAD: + /* Half guess that this is the right operation */ + *(int *)args->buffer = tty->ccount - tty->cindex; + break; } rtems_semaphore_release (tty->osem); args->ioctl_return = sc; -- cgit v1.2.3