forked from Imagelibrary/rtems
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8f760df39 | ||
|
|
85f1b9aa11 | ||
|
|
84b2e65b23 | ||
|
|
dc64acee02 | ||
|
|
ac5b23ae00 | ||
|
|
c05bc62b82 | ||
|
|
43622d542d | ||
|
|
bdcd12cca0 | ||
|
|
2a4438a146 | ||
|
|
2e016f6f4e | ||
|
|
e3b513de4e | ||
|
|
c756999a47 | ||
|
|
e4daba4f56 | ||
|
|
8aa7be21c0 | ||
|
|
43ce60a47a | ||
|
|
425927e16d | ||
|
|
2fe013a145 | ||
|
|
c3f92efa3c | ||
|
|
f3ceabf904 | ||
|
|
476900c83b | ||
|
|
843bfe5943 | ||
|
|
f5a5d570a8 | ||
|
|
97207cb970 | ||
|
|
d209d9bbcc | ||
|
|
9ec55e633e | ||
|
|
5357e24abc |
@@ -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])
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 \
|
||||
|
||||
32
c/src/lib/libbsp/powerpc/mpc55xxevb/include/tm27.h
Normal file
32
c/src/lib/libbsp/powerpc/mpc55xxevb/include/tm27.h
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 */
|
||||
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -3,8 +3,10 @@ Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
configure
|
||||
config.*
|
||||
config.guess
|
||||
config.status
|
||||
config.sub
|
||||
config.log
|
||||
autom4te*
|
||||
missing
|
||||
install-sh
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
@@ -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().
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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().
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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().
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user