Compare commits

..

26 Commits
4.9.5 ... 4.9.6

Author SHA1 Message Date
Joel Sherrill
f8f760df39 Upgrade to 4.9.6 2011-07-24 20:26:55 +00:00
Joel Sherrill
85f1b9aa11 2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1839/filesystem
	* libcsupport/include/rtems/libio_.h, libcsupport/src/fchdir.c,
	libcsupport/src/fdatasync.c, libcsupport/src/fpathconf.c,
	libcsupport/src/fsync.c, libcsupport/src/read.c,
	libcsupport/src/readv.c, libcsupport/src/write.c,
	libcsupport/src/writev.c: Some calls did not return proper status for
	permission errors or incorrectly permissions at all.
2011-07-24 20:26:14 +00:00
Joel Sherrill
84b2e65b23 2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, preinstall.am: Include stubs so all tests compile.
	* include/tm27.h: New file.
2011-07-24 20:03:03 +00:00
Joel Sherrill
dc64acee02 2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
* clock/ckinit.c: Correct back port.
2011-07-24 19:45:39 +00:00
Joel Sherrill
ac5b23ae00 2011-07-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1845/bsps
	* custom/rtl22xx_t.cfg: Remove unused line with what is now invalid
	syntax.
2011-07-22 13:16:33 +00:00
Joel Sherrill
c05bc62b82 2011-03-31 Kate Feng <feng@bnl.gov>
PR 1778/bsps
	* vme/VMEConfig.h: Used the VME shared IRQ handlers.
	* include/bsp.h: Removed BSP_PIC_DO_EOI.
	* network/if_100MHz/GT64260eth.c:
	  Recycle the Rx mbuf if there is any Rx error.
2011-07-22 13:02:37 +00:00
Joel Sherrill
43622d542d 2011-07-21 Jorge Lopez <jorge.lopez.trescastro@esa.int>
PR 1766/bsps
	* clock/ckinit.c: Add missing read of Timer_Counter_1.
2011-07-21 20:52:41 +00:00
Joel Sherrill
bdcd12cca0 2011-07-20 Till Straumann <strauman@slac.stanford.edu>
PR 1837/bsps
	* shared/motorola/motorola.c, shared/motorola/motorola.h: Add MVME2400
	board with 750 CPU to list of supported Motorola boards.
2011-07-20 16:39:57 +00:00
Joel Sherrill
2a4438a146 2011-07-19 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1838/filesystem
	* libcsupport/src/fchmod.c: fchmod() does not need a writeable file
	descriptor.
2011-07-19 13:14:18 +00:00
Joel Sherrill
2e016f6f4e 2011-07-14 Gene Smith <gene.smith@siemens.com>
PR 1381/networking
	* netinet/ip_output.c: If a null or unreachable gateway is
	specified either statically in networkconfig.h or from dhcp/bootp,
	sendto() fails on multicast send with errno "118 Host is unreachable".
	The failure occurs in networking file ip_output.c since it currently
	requires all multicasts to have a valid route to the outside world.
2011-07-14 19:21:46 +00:00
Joel Sherrill
e3b513de4e 2011-07-14 Gene Smith <gene.smith@siemens.com>
PR 1381/networking
	* libnetworking/netinet/ip_output.c: If a null or unreachable gateway
	is specified either statically in networkconfig.h or from dhcp/bootp,
	sendto() fails on multicast send with errno 118 Host
2011-07-14 19:16:30 +00:00
Joel Sherrill
c756999a47 2011-07-14 Till Straumann <strauman@slac.stanford.edu>
PR 1833/bsps
	* ne2000/ne2000.c: Addition of multicast support disabled broadcast
	reception. Patch also includes support to work on big endian CPUs.
2011-07-14 14:45:13 +00:00
Joel Sherrill
e4daba4f56 2011-06-10 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1812/filesystem
	* libfs/src/imfs/imfs_stat.c: stat() implementation for IMFS did not
	set st_blksize field. Set it based upon user configuration.
2011-06-10 18:17:21 +00:00
Joel Sherrill
8aa7be21c0 2011-04-25 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1783/bsps
	* include/bsp.h: Remove dead prototypes of Clock_delay() and delay().
	Neither had bodies.
2011-04-25 19:40:17 +00:00
Joel Sherrill
43ce60a47a 2011-04-11 Keith Robertson <kjrobert at alumni dot uwaterloo dot ca>
* ne2000/ne2000.c: Add multicast support. Patch submitted to mailing
	list 2005-12-21.
2011-04-11 17:28:04 +00:00
Joel Sherrill
425927e16d 2011-04-04 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1722/networking
	* ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
	filenames with spaces in them.
2011-04-04 17:08:59 +00:00
Joel Sherrill
2fe013a145 2011-04-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1768/bsps
	* shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
	we do not perform a cld before calling C code in the ISR. This was
	historically not a problem but gcc 4.3 changed the behavior. From
	http://gcc.gnu.org/gcc-4.3/changes.html
2011-04-04 16:45:01 +00:00
Joel Sherrill
c3f92efa3c 2011-03-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1772/bsps
	* console/sci.c: Use same default baud rate as monitor.
2011-03-22 14:14:34 +00:00
Ralf Corsepius
f3ceabf904 Add config.status, config.sub, config.log. 2011-03-20 06:56:35 +00:00
Joel Sherrill
476900c83b 2011-03-08 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1760/misc
	* compilers/gcc-target-default.cfg: Fix typo in CPP definition.
2011-03-09 00:10:18 +00:00
Joel Sherrill
843bfe5943 2011-03-08 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1759/cpukit
	* posix/src/cancel.c, posix/src/pthreaddetach.c,
	posix/src/pthreadequal.c, posix/src/pthreadgetschedparam.c,
	posix/src/pthreadjoin.c, posix/src/pthreadkill.c: Some POSIX pthread
	services did not support using Classic API Task Ids.
2011-03-08 22:15:07 +00:00
Joel Sherrill
f5a5d570a8 2011-03-07 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1756/bsps
	* timer/timer.c: Retry on timer calibration loop failure.
2011-03-07 17:36:01 +00:00
Joel Sherrill
97207cb970 2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1751/bsps
	* start/start.S: Fix typo which was not caught by binutils prior to a
	recent bug fix.
2011-03-04 14:37:43 +00:00
Joel Sherrill
d209d9bbcc 2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1748/bsps
	* clock/ckinit.c, include/leon.h: When the clock tick generates an
	interrupt WHILE we have interrupts disabled doing a get TOD or
	uptime, the get nanoseconds handler was returning a bogusly large
	number.
2011-03-04 14:07:19 +00:00
Joel Sherrill
9ec55e633e 2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1748/bsps
	* clock/ckinit.c: When the clock tick generates an interrupt WHILE we
	have interrupts disabled doing a get TOD or uptime, the get
	nanoseconds handler was returning a bogusly large number.
2011-03-04 14:07:17 +00:00
Joel Sherrill
5357e24abc 2011-03-03 Chris Johns <chrisj@rtems.org>
PR 1749/filesystem
	* libcsupport/src/mknod.c: Fix the incorrect handling of the file type
	in the mode value o reject invalid types as per the standard.
2011-03-03 13:38:52 +00:00
61 changed files with 488 additions and 182 deletions

View File

@@ -4,4 +4,4 @@
# $Id$
#
RTEMS Version 4.9.5
RTEMS Version 4.9.6

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.9.5]))
m4_define([_RTEMS_VERSION],[4.9.6]))
m4_define([RTEMS_API],[4.9])

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.9.5]))
m4_define([_RTEMS_VERSION],[4.9.6]))
m4_define([RTEMS_API],[4.9])

View File

@@ -1,3 +1,11 @@
2011-04-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1768/bsps
* shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
we do not perform a cld before calling C code in the ISR. This was
historically not a problem but gcc 4.3 changed the behavior. From
http://gcc.gnu.org/gcc-4.3/changes.html
2009-05-18 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_asm.S: Add shared

View File

@@ -1,3 +1,19 @@
2011-07-14 Till Straumann <strauman@slac.stanford.edu>
PR 1833/bsps
* ne2000/ne2000.c: Addition of multicast support disabled broadcast
reception. Patch also includes support to work on big endian CPUs.
2011-04-11 Keith Robertson <kjrobert at alumni dot uwaterloo dot ca>
* ne2000/ne2000.c: Add multicast support. Patch submitted to mailing
list 2005-12-21.
2011-03-07 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1756/bsps
* timer/timer.c: Retry on timer calibration loop failure.
2010-11-23 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, preinstall.am: Add <bsp/tty_drv.h> to the set of

View File

@@ -204,7 +204,8 @@ struct ne_ring
{
unsigned char rsr; /* receiver status */
unsigned char next; /* pointer to next packet */
unsigned short count; /* bytes in packet (length + 4) */
unsigned char cnt_lo; /* bytes in packet (length + 4) */
unsigned char cnt_hi; /* 16-bit, little-endian value */
};
/* Forward declarations to avoid warnings */
@@ -501,8 +502,8 @@ ne_init_hardware (struct ne_softc *sc)
/* Set page 0 registers */
outport_byte (port + CMDR, MSK_PG0 | MSK_RD2 | MSK_STP);
/* accept broadcast */
outport_byte (port + RCR, (sc->accept_broadcasts ? MSK_AB : 0));
/* accept broadcast + multicast */
outport_byte (port + RCR, (sc->accept_broadcasts ? MSK_AB : 0) | MSK_AM);
/* Start interface */
outport_byte (port + CMDR, MSK_PG0 | MSK_RD2 | MSK_STA);
@@ -601,7 +602,7 @@ ne_rx_daemon (void *arg)
next = NE_FIRST_RX_PAGE;
/* check packet length */
len = hdr.count;
len = ( hdr.cnt_hi << 8 ) | hdr.cnt_lo;
if (currpage < startpage)
cnt1 = currpage + (NE_STOP_PAGE - NE_FIRST_RX_PAGE) - startpage;
else
@@ -680,7 +681,7 @@ ne_rx_daemon (void *arg)
m->m_data += sizeof (struct ether_header);
#ifdef DEBUG_NE
/* printk("[r%d]", hdr.count - sizeof(hdr)); */
/* printk("[r%d]", ((hdr.cnt_hi<<8) + hdr.cnt_lo - sizeof(hdr))); */
printk("<");
#endif
ether_input (ifp, eh, m);
@@ -1072,6 +1073,28 @@ ne_stats (struct ne_softc *sc)
printf (" Interrupts: %-8lu\n", sc->stats.interrupts);
}
static int ne_set_multicast_filter(struct ne_softc* sc)
{
int i=0;
unsigned int port = sc->port;
unsigned char cmd = 0;
/* Save CMDR settings */
inport_byte(port + CMDR, cmd);
/* Change to page 1 */
outport_byte(port + CMDR, cmd | MSK_PG1);
/* Set MAR to accept _all_ multicast packets */
for (i = 0; i < MARsize; ++i) {
outport_byte (port + MAR + i, 0xFF);
}
/* Revert to original CMDR settings */
outport_byte(port + CMDR, cmd);
return 0;
}
/* NE2000 driver ioctl handler. */
static int
@@ -1105,13 +1128,25 @@ ne_ioctl (struct ifnet *ifp, ioctl_command_t command, caddr_t data)
break;
}
break;
case SIOCADDMULTI:
case SIOCDELMULTI:
{
struct ifreq* ifr = (struct ifreq*) data;
error = (command == SIOCADDMULTI ?
ether_addmulti(ifr, &(sc->arpcom)) :
ether_delmulti(ifr, &(sc->arpcom)) );
/* ENETRESET indicates that driver should update its multicast filters */
if(error == ENETRESET) {
error = ne_set_multicast_filter(sc);
}
break;
}
case SIO_RTEMS_SHOW_STATS:
ne_stats (sc);
break;
/* FIXME: Multicast commands must be added here. */
default:
error = EINVAL;
break;
@@ -1247,7 +1282,7 @@ rtems_ne_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
ifp->if_watchdog = ne_watchdog;
ifp->if_start = ne_start;
ifp->if_output = ether_output;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
if (ifp->if_snd.ifq_maxlen == 0)
ifp->if_snd.ifq_maxlen = ifqmaxlen;

View File

@@ -385,13 +385,20 @@ Calibrate_loop_1ms(void)
unsigned int targetClockBits, currentClockBits;
unsigned int slowLoopGranularity, fastLoopGranularity;
rtems_interrupt_level level;
int retries = 0;
rtems_interrupt_disable(level);
#ifdef DEBUG_CALIBRATE
printk( "Calibrate_loop_1ms is starting, please wait ( but not too loooong. )\n" );
#endif
retry:
if ( ++retries >= 5 ) {
printk( "Calibrate_loop_1ms: too many attempts. giving up!!\n" );
while (1);
}
#ifdef DEBUG_CALIBRATE
printk("Calibrate_loop_1ms is starting, please wait (but not too long.)\n");
#endif
targetClockBits = US_TO_TICK(1000);
rtems_interrupt_disable(level);
/*
* Fill up the cache to get a correct offset
*/
@@ -435,8 +442,11 @@ Calibrate_loop_1ms(void)
fastLoop (10000);
res = readTimer0() - offset;
if (res < emptyCall) {
printk("Problem #1 in offset computation in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
while (1);
printk(
"Problem #1 in offset computation in Calibrate_loop_1ms "
" in file libbsp/i386/pc386/timer/timer.c\n"
);
goto retry;
}
fastLoopGranularity = (res - emptyCall) / 10000;
/*
@@ -446,14 +456,20 @@ Calibrate_loop_1ms(void)
slowLoop(10);
res = readTimer0();
if (res < offset + emptyCall) {
printk("Problem #2 in offset computation in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
while (1);
printk(
"Problem #2 in offset computation in Calibrate_loop_1ms "
" in file libbsp/i386/pc386/timer/timer.c\n"
);
goto retry;
}
slowLoopGranularity = (res - offset - emptyCall)/ 10;
if (slowLoopGranularity == 0) {
printk("Problem #3 in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
while (1);
printk(
"Problem #3 in offset computation in Calibrate_loop_1ms "
" in file libbsp/i386/pc386/timer/timer.c\n"
);
goto retry;
}
targetClockBits += offset;

View File

@@ -121,6 +121,13 @@ nested:
movl ebp, esp
popl ebp
/*
* GCC versions starting with 4.3 no longer place the cld
* instruction before string operations. We need to ensure
* it is set correctly for ISR handlers.
*/
cld
/*
* restore the original i8259 masks
*/

View File

@@ -1,3 +1,8 @@
2011-03-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1772/bsps
* console/sci.c: Use same default baud rate as monitor.
2008-12-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Backport from CVS-HEAD.

View File

@@ -556,8 +556,8 @@ int SciInterruptOpen(
/* SciSetBaud(115200); set the baud rate */
/* SciSetBaud( 57600); set the baud rate */
/* SciSetBaud( 38400); set the baud rate */
SciSetBaud( 19200); /* set the baud rate */
/* SciSetBaud( 9600); set the baud rate */
/* SciSetBaud( 19200); set the baud rate */
SciSetBaud( 9600); /* set the baud rate */
SciSetParity(SCI_PARITY_NONE); /* set parity to none */
@@ -681,8 +681,8 @@ int SciSetAttributes(
if (!baud_requested)
{
/* baud_requested = B9600; default to 9600 baud */
baud_requested = B19200; /* default to 19200 baud */
baud_requested = B9600; /* default to 9600 baud */
/* baud_requested = B19200; default to 19200 baud */
}
sci_rate = termios_baud_to_number( baud_requested );
@@ -783,8 +783,8 @@ int SciPolledOpen(
/* SciSetBaud(115200); set the baud rate */
/* SciSetBaud( 57600); set the baud rate */
/* SciSetBaud( 38400); set the baud rate */
SciSetBaud( 19200); /* set the baud rate */
/* SciSetBaud( 9600); set the baud rate */
/* SciSetBaud( 19200); * set the baud rate */
SciSetBaud( 9600); /* set the baud rate */
SciSetParity(SCI_PARITY_NONE); /* set no parity */

View File

@@ -1,3 +1,9 @@
2011-07-20 Till Straumann <strauman@slac.stanford.edu>
PR 1837/bsps
* shared/motorola/motorola.c, shared/motorola/motorola.h: Add MVME2400
board with 750 CPU to list of supported Motorola boards.
2010-08-25 Till Straumann <strauman@slac.stanford.edu>
PR 1689/bsps

View File

@@ -1,3 +1,9 @@
2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1751/bsps
* start/start.S: Fix typo which was not caught by binutils prior to a
recent bug fix.
2009-10-16 Jennifer Averett <jennifer@OARcorp.com>
* Makefile.am, configure.ac, preinstall.am, console/alloc360.c,

View File

@@ -150,6 +150,6 @@ __rtems_entry_point:
mtlr r3
blr
.Lstart:
.size _start,.Lstart-_start
.size __rtems_entry_point,.Lstart-__rtems_entry_point
.comm environ,4,4

View File

@@ -1,3 +1,8 @@
2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, preinstall.am: Include stubs so all tests compile.
* include/tm27.h: New file.
2008-12-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Backport from CVS-HEAD.

View File

@@ -29,7 +29,10 @@ project_lib_DATA += rtems_crti.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds startup/linkcmds.memory
# Includes
include_HEADERS = include/bsp.h
include_HEADERS = include/bsp.h
include_HEADERS += include/tm27.h
include_HEADERS += ../../shared/include/coverhd.h
nodist_include_HEADERS = include/bspopts.h ../../shared/tod.h
include_bspdir = $(includedir)/bsp
@@ -47,6 +50,8 @@ clock_SOURCES = ../shared/clock/clock.c
irq_generic_SOURCES = ../../shared/src/irq-generic.c \
../../shared/src/irq-legacy.c
timer_SOURCES = ../../shared/timerstub.c
tests_SOURCES = tests/tests.c startup/sd-card-init.c
# Network
@@ -60,7 +65,7 @@ endif
# BSP library
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES = $(startup_SOURCES) $(clock_SOURCES) $(irq_generic_SOURCES) \
$(tests_SOURCES)
$(timer_SOURCES) $(tests_SOURCES)
libbsp_a_LIBADD = ../../../libcpu/@RTEMS_CPU@/shared/cpuIdent.rel \
../../../libcpu/@RTEMS_CPU@/shared/cache.rel \

View File

@@ -0,0 +1,32 @@
/*
* tm27.h
*
* 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$
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
/*
* Define the interrupt mechanism for Time Test 27
*/
#define MUST_WAIT_FOR_INTERRUPT 0
#define Install_tm27_vector( handler ) /* set_vector( (handler), 6, 1 ) */
#define Cause_tm27_intr() /* XXX */
#define Clear_tm27_intr() /* XXX */
#define Lower_tm27_intr() /* empty */
#endif

View File

@@ -52,6 +52,14 @@ $(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h

View File

@@ -1,3 +1,11 @@
2011-03-31 Kate Feng <feng@bnl.gov>
PR 1778/bsps
* vme/VMEConfig.h: Used the VME shared IRQ handlers.
* include/bsp.h: Removed BSP_PIC_DO_EOI.
* network/if_100MHz/GT64260eth.c:
Recycle the Rx mbuf if there is any Rx error.
2009-05-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* irq/irq.c, network/if_1GHz/POSSIBLEBUG: Removed.

View File

@@ -100,14 +100,6 @@ DiscoveryChipVersion BSP_getDiscoveryChipVersion();
#define BSP_MAX_PCI_BUS_ON_PCI1 2
#define BSP_MAX_PCI_BUS (BSP_MAX_PCI_BUS_ON_PCI0+BSP_MAX_PCI_BUS_ON_PCI1)
/* The glues to Till's vmeUniverse, although the name does not
* actually reflect the relevant architect of the MVME5500.
* Till TODO ? : BSP_PCI_DO_EOI instead ?
* BSP_EXT_IRQ0 instead of BSP_PCI_IRQ0 ?
*
*/
#define BSP_PIC_DO_EOI inl(0xc34) /* PCI IACK */
#define BSP_PCI_IRQ0 BSP_GPP_IRQ_LOWEST_OFFSET
/*

View File

@@ -743,21 +743,22 @@ static int GT64260eth_rx(struct GTeth_softc *sc)
if (cmdsts & RX_STS_SF) sc->stats.frame_errors++;
if ((cmdsts & RX_STS_LC) || (cmdsts & RX_STS_COL))
ifp->if_collisions++;
goto give_it_back;
/* recycle the buffer */
m->m_len=sc->rx_buf_sz;
}
m = sc->rxq_mbuf[sc->rxq_fi];
m->m_len = m->m_pkthdr.len = byteCount - sizeof(struct ether_header);
eh = mtod (m, struct ether_header *);
m->m_data += sizeof(struct ether_header);
ether_input (ifp, eh, m);
else {
m = sc->rxq_mbuf[sc->rxq_fi];
m->m_len = m->m_pkthdr.len = byteCount - sizeof(struct ether_header);
eh = mtod (m, struct ether_header *);
m->m_data += sizeof(struct ether_header);
ether_input (ifp, eh, m);
ifp->if_ipackets++;
ifp->if_ibytes+=byteCount;
--sc->rxq_active;
give_it_back:
MGETHDR (m, M_WAIT, MT_DATA);
MCLGET (m, M_WAIT);
ifp->if_ipackets++;
ifp->if_ibytes+=byteCount;
--sc->rxq_active;
MGETHDR (m, M_WAIT, MT_DATA);
MCLGET (m, M_WAIT);
}
m->m_pkthdr.rcvif = ifp;
sc->rxq_mbuf[sc->rxq_fi]= m;
/* convert mbuf pointer to data pointer of correct type */

View File

@@ -1,6 +1,21 @@
#ifndef RTEMS_BSP_VME_CONFIG_H
#define RTEMS_BSP_VME_CONFIG_H
/* VMEConfig.h, S. Kate Feng modified it for MVME5500 3/04 */
/* VMEConfig.h, S. Kate Feng modified it for MVME5500 3/04
*
* May 2011 : Use the VME shared IRQ handlers.
*
* It seems that the implementation of VMEUNIVERSE_IRQ_MGR_FLAG_PW_WORKAROUND
* is not fully developed. The UNIV_REGOFF_VCSR_BS is defined for VME64
* specification, which does not apply to a VME32 crate. In order to avoid
* spurious VME interrupts, a better and more universal solution is
* to flush the vmeUniverse FIFO by reading a register back within the
* users' Interrupt Service Routine (ISR) before returning.
*
* Some devices might require the ISR to issue an interrupt status READ
* after its IRQ is cleared, but before its corresponding interrupt
* is enabled again.
*
*/
/* BSP specific address space configuration parameters */
/*
@@ -11,6 +26,10 @@
* layout:
*/
#define _VME_A32_WIN0_ON_PCI 0x90000000
/* If _VME_CSR_ON_PCI is defined then the A32 window is reduced to accommodate
* CSR for space.
*/
#define _VME_CSR_ON_PCI 0x9e000000
#define _VME_A24_ON_PCI 0x9f000000
#define _VME_A16_ON_PCI 0x9fff0000
@@ -30,7 +49,12 @@
#define BSP_VME_UNIVERSE_INSTALL_IRQ_MGR(err) \
do { \
err = vmeUniverseInstallIrqMgr(0,64+12,1,64+13); \
err = vmeUniverseInstallIrqMgrAlt(VMEUNIVERSE_IRQ_MGR_FLAG_SHARED,\
0, BSP_GPP_VME_VLINT0, \
1, BSP_GPP_VME_VLINT1, \
2, BSP_GPP_VME_VLINT2, \
3, BSP_GPP_VME_VLINT3, \
-1 /* terminate list */); \
} while (0)
#endif

View File

@@ -296,8 +296,12 @@ typedef struct {
int (*swizzler)(int, int);
} mot_info_t;
/* NOTE: When adding boards here the 'motorolaBoard' enums MUST be
* updated accordingly!
*/
static const mot_info_t mot_boards[] = {
{0x3E0, 0x00, PPC_750, "MVME 2400", mvme24xx_intmap,prep_pci_swizzle},
{0x0E0, 0xF9, PPC_604, "MVME 2400", mvme24xx_intmap,prep_pci_swizzle},
{0x3E0, 0x00, PPC_750, "MVME 2400 (PPC 750)", mvme24xx_intmap,prep_pci_swizzle},
{0x010, 0x00, PPC_UNKNOWN, "Genesis", NULL, NULL},
{0x020, 0x00, PPC_UNKNOWN, "Powerstack (Series E)", NULL, NULL},
{0x040, 0x00, PPC_UNKNOWN, "Blackhawk (Powerstack)", NULL, NULL},

View File

@@ -26,27 +26,28 @@ typedef enum {
typedef enum {
MVME_2400 = 0,
GENESIS = 1,
POWERSTACK_E = 2,
BLACKAWK = 3,
OMAHA = 4,
UTAH = 5,
POWERSTACK_EX = 6,
MESQUITE = 7,
SITKA = 8,
MESQUITE_W_HAC = 9,
MTX_PLUS = 10,
MTX_WO_PP = 11,
MTX_W_PP = 12,
MVME_2300 = 13,
MVME_2300SC_2600 = 14,
MVME_2600_W_MVME712M = 15,
MVME_2600_2700_W_MVME761 = 16,
MVME_3600_W_MVME712M = 17,
MVME_3600_W_MVME761 = 18,
MVME_1600 = 19,
/* In the table, slot 20 is the marker for end of automatic probe and scan */
MVME_2100 = 21,
MVME_2400_750 = 1,
GENESIS = 2,
POWERSTACK_E = 3,
BLACKAWK = 4,
OMAHA = 5,
UTAH = 6,
POWERSTACK_EX = 7,
MESQUITE = 8,
SITKA = 9,
MESQUITE_W_HAC = 10,
MTX_PLUS = 11,
MTX_WO_PP = 12,
MTX_W_PP = 13,
MVME_2300 = 14,
MVME_2300SC_2600 = 15,
MVME_2600_W_MVME712M = 16,
MVME_2600_2700_W_MVME761 = 17,
MVME_3600_W_MVME712M = 18,
MVME_3600_W_MVME761 = 19,
MVME_1600 = 20,
/* In the table, slot 21 is the marker for end of automatic probe and scan */
MVME_2100 = 22,
MOTOROLA_UNKNOWN = 255
} motorolaBoard;

View File

@@ -1,3 +1,16 @@
2011-04-25 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1783/bsps
* include/bsp.h: Remove dead prototypes of Clock_delay() and delay().
Neither had bodies.
2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1748/bsps
* clock/ckinit.c: When the clock tick generates an interrupt WHILE we
have interrupts disabled doing a get TOD or uptime, the get
nanoseconds handler was returning a bogusly large number.
2009-03-09 Antoine Lacroix <antoine.lacroix at sodern.fr>
PR 1391/bsps

View File

@@ -49,11 +49,17 @@ extern int CLOCK_SPEED;
uint32_t bsp_clock_nanoseconds_since_last_tick(void)
{
uint32_t clicks;
uint32_t usecs;
clicks = ERC32_MEC.Real_Time_Clock_Counter;
return (uint32_t)
(rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
if ( ERC32_Is_interrupt_pending( ERC32_INTERRUPT_REAL_TIME_CLOCK ) ) {
clicks = ERC32_MEC.Real_Time_Clock_Counter;
usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
} else {
usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
}
return usecs * 1000;
}
#define Clock_driver_nanoseconds_since_last_tick \

View File

@@ -52,15 +52,6 @@ extern int rtems_erc32_sonic_driver_attach (struct rtems_bsdnet_ifconfig *config
#define RTEMS_BSP_NETWORK_DRIVER_NAME "sonic1"
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_erc32_sonic_driver_attach
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
extern void Clock_delay(uint32_t microseconds);
#define delay( microseconds ) Clock_delay(microseconds)
/* Constants */
/*

View File

@@ -1,3 +1,21 @@
2011-07-21 Jorge Lopez <jorge.lopez.trescastro@esa.int>
PR 1766/bsps
* clock/ckinit.c: Add missing read of Timer_Counter_1.
2011-04-25 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1783/bsps
* include/bsp.h: Remove dead prototypes of Clock_delay() and delay().
Neither had bodies.
2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1748/bsps
* clock/ckinit.c: When the clock tick generates an interrupt WHILE we
have interrupts disabled doing a get TOD or uptime, the get
nanoseconds handler was returning a bogusly large number.
2009-03-09 Antoine Lacroix <antoine.lacroix at sodern.fr>
PR 1391/bsps

View File

@@ -59,17 +59,24 @@ extern int CLOCK_SPEED;
LEON_REG.Timer_Control_1 = 0; \
} while (0)
uint32_t bsp_clock_nanoseconds_since_last_tick(void)
{
uint32_t clicks;
uint32_t usecs;
clicks = LEON_REG.Timer_Counter_1;
/* Down counter */
return (uint32_t)
(rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
if ( LEON_Is_interrupt_pending( LEON_INTERRUPT_TIMER1 ) ) {
clicks = LEON_REG.Timer_Counter_1;
usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
} else {
usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
}
return usecs * 1000;
}
#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
#define Clock_driver_nanoseconds_since_last_tick \
bsp_clock_nanoseconds_since_last_tick
#include "../../../shared/clockdrv_shell.c"

View File

@@ -59,14 +59,6 @@ extern int rtems_smc91111_driver_attach_leon2(struct rtems_bsdnet_ifconfig *conf
* The synchronous trap is an arbitrarily chosen software trap.
*/
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
extern void Clock_delay(uint32_t microseconds);
#define delay( microseconds ) Clock_delay(microseconds)
extern int CPU_SPARC_HAS_SNOOPING;

View File

@@ -1,3 +1,21 @@
2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
* clock/ckinit.c: Correct back port.
2011-04-25 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1783/bsps
* include/bsp.h: Remove dead prototypes of Clock_delay() and delay().
Neither had bodies.
2011-03-04 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1748/bsps
* clock/ckinit.c, include/leon.h: When the clock tick generates an
interrupt WHILE we have interrupts disabled doing a get TOD or
uptime, the get nanoseconds handler was returning a bogusly large
number.
2009-03-09 Antoine Lacroix <antoine.lacroix at sodern.fr>
PR 1391/bsps

View File

@@ -6,7 +6,7 @@
* The tick frequency is directly programmed to the configured number of
* microseconds per tick.
*
* COPYRIGHT (c) 1989-2006.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* Modified for LEON3 BSP.
@@ -97,16 +97,18 @@ static int clkirq;
uint32_t bsp_clock_nanoseconds_since_last_tick(void)
{
uint32_t clicks;
if ( !LEON3_Timer_Regs )
return 0;
uint32_t usecs;
clicks = LEON3_Timer_Regs->timer[0].value;
/* Down counter */
return (uint32_t)
(rtems_configuration_get_microseconds_per_tick() - clicks) * 1000;
if ( LEON_Is_interrupt_pending( clkirq ) ) {
usecs = (2*rtems_configuration_get_microseconds_per_tick() - clicks);
} else {
usecs = (rtems_configuration_get_microseconds_per_tick() - clicks);
}
return usecs * 1000;
}
#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
#define Clock_driver_nanoseconds_since_last_tick \
bsp_clock_nanoseconds_since_last_tick
#include "../../../shared/clockdrv_shell.c"

View File

@@ -74,14 +74,6 @@ extern int rtems_leon_greth_driver_attach(
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH RTEMS_BSP_NETWORK_DRIVER_ATTACH_GRETH
#endif
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
extern void Clock_delay(uint32_t microseconds);
#define delay( microseconds ) Clock_delay(microseconds)
extern int CPU_SPARC_HAS_SNOOPING;

View File

@@ -245,11 +245,11 @@ extern int LEON3_Cpu_Index;
} while (0)
#define LEON_Is_interrupt_pending( _source ) \
(LEON3_IrqCtrl_Regs.ipend & (1 << (_source)))
(LEON3_IrqCtrl_Regs->ipend & (1 << (_source)))
#define LEON_Is_interrupt_masked( _source ) \
do {\
(LEON3_IrqCtrl_Regs.mask[LEON3_Cpu_Index] & (1 << (_source))); \
(LEON3_IrqCtrl_Regs->mask[LEON3_Cpu_Index] & (1 << (_source))); \
} while (0)

View File

@@ -1,3 +1,8 @@
2011-03-08 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1760/misc
* compilers/gcc-target-default.cfg: Fix typo in CPP definition.
2008-09-15 Joel Sherrill <joel.sherrill@OARcorp.com>
* leaf.cfg: LINK.c and LINK.cc include LDFLAGS so do not include it in

View File

@@ -87,8 +87,8 @@ CLOBBER_CC =
# Client compiler and support tools
#
# CPP command to write file to standard output
CPP=$(CC) -E -w -Wp,-$$
# CPP command to write file to standard output with warnings suppressed
CPP=$(CC) -E -w
# egrep regexp to ignore symbol table entries in ar archives.
# Only used to make sure we skip them when coalescing libraries.

View File

@@ -3,8 +3,10 @@ Makefile
Makefile.in
aclocal.m4
configure
config.*
config.guess
config.status
config.sub
config.log
autom4te*
missing
install-sh

View File

@@ -1,3 +1,54 @@
2011-07-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1839/filesystem
* libcsupport/include/rtems/libio_.h, libcsupport/src/fchdir.c,
libcsupport/src/fdatasync.c, libcsupport/src/fpathconf.c,
libcsupport/src/fsync.c, libcsupport/src/read.c,
libcsupport/src/readv.c, libcsupport/src/write.c,
libcsupport/src/writev.c: Some calls did not return proper status for
permission errors or incorrectly permissions at all.
2011-07-19 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1838/filesystem
* libcsupport/src/fchmod.c: fchmod() does not need a writeable file
descriptor.
2011-07-14 Gene Smith <gene.smith@siemens.com>
PR 1381/networking
* netinet/ip_output.c: If a null or unreachable gateway is
specified either statically in networkconfig.h or from dhcp/bootp,
sendto() fails on multicast send with errno "118 Host is unreachable".
The failure occurs in networking file ip_output.c since it currently
requires all multicasts to have a valid route to the outside world.
2011-06-10 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1812/filesystem
* libfs/src/imfs/imfs_stat.c: stat() implementation for IMFS did not
set st_blksize field. Set it based upon user configuration.
2011-04-04 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1722/networking
* ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
filenames with spaces in them.
2011-03-08 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1759/cpukit
* posix/src/cancel.c, posix/src/pthreaddetach.c,
posix/src/pthreadequal.c, posix/src/pthreadgetschedparam.c,
posix/src/pthreadjoin.c, posix/src/pthreadkill.c: Some POSIX pthread
services did not support using Classic API Task Ids.
2011-03-03 Chris Johns <chrisj@rtems.org>
PR 1749/filesystem
* libcsupport/src/mknod.c: Fix the incorrect handling of the file type
in the mode value o reject invalid types as per the standard.
2011-01-21 Eric Norum <wenorum@lbl.gov>
* libmisc/capture/capture.c: Avoid using TCB of task just deleted.

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.9.5]))
m4_define([_RTEMS_VERSION],[4.9.6]))
m4_define([RTEMS_API],[4.9])

View File

@@ -15,6 +15,10 @@
*
* Changes:
*
* 2010-12-02 Sebastien Bourdeauducq <sebastien@milkymist.org>
*
* * Support spaces in filenames
*
* 2001-01-31 Sergei Organov <osv@javad.ru>
*
* * Hacks with current dir and root dir removed in favor of new libio
@@ -1671,27 +1675,27 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
}
else if (!strcmp("RETR", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_retrieve(info, fname);
}
else if (!strcmp("STOR", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_store(info, fname);
}
else if (!strcmp("LIST", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_list(info, fname, 1);
}
else if (!strcmp("NLST", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_list(info, fname, 0);
}
else if (!strcmp("MDTM", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_mdtm(info, fname);
}
else if (!strcmp("SYST", cmd))
@@ -1727,7 +1731,7 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
send_reply(info, 550, "Access denied.");
}
else if (
1 == sscanf(args, "%254s", fname) &&
strncpy(fname, args, 254) &&
unlink(fname) == 0)
{
send_reply(info, 257, "DELE successful.");
@@ -1749,15 +1753,14 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
{
send_reply(info, 550, "Access denied.");
}
else if(
2 == sscanf(args, "%o %254s", &mask, fname) &&
chmod(fname, (mode_t)mask) == 0)
{
send_reply(info, 257, "CHMOD successful.");
}
else
{
send_reply(info, 550, "CHMOD failed.");
else {
char *c;
c = strchr(args, ' ');
if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)
&& (chmod(fname, (mode_t)mask) == 0))
send_reply(info, 257, "CHMOD successful.");
else
send_reply(info, 550, "CHMOD failed.");
}
}
else
@@ -1770,7 +1773,7 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
send_reply(info, 550, "Access denied.");
}
else if (
1 == sscanf(args, "%254s", fname) &&
strncpy(fname, args, 254) &&
rmdir(fname) == 0)
{
send_reply(info, 257, "RMD successful.");
@@ -1787,7 +1790,7 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
send_reply(info, 550, "Access denied.");
}
else if (
1 == sscanf(args, "%254s", fname) &&
strncpy(fname, args, 254) &&
mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
{
send_reply(info, 257, "MKD successful.");
@@ -1799,7 +1802,7 @@ exec_command(FTPD_SessionInfo_t *info, char* cmd, char* args)
}
else if (!strcmp("CWD", cmd))
{
sscanf(args, "%254s", fname);
strncpy(fname, args, 254);
command_cwd(info, fname);
}
else if (!strcmp("CDUP", cmd))

View File

@@ -123,19 +123,30 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
} \
} while (0)
/*
* rtems_libio_check_permissions_with_error
*
* Macro to check if a file descriptor is open for this operation.
* On failure, return the user specified error.
*/
#define rtems_libio_check_permissions_with_error(_iop, _flag, _errno) \
do { \
if (((_iop)->flags & (_flag)) == 0) { \
rtems_set_errno_and_return_minus_one( _errno ); \
return -1; \
} \
} while (0)
/*
* rtems_libio_check_permissions
*
* Macro to check if a file descriptor is open for this operation.
* On failure, return EINVAL
*/
#define rtems_libio_check_permissions(_iop, _flag) \
do { \
if (((_iop)->flags & (_flag)) == 0) { \
rtems_set_errno_and_return_minus_one( EINVAL ); \
return -1; \
} \
} while (0)
#define rtems_libio_check_permissions(_iop, _flag) \
rtems_libio_check_permissions_with_error(_iop, _flag, EINVAL )
/*
* rtems_filesystem_freenode

View File

@@ -1,7 +1,7 @@
/*
* fchdir() - compatible with SVr4, 4.4BSD and X/OPEN - Change Directory
*
* COPYRIGHT (c) 1989-2000.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -35,12 +35,6 @@ int fchdir(
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
/*
* Now process the fchmod().
*/
rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ );
/*
* Verify you can change directory into this node.
*/

View File

@@ -38,9 +38,6 @@ int fchmod(
/*
* Now process the fchmod().
*/
rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
if ( !iop->handlers->fchmod_h )
rtems_set_errno_and_return_minus_one( ENOTSUP );

View File

@@ -1,7 +1,7 @@
/*
* fdatasync() - POSIX 1003.1b 6.6.2 - Synchronize the Data of a File
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -29,7 +29,7 @@ int fdatasync(
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_WRITE, EBADF );
/*
* Now process the fdatasync().

View File

@@ -1,7 +1,7 @@
/*
* fpathconf() - POSIX 1003.1b - 5.7.1 - Configurable Pathname Varables
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -33,7 +33,6 @@ long fpathconf(
rtems_libio_check_fd(fd);
iop = rtems_libio_iop(fd);
rtems_libio_check_is_open(iop);
rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ);
/*
* Now process the information request.

View File

@@ -1,7 +1,7 @@
/*
* fsync() - POSIX 1003.1b 6.6.1 - Synchronize the State of a File
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -29,7 +29,6 @@ int fsync(
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
/*
* Now process the fsync().

View File

@@ -40,8 +40,19 @@ int mknod(
const char *name_start;
int result;
if ( !(mode & (S_IFREG|S_IFCHR|S_IFBLK|S_IFIFO) ) )
rtems_set_errno_and_return_minus_one( EINVAL );
/*
* The file type is field within the mode. Check we have a sane mode set.
*/
switch (mode & S_IFMT) {
case S_IFDIR:
case S_IFCHR:
case S_IFBLK:
case S_IFREG:
case S_IFIFO:
break;
default:
rtems_set_errno_and_return_minus_one( EINVAL );
}
if ( S_ISFIFO(mode) )
rtems_set_errno_and_return_minus_one( ENOTSUP );

View File

@@ -1,7 +1,7 @@
/*
* read() - POSIX 1003.1b 6.4.1 - Read From a File
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -32,7 +32,7 @@ ssize_t read(
rtems_libio_check_is_open( iop );
rtems_libio_check_buffer( buffer );
rtems_libio_check_count( count );
rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ );
rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_READ, EBADF );
/*
* Now process the read().

View File

@@ -5,7 +5,7 @@
*
* http://www.opengroup.org/onlinepubs/009695399/functions/readv.html
*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -40,7 +40,7 @@ ssize_t readv(
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open( iop );
rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ );
rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_READ, EBADF );
/*
* Argument validation on IO vector

View File

@@ -1,7 +1,7 @@
/*
* write() - POSIX 1003.1b 6.4.2 - Write to a File
*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -39,7 +39,7 @@ ssize_t write(
rtems_libio_check_is_open( iop );
rtems_libio_check_buffer( buffer );
rtems_libio_check_count( count );
rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_WRITE, EBADF );
/*
* Now process the write() request.

View File

@@ -5,7 +5,7 @@
*
* http://www.opengroup.org/onlinepubs/009695399/functions/writev.html
*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -41,7 +41,7 @@ ssize_t writev(
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open( iop );
rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_WRITE, EBADF );
/*
* Argument validation on IO vector

View File

@@ -64,5 +64,7 @@ int IMFS_stat(
buf->st_mtime = the_jnode->stat_mtime;
buf->st_ctime = the_jnode->stat_ctime;
buf->st_blksize = imfs_rq_memfile_bytes_per_block;
return 0;
}

View File

@@ -163,6 +163,15 @@ ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, int flags,
ifp = ia->ia_ifp;
ip->ip_ttl = 1;
isbroadcast = in_broadcast(dst->sin_addr, ifp);
} else if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) &&
imo != NULL && imo->imo_multicast_ifp != NULL) {
/*
* Bypass the normal routing lookup for multicast
* packets if the interface is specified.
*/
ifp = imo->imo_multicast_ifp;
IFP_TO_IA(ifp, ia);
isbroadcast = 0; /* fool gcc */
} else {
/*
* If this is the case, we probably don't want to allocate

View File

@@ -46,7 +46,7 @@ int pthread_cancel(
if ( _ISR_Is_in_progress() )
return EPROTO;
the_thread = _POSIX_Threads_Get( thread, &location );
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -30,7 +30,7 @@ int pthread_detach(
POSIX_API_Control *api;
Objects_Locations location;
the_thread = _POSIX_Threads_Get( thread, &location );
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -51,7 +51,7 @@ int pthread_equal(
* Validate the first id and return 0 if it is not valid
*/
(void) _POSIX_Threads_Get( t1, &location );
(void) _Thread_Get( t1, &location );
switch ( location ) {
case OBJECTS_LOCAL:
@@ -60,7 +60,7 @@ int pthread_equal(
* Validate the second id and return 0 if it is not valid
*/
(void) _POSIX_Threads_Get( t2, &location );
(void) _Thread_Get( t2, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -36,7 +36,7 @@ int pthread_getschedparam(
if ( !policy || !param )
return EINVAL;
the_thread = _POSIX_Threads_Get( thread, &location );
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -32,7 +32,7 @@ int pthread_join(
Objects_Locations location;
void *return_pointer;
the_thread = _POSIX_Threads_Get( thread, &location );
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -40,7 +40,7 @@ int pthread_kill(
if ( !is_valid_signo(sig) )
rtems_set_errno_and_return_minus_one( EINVAL );
the_thread = _POSIX_Threads_Get( thread, &location );
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
case OBJECTS_LOCAL:

View File

@@ -1,3 +1,9 @@
2011-07-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1845/bsps
* custom/rtl22xx_t.cfg: Remove unused line with what is now invalid
syntax.
2009-02-17 Till Straumann <strauman@slac.stanford.edu>
PR 1371/bsps

View File

@@ -3,7 +3,6 @@
#
# $Id$
#
set USE_THUMB_MODE=YES
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.9.5]))
m4_define([_RTEMS_VERSION],[4.9.6]))
m4_define([RTEMS_API],[4.9])