Changeset 0280cb6 in rtems


Ignore:
Timestamp:
Aug 20, 1998, 2:39:09 PM (23 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
53ee76b
Parents:
3f098aed
Message:

FreeBSD stack compiles for the first time (except libc/strsep.c)

Files:
42 edited

Legend:

Unmodified
Added
Removed
  • c/Makefile.in

    r3f098aed r0280cb6  
    3030LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V)
    3131
     32# We only make the install point for the KA9Q header files if it is enabled.
     33LIBNETWORKING_yes_V = lib/include/networking lib/include/networking/sys \
     34        lib/include/networking/machine lib/include/networking/rtems \
     35        lib/include/networking/vm lib/include/networking/net \
     36        lib/include/networking/netinet lib/include/networking/arpa \
     37        lib/include/networking/nfs
     38LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
     39
    3240# We only make the rtems++ install point if it is enabled.
    3341LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++
     
    4149    lib/include/motorola lib/include/zilog \
    4250    $(LIBKA9Q) \
     51    $(LIBNETWORKING) \
    4352    $(LIBRTEMSCPLUSPLUS) \
    4453    bin samples \
  • c/src/exec/score/cpu/i386/cpu.h

    r3f098aed r0280cb6  
    6565#define CPU_USE_DEFERRED_FP_SWITCH       TRUE
    6666
    67 #define CPU_PROVIDES_IDLE_THREAD_BODY    YES
     67#define CPU_PROVIDES_IDLE_THREAD_BODY    TRUE
    6868#define CPU_STACK_GROWS_UP               FALSE
    6969#define CPU_STRUCTURE_ALIGNMENT
  • c/src/lib/Makefile.in

    r3f098aed r0280cb6  
    1616LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V)
    1717
     18# We only build the networking library if HAS_NETWORKING was defined
     19LIBNETWORKING_yes_V = libnetworking
     20LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
     21NETWORKING_INCLUDE_yes_V = libnetworking/include
     22NETWORKING_INCLUDE = $(NETWORKING_INCLUDE_$(HAS_NETWORKING)_V)
     23
    1824# We only build the rtems++ library if HAS_CPLUSPLUS was defined
    1925LIBRTEMSCPLUSPLUS_yes_V = librtems++
     
    2329LIBHWAPI=$(wildcard libhwapi)
    2430
    25 SUB_DIRS=start include libmisc libc libcpu libbsp \
    26          $(LIBKA9Q) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup
     31SUB_DIRS=start include $(NETWORKING_INCLUDE) libmisc libc libcpu libbsp \
     32         $(LIBKA9Q) $(LIBNETWORKING) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup
  • c/src/lib/libbsp/m68k/gen68360/Makefile.in

    r3f098aed r0280cb6  
    1515
    1616# We only build the ka9q device driver if HAS_KA9Q was defined
    17 KA9Q_DRIVER_yes_V = network
     17KA9Q_DRIVER_yes_V = ka9q_network
    1818KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V)
     19
     20# We only build the networking device driver if HAS_NETWORKING was defined
     21NETWORKING_DRIVER_yes_V = network
     22NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V)
    1923
    2024all: $(SRCS)
     
    2226# wrapup is the one that actually builds and installs the library
    2327#  from the individual .rel files built in other directories
    24 SUB_DIRS=include start360 startup clock console timer $(KA9Q_DRIVER) wrapup
     28SUB_DIRS=include start360 startup clock console timer \
     29        $(KA9Q_DRIVER) $(NETWORKING_DRIVER) wrapup
  • c/src/lib/libbsp/m68k/gen68360/network/Makefile.in

    r3f098aed r0280cb6  
    2828#
    2929
    30 DEFINES  +=
     30DEFINES  += -D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS \
     31     -DDIAGNOSTIC -DBOOTP_COMPAT
    3132CPPFLAGS +=
    3233CFLAGS   +=
  • c/src/lib/libbsp/m68k/gen68360/network/network.c

    r3f098aed r0280cb6  
    11/*
    2  * RTEMS/KA9Q driver for M68360 SCC1 Ethernet
     2 * RTEMS driver for M68360 SCC1 Ethernet
    33 *
    44 * W. Eric Norum
     
    1212#include <bsp.h>
    1313#include <m68360.h>
     14#include <m68360.h>
     15#include <stdarg.h>
    1416#include <rtems/error.h>
    15 #include <ka9q/rtems_ka9q.h>
    16 #include <ka9q/global.h>
    17 #include <ka9q/enet.h>
    18 #include <ka9q/iface.h>
    19 #include <ka9q/netuser.h>
    20 #include <ka9q/trace.h>
    21 #include <ka9q/commands.h>
    22 #include <ka9q/domain.h>
     17#include <rtems/rtems_bsdnet.h>
     18
     19#include <sys/param.h>
     20#include <sys/mbuf.h>
     21#include <sys/socket.h>
     22#include <sys/sockio.h>
     23
     24#include <net/if.h>
     25
     26#include <netinet/in.h>
     27#include <netinet/if_ether.h>
    2328
    2429/*
     
    3742
    3843/*
    39  * RTEMS event used by interrupt handler to signal daemons.
    40  * This must *not* be the same event used by the KA9Q task synchronization.
     44 * RTEMS event used by interrupt handler to signal driver tasks.
     45 * This must not be any of the events used by the network task synchronization.
    4146 */
    4247#define INTERRUPT_EVENT RTEMS_EVENT_1
    4348
    4449/*
    45  * Receive buffer size -- Allow for a full ethernet packet plus a pointer
    46  */
    47 #define RBUF_SIZE       (1520 + sizeof (struct iface *))
    48 
    49 /*
    50  * Hardware-specific storage
    51  */
    52 struct m360EnetDriver {
     50 * RTEMS event used to start transmit daemon.
     51 * This must not be the same as INTERRUPT_EVENT.
     52 */
     53#define START_TRANSMIT_EVENT    RTEMS_EVENT_2
     54
     55/*
     56 * Receive buffer size -- Allow for a full ethernet packet including CRC
     57 */
     58#define RBUF_SIZE       1520
     59
     60#if (MCLBYTES < RBUF_SIZE)
     61# error "Driver must have MCLBYTES > RBUF_SIZE"
     62#endif
     63
     64/*
     65 * Per-device data
     66 */
     67struct scc_softc {
     68        struct arpcom           arpcom;
    5369        struct mbuf             **rxMbuf;
    5470        struct mbuf             **txMbuf;
     71        int                     acceptBroadcast;
    5572        int                     rxBdCount;
    5673        int                     txBdCount;
     
    6077        m360BufferDescriptor_t  *rxBdBase;
    6178        m360BufferDescriptor_t  *txBdBase;
    62         struct iface            *iface;
    63         rtems_id                txWaitTid;
     79        rtems_id                rxDaemonTid;
     80        rtems_id                txDaemonTid;
    6481
    6582        /*
     
    85102        unsigned long   txRawWait;
    86103};
    87 static struct m360EnetDriver m360EnetDriver[NSCCDRIVER];
     104static struct scc_softc scc_softc[NSCCDRIVER];
    88105
    89106/*
     
    99116                m360.scc1.scce = 0x8;
    100117                m360.scc1.sccm &= ~0x8;
    101                 m360EnetDriver[0].rxInterrupts++;
    102                 rtems_event_send (m360EnetDriver[0].iface->rxproc, INTERRUPT_EVENT);
     118                scc_softc[0].rxInterrupts++;
     119                rtems_event_send (scc_softc[0].rxDaemonTid, INTERRUPT_EVENT);
    103120        }
    104121
     
    109126                m360.scc1.scce = 0x12;
    110127                m360.scc1.sccm &= ~0x12;
    111                 m360EnetDriver[0].txInterrupts++;
    112                 rtems_event_send (m360EnetDriver[0].txWaitTid, INTERRUPT_EVENT);
     128                scc_softc[0].txInterrupts++;
     129                rtems_event_send (scc_softc[0].txDaemonTid, INTERRUPT_EVENT);
    113130        }
    114131        m360.cisr = 1UL << 30;  /* Clear SCC1 interrupt-in-service bit */
     
    119136 */
    120137static void
    121 m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag)
     138m360Enet_initialize_hardware (struct scc_softc *sc)
    122139{
    123140        int i;
    124141        unsigned char *hwaddr;
    125         rtems_status_code sc;
     142        rtems_status_code status;
    126143        rtems_isr_entry old_handler;
    127144
     
    149166         * Allocate mbuf pointers
    150167         */
    151         dp->rxMbuf = mallocw (dp->rxBdCount * sizeof *dp->rxMbuf);
    152         dp->txMbuf = mallocw (dp->txBdCount * sizeof *dp->txMbuf);
     168        sc->rxMbuf = malloc (sc->rxBdCount * sizeof *sc->rxMbuf, M_MBUF, M_NOWAIT);
     169        sc->txMbuf = malloc (sc->txBdCount * sizeof *sc->txMbuf, M_MBUF, M_NOWAIT);
     170        if (!sc->rxMbuf || !sc->txMbuf)
     171                rtems_panic ("No memory for mbuf pointers");
    153172
    154173        /*
    155174         * Set receiver and transmitter buffer descriptor bases
    156175         */
    157         dp->rxBdBase = M360AllocateBufferDescriptors(dp->rxBdCount);
    158         dp->txBdBase = M360AllocateBufferDescriptors(dp->txBdCount);
    159         m360.scc1p.rbase = (char *)dp->rxBdBase - (char *)&m360;
    160         m360.scc1p.tbase = (char *)dp->txBdBase - (char *)&m360;
     176        sc->rxBdBase = M360AllocateBufferDescriptors(sc->rxBdCount);
     177        sc->txBdBase = M360AllocateBufferDescriptors(sc->txBdCount);
     178        m360.scc1p.rbase = (char *)sc->rxBdBase - (char *)&m360;
     179        m360.scc1p.tbase = (char *)sc->txBdBase - (char *)&m360;
    161180
    162181        /*
     
    174193         * Set maximum receive buffer length
    175194         */
    176         m360.scc1p.mrblr = 1520;
     195        m360.scc1p.mrblr = RBUF_SIZE;
    177196
    178197        /*
     
    204223        m360.scc1p.un.ethernet.mflr = 1518;
    205224        m360.scc1p.un.ethernet.minflr = 64;
    206         m360.scc1p.un.ethernet.maxd1 = 1520;
    207         m360.scc1p.un.ethernet.maxd2 = 1520;
     225        m360.scc1p.un.ethernet.maxd1 = RBUF_SIZE;
     226        m360.scc1p.un.ethernet.maxd2 = RBUF_SIZE;
    208227
    209228        /*
     
    218237         * Set our physical address
    219238         */
    220         hwaddr = dp->iface->hwaddr;
     239        hwaddr = sc->arpcom.ac_enaddr;
    221240        m360.scc1p.un.ethernet.paddr_h = (hwaddr[5] << 8) | hwaddr[4];
    222241        m360.scc1p.un.ethernet.paddr_m = (hwaddr[3] << 8) | hwaddr[2];
     
    239258         * Set up receive buffer descriptors
    240259         */
    241         for (i = 0 ; i < dp->rxBdCount ; i++)
    242                 (dp->rxBdBase + i)->status = 0;
     260        for (i = 0 ; i < sc->rxBdCount ; i++)
     261                (sc->rxBdBase + i)->status = 0;
    243262
    244263        /*
    245264         * Set up transmit buffer descriptors
    246265         */
    247         for (i = 0 ; i < dp->txBdCount ; i++) {
    248                 (dp->txBdBase + i)->status = 0;
    249                 dp->txMbuf[i] = NULL;
    250         }
    251         dp->txBdHead = dp->txBdTail = 0;
    252         dp->txBdActiveCount = 0;
     266        for (i = 0 ; i < sc->txBdCount ; i++) {
     267                (sc->txBdBase + i)->status = 0;
     268                sc->txMbuf[i] = NULL;
     269        }
     270        sc->txBdHead = sc->txBdTail = 0;
     271        sc->txBdActiveCount = 0;
    253272
    254273        /*
     
    260279         * Set up interrupts
    261280         */
    262         sc = rtems_interrupt_catch (m360Enet_interrupt_handler,
     281        status = rtems_interrupt_catch (m360Enet_interrupt_handler,
    263282                                                (m360.cicr & 0xE0) | 0x1E,
    264283                                                &old_handler);
    265         if (sc != RTEMS_SUCCESSFUL)
     284        if (status != RTEMS_SUCCESSFUL)
    266285                rtems_panic ("Can't attach M360 SCC1 interrupt handler: %s\n",
    267                                                         rtems_status_text (sc));
     286                                                rtems_status_text (status));
    268287        m360.scc1.sccm = 0;     /* No interrupts unmasked till necessary */
    269288        m360.cimr |= (1UL << 30);       /* Enable SCC1 interrupt */
     
    298317         *      Disable full-duplex operation
    299318         */
    300         m360.scc1.psmr = 0x880A | (broadcastFlag ? 0 : 0x100);
     319        m360.scc1.psmr = 0x880A | (sc->acceptBroadcast ? 0 : 0x100);
    301320
    302321        /*
     
    310329        m360.pcdir &= ~0x1;
    311330#endif
    312 
    313         /*
    314          * Enable receiver and transmitter
    315          */
    316         m360.scc1.gsmr_l = 0x1088003c;
    317331}
    318332
     
    326340 */
    327341static void
    328 m360Enet_retire_tx_bd (struct m360EnetDriver *dp)
     342m360Enet_retire_tx_bd (struct scc_softc *sc)
    329343{
    330344        rtems_unsigned16 status;
    331345        int i;
    332346        int nRetired;
    333 
    334         i = dp->txBdTail;
     347        struct mbuf *m, *n;
     348
     349        i = sc->txBdTail;
    335350        nRetired = 0;
    336         while ((dp->txBdActiveCount != 0)
    337            &&  (((status = (dp->txBdBase + i)->status) & M360_BD_READY) == 0)) {
     351        while ((sc->txBdActiveCount != 0)
     352           &&  (((status = (sc->txBdBase + i)->status) & M360_BD_READY) == 0)) {
    338353                /*
    339354                 * See if anything went wrong
     
    352367                                        M360_BD_UNDERRUN)) {
    353368                                if (status & M360_BD_LATE_COLLISION)
    354                                         m360EnetDriver[0].txLateCollision++;
     369                                        scc_softc[0].txLateCollision++;
    355370                                if (status & M360_BD_RETRY_LIMIT)
    356                                         m360EnetDriver[0].txRetryLimit++;
     371                                        scc_softc[0].txRetryLimit++;
    357372                                if (status & M360_BD_UNDERRUN)
    358                                         m360EnetDriver[0].txUnderrun++;
     373                                        scc_softc[0].txUnderrun++;
    359374
    360375                                /*
     
    364379                        }
    365380                        if (status & M360_BD_DEFER)
    366                                 m360EnetDriver[0].txDeferred++;
     381                                scc_softc[0].txDeferred++;
    367382                        if (status & M360_BD_HEARTBEAT)
    368                                 m360EnetDriver[0].txHeartbeat++;
     383                                scc_softc[0].txHeartbeat++;
    369384                        if (status & M360_BD_CARRIER_LOST)
    370                                 m360EnetDriver[0].txLostCarrier++;
     385                                scc_softc[0].txLostCarrier++;
    371386                }
    372387                nRetired++;
     
    376391                         * Free all the associated buffer descriptors.
    377392                         */
    378                         dp->txBdActiveCount -= nRetired;
     393                        sc->txBdActiveCount -= nRetired;
    379394                        while (nRetired) {
    380395                                nRetired--;
    381                                 free_mbuf (&dp->txMbuf[dp->txBdTail]);
    382                                 if (++dp->txBdTail == dp->txBdCount)
    383                                         dp->txBdTail = 0;
     396                                m = sc->txMbuf[sc->txBdTail];
     397                                MFREE (m, n);
     398                                if (++sc->txBdTail == sc->txBdCount)
     399                                        sc->txBdTail = 0;
    384400                        }
    385401                }
    386                 if (++i == dp->txBdCount)
     402                if (++i == sc->txBdCount)
    387403                        i = 0;
    388404        }
     
    390406
    391407/*
    392  * Send raw packet (caller provides header).
    393  * This code runs in the context of the interface transmit
    394  * task or in the context of the network task.
    395  */
    396 static int
    397 m360Enet_raw (struct iface *iface, struct mbuf **bpp)
    398 {
    399         struct m360EnetDriver *dp = &m360EnetDriver[iface->dev];
    400         struct mbuf *bp;
     408 * SCC reader task
     409 */
     410static void
     411scc_rxDaemon (void *arg)
     412{
     413        struct scc_softc *sc = (struct scc_softc *)arg;
     414        struct ifnet *ifp = &sc->arpcom.ac_if;
     415        struct mbuf *m;
     416        rtems_unsigned16 status;
     417        m360BufferDescriptor_t *rxBd;
     418        int rxBdIndex;
     419
     420        /*
     421         * Allocate space for incoming packets and start reception
     422         */
     423        for (rxBdIndex = 0 ; ;) {
     424                rxBd = sc->rxBdBase + rxBdIndex;
     425                MGETHDR (m, M_WAIT, MT_DATA);
     426                MCLGET (m, M_WAIT);
     427                m->m_pkthdr.rcvif = ifp;
     428                sc->rxMbuf[rxBdIndex] = m;
     429                rxBd->buffer = mtod (m, void *);
     430                rxBd->status = M360_BD_EMPTY | M360_BD_INTERRUPT;
     431                if (++rxBdIndex == sc->rxBdCount) {
     432                        rxBd->status |= M360_BD_WRAP;
     433                        break;
     434                }
     435        }
     436
     437        /*
     438         * Input packet handling loop
     439         */
     440        rxBdIndex = 0;
     441        for (;;) {
     442                rxBd = sc->rxBdBase + rxBdIndex;
     443
     444                /*
     445                 * Wait for packet if there's not one ready
     446                 */
     447                if ((status = rxBd->status) & M360_BD_EMPTY) {
     448                        /*
     449                         * Clear old events
     450                         */
     451                        m360.scc1.scce = 0x8;
     452
     453                        /*
     454                         * Wait for packet
     455                         * Note that the buffer descriptor is checked
     456                         * *before* the event wait -- this catches the
     457                         * possibility that a packet arrived between the
     458                         * `if' above, and the clearing of the event register.
     459                         */
     460                        while ((status = rxBd->status) & M360_BD_EMPTY) {
     461                                rtems_event_set events;
     462
     463                                /*
     464                                 * Unmask RXF (Full frame received) event
     465                                 */
     466                                m360.scc1.sccm |= 0x8;
     467
     468                                rtems_bsdnet_event_receive (INTERRUPT_EVENT,
     469                                                RTEMS_WAIT|RTEMS_EVENT_ANY,
     470                                                RTEMS_NO_TIMEOUT,
     471                                                &events);
     472                        }
     473                }
     474
     475                /*
     476                 * Check that packet is valid
     477                 */
     478                if ((status & (M360_BD_LAST |
     479                                M360_BD_FIRST_IN_FRAME |
     480                                M360_BD_LONG |
     481                                M360_BD_NONALIGNED |
     482                                M360_BD_SHORT |
     483                                M360_BD_CRC_ERROR |
     484                                M360_BD_OVERRUN |
     485                                M360_BD_COLLISION)) ==
     486                                                (M360_BD_LAST |
     487                                                M360_BD_FIRST_IN_FRAME)) {
     488                        /*
     489                         * Pass the packet up the chain.
     490                         * FIXME: Packet filtering hook could be done here.
     491                         */
     492                        struct ether_header *eh;
     493                        int s;
     494
     495                        m = sc->rxMbuf[rxBdIndex];
     496                        m->m_len = m->m_pkthdr.len = rxBd->length -
     497                                                sizeof(rtems_unsigned32) -
     498                                                sizeof(struct ether_header);
     499                        eh = mtod (m, struct ether_header *);
     500                        m->m_data += sizeof(struct ether_header);
     501                        ether_input (ifp, eh, m);
     502
     503                        /*
     504                         * Allocate a new mbuf
     505                         */
     506                        MGETHDR (m, M_WAIT, MT_DATA);
     507                        MCLGET (m, M_WAIT);
     508                        m->m_pkthdr.rcvif = ifp;
     509                        sc->rxMbuf[rxBdIndex] = m;
     510                        rxBd->buffer = mtod (m, void *);
     511                }
     512                else {
     513                        /*
     514                         * Something went wrong with the reception
     515                         */
     516                        if (!(status & M360_BD_LAST))
     517                                sc->rxNotLast++;
     518                        if (!(status & M360_BD_FIRST_IN_FRAME))
     519                                sc->rxNotFirst++;
     520                        if (status & M360_BD_LONG)
     521                                sc->rxGiant++;
     522                        if (status & M360_BD_NONALIGNED)
     523                                sc->rxNonOctet++;
     524                        if (status & M360_BD_SHORT)
     525                                sc->rxRunt++;
     526                        if (status & M360_BD_CRC_ERROR)
     527                                sc->rxBadCRC++;
     528                        if (status & M360_BD_OVERRUN)
     529                                sc->rxOverrun++;
     530                        if (status & M360_BD_COLLISION)
     531                                sc->rxCollision++;
     532                }
     533
     534                /*
     535                 * Reenable the buffer descriptor
     536                 */
     537                rxBd->status = (status & (M360_BD_WRAP | M360_BD_INTERRUPT)) | M360_BD_EMPTY;
     538
     539                /*
     540                 * Move to next buffer descriptor
     541                 */
     542                if (++rxBdIndex == sc->rxBdCount)
     543                        rxBdIndex = 0;
     544        }
     545}
     546
     547static void
     548sendpacket (struct ifnet *ifp, struct mbuf *m)
     549{
     550        struct scc_softc *sc = ifp->if_softc;
    401551        volatile m360BufferDescriptor_t *firstTxBd, *txBd;
     552        struct mbuf *l = NULL;
    402553        rtems_unsigned16 status;
    403554        int nAdded;
    404555
    405556        /*
    406          * Fill in some logging data
    407          */
    408         iface->rawsndcnt++;
    409         iface->lastsent = secclock ();
    410         dump (iface, IF_TRACE_OUT, *bpp);
    411 
    412         /*
    413          * It would not do to have two tasks active in the transmit
    414          * loop at the same time.
    415          * The blocking is simple-minded since the odds of two tasks
    416          * simultaneously attempting to use this code are low.  The only
    417          * way that two tasks can try to run here is:
    418          *      1) Task A enters this code and ends up having to
    419          *         wait for a transmit buffer descriptor.
    420          *      2) Task B  gains control and tries to transmit a packet.
    421          * The RTEMS/KA9Q scheduling semaphore ensures that there
    422          * are no race conditions associated with manipulating the
    423          * txWaitTid variable.
    424          */
    425         if (dp->txWaitTid) {
    426                 dp->txRawWait++;
    427                 while (dp->txWaitTid)
    428                         rtems_ka9q_ppause (10);
    429         }
    430 
    431         /*
    432557         * Free up buffer descriptors
    433558         */
    434         m360Enet_retire_tx_bd (dp);
     559        m360Enet_retire_tx_bd (sc);
    435560
    436561        /*
     
    441566         * since the hardware is capable of scatter/gather DMA.
    442567         */
    443         bp = *bpp;
    444568        nAdded = 0;
    445         txBd = firstTxBd = dp->txBdBase + dp->txBdHead;
     569        txBd = firstTxBd = sc->txBdBase + sc->txBdHead;
    446570        for (;;) {
    447571                /*
    448572                 * Wait for buffer descriptor to become available.
    449573                 */
    450                 if ((dp->txBdActiveCount + nAdded) == dp->txBdCount) {
    451                         /*
    452                          * Find out who we are
    453                          */
    454                         if (dp->txWaitTid == 0)
    455                                 rtems_task_ident (0, 0, &dp->txWaitTid);
    456 
     574                if ((sc->txBdActiveCount + nAdded) == sc->txBdCount) {
    457575                        /*
    458576                         * Clear old events
     
    472590                         * an interrupt.
    473591                         */
    474                         m360Enet_retire_tx_bd (dp);
    475                         while ((dp->txBdActiveCount + nAdded) == dp->txBdCount) {
     592                        m360Enet_retire_tx_bd (sc);
     593                        while ((sc->txBdActiveCount + nAdded) == sc->txBdCount) {
     594                                rtems_event_set events;
     595
    476596                                /*
    477597                                 * Unmask TXB (buffer transmitted) and
     
    479599                                 */
    480600                                m360.scc1.sccm |= 0x12;
    481 
    482                                 rtems_ka9q_event_receive (INTERRUPT_EVENT,
     601                                rtems_bsdnet_event_receive (INTERRUPT_EVENT,
    483602                                                RTEMS_WAIT|RTEMS_EVENT_ANY,
    484                                                 RTEMS_NO_TIMEOUT);
    485                                 m360Enet_retire_tx_bd (dp);
     603                                                RTEMS_NO_TIMEOUT,
     604                                                &events);
     605                                m360Enet_retire_tx_bd (sc);
    486606                        }
    487607                }
    488608
    489609                /*
    490                  * Fill in the buffer descriptor
    491                  */
    492                 txBd->buffer = bp->data;
    493                 txBd->length = bp->cnt;
    494                 dp->txMbuf[dp->txBdHead] = bp;
    495 
    496                 /*
    497                  * Don't set the READY flag till the whole packet has been readied.
     610                 * Don't set the READY flag till the
     611                 * whole packet has been readied.
    498612                 */
    499613                status = nAdded ? M360_BD_READY : 0;
    500                 nAdded++;
    501                 if (++dp->txBdHead == dp->txBdCount) {
    502                         status |= M360_BD_WRAP;
    503                         dp->txBdHead = 0;
     614
     615                /*
     616                 *  FIXME: Why not deal with empty mbufs at at higher level?
     617                 * The IP fragmentation routine in ip_output
     618                 * can produce packet fragments with zero length.
     619                 * I think that ip_output should be changed to get
     620                 * rid of these zero-length mbufs, but for now,
     621                 * I'll deal with them here.
     622                 */
     623                if (m->m_len) {
     624                        /*
     625                         * Fill in the buffer descriptor
     626                         */
     627                        txBd->buffer = mtod (m, void *);
     628                        txBd->length = m->m_len;
     629                        sc->txMbuf[sc->txBdHead] = m;
     630                        nAdded++;
     631                        if (++sc->txBdHead == sc->txBdCount) {
     632                                status |= M360_BD_WRAP;
     633                                sc->txBdHead = 0;
     634                        }
     635                        l = m;
     636                        m = m->m_next;
     637                }
     638                else {
     639                        /*
     640                         * Just toss empty mbufs
     641                         */
     642                        struct mbuf *n;
     643                        MFREE (m, n);
     644                        m = n;
     645                        if (l != NULL)
     646                                l->m_next = m;
    504647                }
    505648
     
    508651                 * Break out of the loop if this mbuf is the last in the frame.
    509652                 */
    510                 if ((bp = bp->next) == NULL) {
    511                         status |= M360_BD_PAD | M360_BD_LAST | M360_BD_TX_CRC | M360_BD_INTERRUPT;
    512                         txBd->status = status;
    513                         firstTxBd->status |= M360_BD_READY;
    514                         dp->txBdActiveCount += nAdded;
     653                if (m == NULL) {
     654                        if (nAdded) {
     655                                status |= M360_BD_PAD | M360_BD_LAST | M360_BD_TX_CRC | M360_BD_INTERRUPT;
     656                                txBd->status = status;
     657                                firstTxBd->status |= M360_BD_READY;
     658                                sc->txBdActiveCount += nAdded;
     659                        }
    515660                        break;
    516661                }
    517662                txBd->status = status;
    518                 txBd = dp->txBdBase + dp->txBdHead;
    519         }
    520 
    521         /*
    522          * Show that we've finished with the packet
    523          */
    524         dp->txWaitTid = 0;
    525         *bpp = NULL;
    526         return 0;
    527 }
    528 
    529 /*
    530  * SCC reader task
     663                txBd = sc->txBdBase + sc->txBdHead;
     664        }
     665}
     666
     667/*
     668 * Driver transmit daemon
     669 */
     670void
     671scc_txDaemon (void *arg)
     672{
     673        struct scc_softc *sc = (struct scc_softc *)arg;
     674        struct ifnet *ifp = &sc->arpcom.ac_if;
     675        struct mbuf *m;
     676        rtems_event_set events;
     677
     678        for (;;) {
     679                /*
     680                 * Wait for packet
     681                 */
     682                rtems_bsdnet_event_receive (START_TRANSMIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &events);
     683
     684                /*
     685                 * Send packets till queue is empty
     686                 */
     687                for (;;) {
     688                        /*
     689                         * Get the next mbuf chain to transmit.
     690                         */
     691                        IF_DEQUEUE(&ifp->if_snd, m);
     692                        if (!m)
     693                                break;
     694                        sendpacket (ifp, m);
     695                }
     696                ifp->if_flags &= ~IFF_OACTIVE;
     697        }
     698}
     699
     700/*
     701 * Send packet (caller provides header).
    531702 */
    532703static void
    533 m360Enet_rx (int dev, void *p1, void *p2)
    534 {
    535         struct iface *iface = (struct iface *)p1;
    536         struct m360EnetDriver *dp = (struct m360EnetDriver *)p2;
    537         struct mbuf *bp;
    538         rtems_unsigned16 status;
    539         m360BufferDescriptor_t *rxBd;
    540         int rxBdIndex;
    541         int continuousCount;
    542 
    543         /*
    544          * Allocate space for incoming packets and start reception
    545          */
    546         for (rxBdIndex = 0 ; ;) {
    547                 rxBd = dp->rxBdBase + rxBdIndex;
    548                 dp->rxMbuf[rxBdIndex] = bp = ambufw (RBUF_SIZE);
    549                 bp->data += sizeof (struct iface *);
    550                 rxBd->buffer = bp->data;
    551                 rxBd->status = M360_BD_EMPTY | M360_BD_INTERRUPT;
    552                 if (++rxBdIndex == dp->rxBdCount) {
    553                         rxBd->status |= M360_BD_WRAP;
     704scc_start (struct ifnet *ifp)
     705{
     706        struct scc_softc *sc = ifp->if_softc;
     707
     708        rtems_event_send (sc->txDaemonTid, START_TRANSMIT_EVENT);
     709        ifp->if_flags |= IFF_OACTIVE;
     710}
     711
     712/*
     713 * Initialize and start the device
     714 */
     715static void
     716scc_init (void *arg)
     717{
     718        struct scc_softc *sc = arg;
     719        struct ifnet *ifp = &sc->arpcom.ac_if;
     720
     721        if (sc->txDaemonTid == 0) {
     722
     723                /*
     724                 * Set up SCC hardware
     725                 */
     726                m360Enet_initialize_hardware (sc);
     727
     728                /*
     729                 * Start driver tasks
     730                 */
     731                sc->txDaemonTid = rtems_bsdnet_newproc ("SCtx", 4096, scc_txDaemon, sc);
     732                sc->rxDaemonTid = rtems_bsdnet_newproc ("SCrx", 4096, scc_rxDaemon, sc);
     733
     734        }
     735
     736        /*
     737         * Set flags appropriately
     738         */
     739        if (ifp->if_flags & IFF_PROMISC)
     740                m360.scc1.psmr |= 0x200;
     741        else
     742                m360.scc1.psmr &= ~0x200;
     743
     744        /*
     745         * Tell the world that we're running.
     746         */
     747        ifp->if_flags |= IFF_RUNNING;
     748
     749        /*
     750         * Enable receiver and transmitter
     751         */
     752        m360.scc1.gsmr_l |= 0x30;
     753}
     754
     755/*
     756 * Stop the device
     757 */
     758static void
     759scc_stop (struct scc_softc *sc)
     760{
     761        struct ifnet *ifp = &sc->arpcom.ac_if;
     762
     763        ifp->if_flags &= ~IFF_RUNNING;
     764
     765        /*
     766         * Shut down receiver and transmitter
     767         */
     768        m360.scc1.gsmr_l &= ~0x30;
     769}
     770
     771
     772/*
     773 * Show interface statistics
     774 */
     775static void
     776scc_stats (struct scc_softc *sc)
     777{
     778        printf ("      Rx Interrupts:%-8lu", sc->rxInterrupts);
     779        printf ("       Not First:%-8lu", sc->rxNotFirst);
     780        printf ("        Not Last:%-8lu\n", sc->rxNotLast);
     781        printf ("              Giant:%-8lu", sc->rxGiant);
     782        printf ("            Runt:%-8lu", sc->rxRunt);
     783        printf ("       Non-octet:%-8lu\n", sc->rxNonOctet);
     784        printf ("            Bad CRC:%-8lu", sc->rxBadCRC);
     785        printf ("         Overrun:%-8lu", sc->rxOverrun);
     786        printf ("       Collision:%-8lu\n", sc->rxCollision);
     787        printf ("          Discarded:%-8lu\n", (unsigned long)m360.scc1p.un.ethernet.disfc);
     788
     789        printf ("      Tx Interrupts:%-8lu", sc->txInterrupts);
     790        printf ("        Deferred:%-8lu", sc->txDeferred);
     791        printf (" Missed Hearbeat:%-8lu\n", sc->txHeartbeat);
     792        printf ("         No Carrier:%-8lu", sc->txLostCarrier);
     793        printf ("Retransmit Limit:%-8lu", sc->txRetryLimit);
     794        printf ("  Late Collision:%-8lu\n", sc->txLateCollision);
     795        printf ("           Underrun:%-8lu", sc->txUnderrun);
     796        printf (" Raw output wait:%-8lu\n", sc->txRawWait);
     797}
     798
     799/*
     800 * Driver ioctl handler
     801 */
     802static int
     803scc_ioctl (struct ifnet *ifp, int command, caddr_t data)
     804{
     805        struct ifaddr *ifa = (struct ifaddr *)data;
     806        struct scc_softc *sc = ifp->if_softc;
     807        struct ifreq *ifr = (struct ifreq *) data;
     808        int error = 0;
     809
     810        switch (command) {
     811        case SIOCGIFADDR:
     812        case SIOCSIFADDR:
     813                ether_ioctl (ifp, command, data);
     814                break;
     815
     816        case SIOCSIFFLAGS:
     817                switch (ifp->if_flags & (IFF_UP | IFF_RUNNING)) {
     818                case IFF_RUNNING:
     819                        scc_stop (sc);
    554820                        break;
    555                 }
    556         }
    557 
    558         /*
    559          * Input packet handling loop
    560          */
    561         continuousCount = 0;
    562         rxBdIndex = 0;
    563         for (;;) {
    564                 rxBd = dp->rxBdBase + rxBdIndex;
    565 
    566                 /*
    567                  * Wait for packet if there's not one ready
    568                  */
    569                 if ((status = rxBd->status) & M360_BD_EMPTY) {
    570                         /*
    571                          * Reset `continuous-packet' count
    572                          */
    573                         continuousCount = 0;
    574 
    575                         /*
    576                          * Clear old events
    577                          */
    578                         m360.scc1.scce = 0x8;
    579 
    580                         /*
    581                          * Wait for packet
    582                          * Note that the buffer descriptor is checked
    583                          * *before* the event wait -- this catches the
    584                          * possibility that a packet arrived between the
    585                          * `if' above, and the clearing of the event register.
    586                          */
    587                         while ((status = rxBd->status) & M360_BD_EMPTY) {
    588                                 /*
    589                                  * Unmask RXF (Full frame received) event
    590                                  */
    591                                 m360.scc1.sccm |= 0x8;
    592 
    593                                 rtems_ka9q_event_receive (INTERRUPT_EVENT,
    594                                                 RTEMS_WAIT|RTEMS_EVENT_ANY,
    595                                                 RTEMS_NO_TIMEOUT);
    596                         }
    597                 }
    598 
    599                 /*
    600                  * Check that packet is valid
    601                  */
    602                 if ((status & (M360_BD_LAST |
    603                                 M360_BD_FIRST_IN_FRAME |
    604                                 M360_BD_LONG |
    605                                 M360_BD_NONALIGNED |
    606                                 M360_BD_SHORT |
    607                                 M360_BD_CRC_ERROR |
    608                                 M360_BD_OVERRUN |
    609                                 M360_BD_COLLISION)) ==
    610                                                 (M360_BD_LAST |
    611                                                 M360_BD_FIRST_IN_FRAME)) {
    612                         /*
    613                          * Pass the packet up the chain
    614                          * The mbuf count is reduced to remove
    615                          * the frame check sequence at the end
    616                          * of the packet.
    617                          */
    618                         bp = dp->rxMbuf[rxBdIndex];
    619                         bp->cnt = rxBd->length - sizeof (uint32);
    620                         net_route (iface, &bp);
    621 
    622                         /*
    623                          * Give the network code a chance to digest the
    624                          * packet.  This guards against a flurry of
    625                          * incoming packets (usually an ARP storm) from
    626                          * using up all the available memory.
    627                          */
    628                         if (++continuousCount >= dp->rxBdCount)
    629                                 kwait_null ();
    630 
    631                         /*
    632                          * Allocate a new mbuf
    633                          * FIXME: It seems to me that it would be better
    634                          * if there were some way to limit number of mbufs
    635                          * in use by this interface, but I don't see any
    636                          * way of determining when the mbuf we pass up
    637                          * is freed.
    638                          */
    639                         dp->rxMbuf[rxBdIndex] = bp = ambufw (RBUF_SIZE);
    640                         bp->data += sizeof (struct iface *);
    641                         rxBd->buffer = bp->data;
    642                 }
    643                 else {
    644                         /*
    645                          * Something went wrong with the reception
    646                          */
    647                         if (!(status & M360_BD_LAST))
    648                                 dp->rxNotLast++;
    649                         if (!(status & M360_BD_FIRST_IN_FRAME))
    650                                 dp->rxNotFirst++;
    651                         if (status & M360_BD_LONG)
    652                                 dp->rxGiant++;
    653                         if (status & M360_BD_NONALIGNED)
    654                                 dp->rxNonOctet++;
    655                         if (status & M360_BD_SHORT)
    656                                 dp->rxRunt++;
    657                         if (status & M360_BD_CRC_ERROR)
    658                                 dp->rxBadCRC++;
    659                         if (status & M360_BD_OVERRUN)
    660                                 dp->rxOverrun++;
    661                         if (status & M360_BD_COLLISION)
    662                                 dp->rxCollision++;
    663                 }
    664 
    665                 /*
    666                  * Reenable the buffer descriptor
    667                  */
    668                 rxBd->status = (status & (M360_BD_WRAP | M360_BD_INTERRUPT)) | M360_BD_EMPTY;
    669 
    670                 /*
    671                  * Move to next buffer descriptor
    672                  */
    673                 if (++rxBdIndex == dp->rxBdCount)
    674                         rxBdIndex = 0;
    675         }
    676 }
    677 
    678 /*
    679  * Shut down the interface
    680  * FIXME: This is a pretty simple-minded routine.  It doesn't worry
    681  * about cleaning up mbufs, shutting down daemons, etc.
    682  */
    683 static int
    684 m360Enet_stop (struct iface *iface)
    685 {
    686         /*
    687          * Stop the transmitter
    688          */
    689         M360ExecuteRISC (M360_CR_OP_GR_STOP_TX | M360_CR_CHAN_SCC1);
    690 
    691         /*
    692          * Wait for graceful stop
    693          * FIXME: Maybe there should be a watchdog loop around this....
    694          */
    695         while ((m360.scc1.scce & 0x80) == 0)
    696                 continue;
    697 
    698         /*
    699          * Shut down receiver and transmitter
    700          */
    701         m360.scc1.gsmr_l &= ~0x30;
    702         return 0;
    703 }
    704 
    705 /*
    706  * Show interface statistics
    707  */
    708 static void
    709 m360Enet_show (struct iface *iface)
    710 {
    711         printf ("      Rx Interrupts:%-8lu", m360EnetDriver[0].rxInterrupts);
    712         printf ("       Not First:%-8lu", m360EnetDriver[0].rxNotFirst);
    713         printf ("        Not Last:%-8lu\n", m360EnetDriver[0].rxNotLast);
    714         printf ("              Giant:%-8lu", m360EnetDriver[0].rxGiant);
    715         printf ("            Runt:%-8lu", m360EnetDriver[0].rxRunt);
    716         printf ("       Non-octet:%-8lu\n", m360EnetDriver[0].rxNonOctet);
    717         printf ("            Bad CRC:%-8lu", m360EnetDriver[0].rxBadCRC);
    718         printf ("         Overrun:%-8lu", m360EnetDriver[0].rxOverrun);
    719         printf ("       Collision:%-8lu\n", m360EnetDriver[0].rxCollision);
    720         printf ("          Discarded:%-8lu\n", (unsigned long)m360.scc1p.un.ethernet.disfc);
    721 
    722         printf ("      Tx Interrupts:%-8lu", m360EnetDriver[0].txInterrupts);
    723         printf ("        Deferred:%-8lu", m360EnetDriver[0].txDeferred);
    724         printf (" Missed Hearbeat:%-8lu\n", m360EnetDriver[0].txHeartbeat);
    725         printf ("         No Carrier:%-8lu", m360EnetDriver[0].txLostCarrier);
    726         printf ("Retransmit Limit:%-8lu", m360EnetDriver[0].txRetryLimit);
    727         printf ("  Late Collision:%-8lu\n", m360EnetDriver[0].txLateCollision);
    728         printf ("           Underrun:%-8lu", m360EnetDriver[0].txUnderrun);
    729         printf (" Raw output wait:%-8lu\n", m360EnetDriver[0].txRawWait);
     821
     822                case IFF_UP:
     823                        scc_init (sc);
     824                        break;
     825
     826                case IFF_UP | IFF_RUNNING:
     827                        scc_stop (sc);
     828                        scc_init (sc);
     829                        break;
     830
     831                default:
     832                        break;
     833                }
     834                break;
     835
     836        case SIO_RTEMS_SHOW_STATS:
     837                scc_stats (sc);
     838                break;
     839               
     840        /*
     841         * FIXME: All sorts of multicast commands need to be added here!
     842         */
     843        default:
     844                error = EINVAL;
     845                break;
     846        }
     847        return error;
    730848}
    731849
    732850/*
    733851 * Attach an SCC driver to the system
    734  * This is the only `extern' function in the driver.
    735  *
    736  * argv[0]: interface label, e.g., "rtems"
    737  * The remainder of the arguemnts are key/value pairs:
    738  * mtu ##                  --  maximum transmission unit, default 1500
    739  * broadcast y/n           -- accept or ignore broadcast packets, default yes
    740  * rbuf ##                 -- Set number of receive buffer descriptors
    741  * rbuf ##                 -- Set number of transmit buffer descriptors
    742  * ip ###.###.###.###      -- IP address
    743  * ether ##:##:##:##:##:## -- Ethernet address
    744  * ether prom              -- Get Ethernet address from bootstrap PROM
    745852 */
    746853int
    747 rtems_ka9q_driver_attach (int argc, char *argv[], void *p)
    748 {
    749         struct iface *iface;
    750         struct m360EnetDriver *dp;
    751         char *cp;
     854rtems_scc1_driver_attach (struct rtems_bsdnet_ifconfig *config)
     855{
     856        struct scc_softc *sc;
     857        struct ifnet *ifp;
     858        int mtu;
    752859        int i;
    753         int argIndex;
    754         int broadcastFlag;
    755         char cbuf[30];
    756860
    757861        /*
     
    759863         */
    760864        for (i = 0 ; i < NSCCDRIVER ; i++) {
    761                 if (m360EnetDriver[i].iface == NULL)
     865                sc = &scc_softc[i];
     866                ifp = &sc->arpcom.ac_if;
     867                if (ifp->if_softc == NULL)
    762868                        break;
    763869        }
    764870        if (i >= NSCCDRIVER) {
    765871                printf ("Too many SCC drivers.\n");
    766                 return -1;
    767         }
    768         if (if_lookup (argv[0]) != NULL) {
    769                 printf ("Interface %s already exists\n", argv[0]);
    770                 return -1;
    771         }
    772         dp = &m360EnetDriver[i];
    773 
    774         /*
    775          * Create an inteface descriptor
    776          */
    777         iface = callocw (1, sizeof *iface);
    778         iface->name = strdup (argv[0]);
    779 
    780         /*
    781          * Set default values
    782          */
    783         broadcastFlag = 1;
    784         dp->txWaitTid = 0;
    785         dp->rxBdCount = RX_BUF_COUNT;
    786         dp->txBdCount = TX_BUF_COUNT * TX_BD_PER_BUF;
    787         iface->mtu = 1500;
    788         iface->addr = Ip_addr;
    789         iface->hwaddr = mallocw (EADDR_LEN);
    790         memset (iface->hwaddr, 0x08, EADDR_LEN);
    791 
    792         /*
    793          * Parse arguments
    794          */
    795         for (argIndex = 1 ; argIndex < (argc - 1) ; argIndex++) {
    796                 if (strcmp ("mtu", argv[argIndex]) == 0) {
    797                         iface->mtu = atoi (argv[++argIndex]);
    798                 }
    799                 else if (strcmp ("broadcast", argv[argIndex]) == 0) {
    800                         if (*argv[++argIndex] == 'n')
    801                                 broadcastFlag = 0;
    802                 }
    803                 else if (strcmp ("rbuf", argv[argIndex]) == 0) {
    804                         dp->rxBdCount = atoi (argv[++argIndex]);
    805                 }
    806                 else if (strcmp ("tbuf", argv[argIndex]) == 0) {
    807                         dp->txBdCount = atoi (argv[++argIndex]) * TX_BD_PER_BUF;
    808                 }
    809                 else if (strcmp ("ip", argv[argIndex]) == 0) {
    810                         iface->addr = resolve (argv[++argIndex]);
    811                 }
    812                 else if (strcmp ("ether", argv[argIndex]) == 0) {
    813                         argIndex++;
    814                         if (strcmp (argv[argIndex], "prom") == 0) {
    815                                 /*
    816                                  * The first 4 bytes of the bootstrap prom
    817                                  * contain the value loaded into the stack
    818                                  * pointer as part of the CPU32's hardware
    819                                  * reset exception handler.  The following
    820                                  * 4 bytes contain the value loaded into the
    821                                  * program counter.  The boards' Ethernet
    822                                  * address is stored in the six bytes
    823                                  * immediately preceding this initial
    824                                  * program counter value.
    825                                  *
    826                                  * See start360/start360.s.
    827                                  */
    828                                 extern void *_RomBase;  /* From linkcmds */
    829                                 const unsigned long *ExceptionVectors;
    830                                 const unsigned char *entryPoint;
    831 
    832                                 /*
    833                                  * Sanity check -- assume entry point must be
    834                                  * within 1 MByte of beginning of boot ROM.
    835                                  */
    836                                 ExceptionVectors = (const unsigned long *)&_RomBase;
    837                                 entryPoint = (const unsigned char *)ExceptionVectors[1];
    838                                 if (((unsigned long)entryPoint - (unsigned long)ExceptionVectors)
    839                                                         >= (1 * 1024 * 1024)) {
    840                                         printf ("Warning -- Ethernet address can not be found in bootstrap PROM.\n");
    841                                         iface->hwaddr[0] = 0x08;
    842                                         iface->hwaddr[1] = 0xF3;
    843                                         iface->hwaddr[2] = 0x3E;
    844                                         iface->hwaddr[3] = 0xC2;
    845                                         iface->hwaddr[4] = 0xE7;
    846                                         iface->hwaddr[5] = 0x08;
    847                                 }
    848                                 else {
    849                                         memcpy (iface->hwaddr, entryPoint - 6, 6);
    850                                 }
    851                         }
    852                         else {
    853                                 gether (iface->hwaddr, argv[argIndex]);
    854                         }
     872                return 0;
     873        }
     874
     875        /*
     876         * Process options
     877         */
     878        if (config->hardware_address) {
     879                memcpy (sc->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN);
     880        }
     881        else {
     882                /*
     883                 * The first 4 bytes of the bootstrap prom
     884                 * contain the value loaded into the stack
     885                 * pointer as part of the CPU32's hardware
     886                 * reset exception handler.  The following
     887                 * 4 bytes contain the value loaded into the
     888                 * program counter.  The boards' Ethernet
     889                 * address is stored in the six bytes
     890                 * immediately preceding this initial
     891                 * program counter value.
     892                 *
     893                 * See start360/start360.s.
     894                 */
     895                extern void *_RomBase;  /* From linkcmds */
     896                const unsigned long *ExceptionVectors;
     897                const unsigned char *entryPoint;
     898
     899                /*
     900                 * Sanity check -- assume entry point must be
     901                 * within 1 MByte of beginning of boot ROM.
     902                 */
     903                ExceptionVectors = (const unsigned long *)&_RomBase;
     904                entryPoint = (const unsigned char *)ExceptionVectors[1];
     905                if (((unsigned long)entryPoint - (unsigned long)ExceptionVectors)
     906                                        >= (1 * 1024 * 1024)) {
     907                        printf ("Warning -- Ethernet address can not be found in bootstrap PROM.\n");
     908                        sc->arpcom.ac_enaddr[0] = 0x08;
     909                        sc->arpcom.ac_enaddr[1] = 0xF3;
     910                        sc->arpcom.ac_enaddr[2] = 0x3E;
     911                        sc->arpcom.ac_enaddr[3] = 0xC2;
     912                        sc->arpcom.ac_enaddr[4] = 0x7E;
     913                        sc->arpcom.ac_enaddr[5] = 0x38;
    855914                }
    856915                else {
    857                         printf ("Argument %d (%s) is invalid.\n", argIndex, argv[argIndex]);
    858                         return -1;
    859                 }
    860         }
    861         printf ("Ethernet address: %s\n", pether (cbuf, iface->hwaddr));
    862 
    863         /*
    864          * Fill in remainder of interface configuration
    865          */
    866         iface->dev = i;
    867         iface->raw = m360Enet_raw;
    868         iface->stop = m360Enet_stop;
    869         iface->show = m360Enet_show;
    870         dp->iface = iface;
    871         setencap (iface, "Ethernet");
    872 
    873         /*
    874          * Set up SCC hardware
    875          */
    876         m360Enet_initialize_hardware (dp, broadcastFlag);
    877 
    878         /*
    879          * Chain onto list of interfaces
    880          */
    881         iface->next = Ifaces;
    882         Ifaces = iface;
    883 
    884         /*
    885          * Start I/O daemons
    886          */
    887         cp = if_name (iface, " tx");
    888         iface->txproc = newproc (cp, 1024, if_tx, iface->dev, iface, NULL, 0);
    889         free (cp);
    890         cp = if_name (iface, " rx");
    891         iface->rxproc = newproc (cp, 1024, m360Enet_rx, iface->dev, iface, dp, 0);
    892         free (cp);
    893         return 0;
    894 }
    895 
    896 /*
    897  * FIXME: There should be an ioctl routine to allow things like
    898  * enabling/disabling reception of broadcast packets.
    899  */
     916                        memcpy (sc->arpcom.ac_enaddr, entryPoint - ETHER_ADDR_LEN, ETHER_ADDR_LEN);
     917                }
     918        }
     919        if (config->mtu)
     920                mtu = config->mtu;
     921        else
     922                mtu = ETHERMTU;
     923        if (config->rbuf_count)
     924                sc->rxBdCount = config->rbuf_count;
     925        else
     926                sc->rxBdCount = RX_BUF_COUNT;
     927        if (config->xbuf_count)
     928                sc->txBdCount = config->xbuf_count;
     929        else
     930                sc->txBdCount = TX_BUF_COUNT * TX_BD_PER_BUF;
     931        sc->acceptBroadcast = !config->ignore_broadcast;
     932
     933        /*
     934         * Set up network interface values
     935         */
     936        ifp->if_softc = sc;
     937        ifp->if_unit = i + 1;
     938        ifp->if_name = "scc";
     939        ifp->if_mtu = mtu;
     940        ifp->if_init = scc_init;
     941        ifp->if_ioctl = scc_ioctl;
     942        ifp->if_start = scc_start;
     943        ifp->if_output = ether_output;
     944        ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
     945        if (ifp->if_snd.ifq_maxlen == 0)
     946                ifp->if_snd.ifq_maxlen = ifqmaxlen;
     947
     948        /*
     949         * Attach the interface
     950         */
     951        if_attach (ifp);
     952        ether_ifattach (ifp);
     953        return 1;
     954};
  • c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in

    r3f098aed r0280cb6  
    1010
    1111# We only build the ka9q device driver if HAS_KA9Q was defined
    12 KA9Q_DRIVER_yes_V = network
     12KA9Q_DRIVER_yes_V = ka9q_network
    1313KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V)
    1414
    15 BSP_PIECES=startup clock console timer $(KA9Q_DRIVER)
     15# We only build the networking device driver if HAS_NETWORKING was defined
     16NETWORKING_DRIVER_yes_V = network
     17NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V)
     18
     19BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) $(NETWORKING_DRIVER)
    1620CPU_PIECES=
    1721GENERIC_PIECES=
  • c/src/lib/wrapup/Makefile.in

    r3f098aed r0280cb6  
    2020     $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \
    2121     $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \
     22     $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \
    2223     $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \
    2324     $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \
  • c/src/make/compilers/gcc-target-default.cfg

    r3f098aed r0280cb6  
    2222INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q
    2323INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V)
     24
     25# We only include the header files for networking if it is enabled.
     26INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking
     27INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V)
    2428
    2529ifeq ($(RTEMS_USE_GCC272),yes)
     
    3438  -I$(PROJECT_INCLUDE) \
    3539  $(INCLUDE_KA9Q) \
     40  $(INCLUDE_NETWORKING) \
    3641  $(RTEMS_LIBC_INCLUDES) $(DEFINES)
    3742
     
    4752  -nostdinc -I$(PROJECT_INCLUDE) \
    4853  $(INCLUDE_KA9Q) \
     54  $(INCLUDE_NETWORKING) \
    4955  -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES)
    5056
     
    6672CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \
    6773        -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \
    68         $(INCLUDE_KA9Q) $(DEFINES)
     74        $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES)
    6975
    7076ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \
  • c/src/wrapup/Makefile.in

    r3f098aed r0280cb6  
    2020     $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \
    2121     $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \
     22     $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \
    2223     $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \
    2324     $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \
  • configure

    r3f098aed r0280cb6  
    2323\
    2424  --enable-ka9q                enable KA9Q TCP/IP stack"
     25ac_help="$ac_help
     26\
     27  --enable-networking                enable TCP/IP stack"
    2528ac_help="$ac_help
    2629\
     
    559562
    560563echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
    561 echo "configure:562: checking whether ${MAKE-make} sets \${MAKE}" >&5
     564echo "configure:565: checking whether ${MAKE-make} sets \${MAKE}" >&5
    562565set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
    563566if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
     
    632635
    633636echo $ac_n "checking host system type""... $ac_c" 1>&6
    634 echo "configure:635: checking host system type" >&5
     637echo "configure:638: checking host system type" >&5
    635638
    636639host_alias=$host
     
    653656
    654657echo $ac_n "checking target system type""... $ac_c" 1>&6
    655 echo "configure:656: checking target system type" >&5
     658echo "configure:659: checking target system type" >&5
    656659
    657660target_alias=$target
     
    671674
    672675echo $ac_n "checking build system type""... $ac_c" 1>&6
    673 echo "configure:674: checking build system type" >&5
     676echo "configure:677: checking build system type" >&5
    674677
    675678build_alias=$build
     
    739742esac
    740743else
    741   RTEMS_HAS_KA9Q=yes
     744  RTEMS_HAS_KA9Q=no
     745fi
     746
     747
     748# Check whether --enable-networking or --disable-networking was given.
     749if test "${enable_networking+set}" = set; then
     750  enableval="$enable_networking"
     751  \
     752case "${enableval}" in
     753  yes) RTEMS_HAS_NETWORKING=yes ;;
     754  no) RTEMS_HAS_NETWORKING=no ;;
     755  *)  { echo "configure: error: bad value ${enableval} for enable-networking option" 1>&2; exit 1; } ;;
     756esac
     757else
     758  RTEMS_HAS_NETWORKING=yes
    742759fi
    743760
     
    824841set dummy cat; ac_word=$2
    825842echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    826 echo "configure:827: checking for $ac_word" >&5
     843echo "configure:844: checking for $ac_word" >&5
    827844if eval "test \"`echo '$''{'ac_cv_path_CAT'+set}'`\" = set"; then
    828845  echo $ac_n "(cached) $ac_c" 1>&6
     
    855872set dummy rm; ac_word=$2
    856873echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    857 echo "configure:858: checking for $ac_word" >&5
     874echo "configure:875: checking for $ac_word" >&5
    858875if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then
    859876  echo $ac_n "(cached) $ac_c" 1>&6
     
    886903set dummy cp; ac_word=$2
    887904echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    888 echo "configure:889: checking for $ac_word" >&5
     905echo "configure:906: checking for $ac_word" >&5
    889906if eval "test \"`echo '$''{'ac_cv_path_CP'+set}'`\" = set"; then
    890907  echo $ac_n "(cached) $ac_c" 1>&6
     
    917934set dummy mv; ac_word=$2
    918935echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    919 echo "configure:920: checking for $ac_word" >&5
     936echo "configure:937: checking for $ac_word" >&5
    920937if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then
    921938  echo $ac_n "(cached) $ac_c" 1>&6
     
    948965set dummy ln; ac_word=$2
    949966echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    950 echo "configure:951: checking for $ac_word" >&5
     967echo "configure:968: checking for $ac_word" >&5
    951968if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then
    952969  echo $ac_n "(cached) $ac_c" 1>&6
     
    977994
    978995echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
    979 echo "configure:980: checking whether ln -s works" >&5
     996echo "configure:997: checking whether ln -s works" >&5
    980997if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
    981998  echo $ac_n "(cached) $ac_c" 1>&6
     
    10001017set dummy chmod; ac_word=$2
    10011018echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1002 echo "configure:1003: checking for $ac_word" >&5
     1019echo "configure:1020: checking for $ac_word" >&5
    10031020if eval "test \"`echo '$''{'ac_cv_path_CHMOD'+set}'`\" = set"; then
    10041021  echo $ac_n "(cached) $ac_c" 1>&6
     
    10311048set dummy sort; ac_word=$2
    10321049echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1033 echo "configure:1034: checking for $ac_word" >&5
     1050echo "configure:1051: checking for $ac_word" >&5
    10341051if eval "test \"`echo '$''{'ac_cv_path_SORT'+set}'`\" = set"; then
    10351052  echo $ac_n "(cached) $ac_c" 1>&6
     
    10701087# ./install, which can be erroneously created by make from ./install.sh.
    10711088echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
    1072 echo "configure:1073: checking for a BSD compatible install" >&5
     1089echo "configure:1090: checking for a BSD compatible install" >&5
    10731090if test -z "$INSTALL"; then
    10741091if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
     
    11231140set dummy mkdir; ac_word=$2
    11241141echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1125 echo "configure:1126: checking for $ac_word" >&5
     1142echo "configure:1143: checking for $ac_word" >&5
    11261143if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then
    11271144  echo $ac_n "(cached) $ac_c" 1>&6
     
    11551172
    11561173echo $ac_n "checking for working $MKDIR -m 0755""... $ac_c" 1>&6
    1157 echo "configure:1158: checking for working $MKDIR -m 0755" >&5
     1174echo "configure:1175: checking for working $MKDIR -m 0755" >&5
    11581175if eval "test \"`echo '$''{'rtems_cv_prog_MKDIR_P'+set}'`\" = set"; then
    11591176  echo $ac_n "(cached) $ac_c" 1>&6
     
    11721189
    11731190echo $ac_n "checking for working $MKDIR -p""... $ac_c" 1>&6
    1174 echo "configure:1175: checking for working $MKDIR -p" >&5
     1191echo "configure:1192: checking for working $MKDIR -p" >&5
    11751192if eval "test \"`echo '$''{'rtems_cv_prog_mkdir_p'+set}'`\" = set"; then
    11761193  echo $ac_n "(cached) $ac_c" 1>&6
     
    11921209set dummy touch; ac_word=$2
    11931210echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1194 echo "configure:1195: checking for $ac_word" >&5
     1211echo "configure:1212: checking for $ac_word" >&5
    11951212if eval "test \"`echo '$''{'ac_cv_path_TOUCH'+set}'`\" = set"; then
    11961213  echo $ac_n "(cached) $ac_c" 1>&6
     
    12231240set dummy cmp; ac_word=$2
    12241241echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1225 echo "configure:1226: checking for $ac_word" >&5
     1242echo "configure:1243: checking for $ac_word" >&5
    12261243if eval "test \"`echo '$''{'ac_cv_path_CMP'+set}'`\" = set"; then
    12271244  echo $ac_n "(cached) $ac_c" 1>&6
     
    12551272set dummy sed; ac_word=$2
    12561273echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1257 echo "configure:1258: checking for $ac_word" >&5
     1274echo "configure:1275: checking for $ac_word" >&5
    12581275if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then
    12591276  echo $ac_n "(cached) $ac_c" 1>&6
     
    12881305set dummy $ac_prog; ac_word=$2
    12891306echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1290 echo "configure:1291: checking for $ac_word" >&5
     1307echo "configure:1308: checking for $ac_word" >&5
    12911308if eval "test \"`echo '$''{'ac_cv_path_M4'+set}'`\" = set"; then
    12921309  echo $ac_n "(cached) $ac_c" 1>&6
     
    13251342set dummy $ac_prog; ac_word=$2
    13261343echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1327 echo "configure:1328: checking for $ac_word" >&5
     1344echo "configure:1345: checking for $ac_word" >&5
    13281345if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
    13291346  echo $ac_n "(cached) $ac_c" 1>&6
     
    14031420  *)
    14041421        echo $ac_n "checking rtems target cpu""... $ac_c" 1>&6
    1405 echo "configure:1406: checking rtems target cpu" >&5
     1422echo "configure:1423: checking rtems target cpu" >&5
    14061423target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
    14071424echo "$ac_t""$target_cpu" 1>&6
     
    14221439# Is this a supported CPU?
    14231440echo $ac_n "checking if cpu $target_cpu is supported""... $ac_c" 1>&6
    1424 echo "configure:1425: checking if cpu $target_cpu is supported" >&5
     1441echo "configure:1442: checking if cpu $target_cpu is supported" >&5
    14251442if test -d "$srcdir/c/src/exec/score/cpu/$target_cpu"; then
    14261443  echo "$ac_t""yes" 1>&6
     
    14471464set dummy $ac_prog; ac_word=$2
    14481465echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1449 echo "configure:1450: checking for $ac_word" >&5
     1466echo "configure:1467: checking for $ac_word" >&5
    14501467if eval "test \"`echo '$''{'ac_cv_path_CC_FOR_TARGET'+set}'`\" = set"; then
    14511468  echo $ac_n "(cached) $ac_c" 1>&6
     
    14871504
    14881505echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
    1489 echo "configure:1490: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
     1506echo "configure:1507: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
    14901507
    14911508ac_ext=c
     
    14971514
    14981515cat > conftest.$ac_ext <<EOF
    1499 #line 1500 "configure"
     1516#line 1517 "configure"
    15001517#include "confdefs.h"
    15011518main(){return(0);}
    15021519EOF
    1503 if { (eval echo configure:1504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
     1520if { (eval echo configure:1521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    15041521  ac_cv_prog_cc_works=yes
    15051522  # If we can't run a trivial program, we are probably using a cross compiler.
     
    15211538fi
    15221539echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
    1523 echo "configure:1524: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
     1540echo "configure:1541: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
    15241541echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
    15251542cross_compiling=$ac_cv_prog_cc_cross
    15261543
    15271544echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
    1528 echo "configure:1529: checking whether we are using GNU C" >&5
     1545echo "configure:1546: checking whether we are using GNU C" >&5
    15291546if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
    15301547  echo $ac_n "(cached) $ac_c" 1>&6
     
    15351552#endif
    15361553EOF
    1537 if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     1554if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
    15381555  ac_cv_prog_gcc=yes
    15391556else
     
    15501567  CFLAGS=
    15511568  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
    1552 echo "configure:1553: checking whether ${CC-cc} accepts -g" >&5
     1569echo "configure:1570: checking whether ${CC-cc} accepts -g" >&5
    15531570if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
    15541571  echo $ac_n "(cached) $ac_c" 1>&6
     
    15921609
    15931610echo $ac_n "checking whether $CC_FOR_TARGET accepts -specs""... $ac_c" 1>&6
    1594 echo "configure:1595: checking whether $CC_FOR_TARGET accepts -specs" >&5
     1611echo "configure:1612: checking whether $CC_FOR_TARGET accepts -specs" >&5
    15951612if eval "test \"`echo '$''{'rtems_cv_gcc_specs'+set}'`\" = set"; then
    15961613  echo $ac_n "(cached) $ac_c" 1>&6
     
    16131630
    16141631echo $ac_n "checking whether $CC_FOR_TARGET accepts --pipe""... $ac_c" 1>&6
    1615 echo "configure:1616: checking whether $CC_FOR_TARGET accepts --pipe" >&5
     1632echo "configure:1633: checking whether $CC_FOR_TARGET accepts --pipe" >&5
    16161633if eval "test \"`echo '$''{'rtems_cv_gcc_pipe'+set}'`\" = set"; then
    16171634  echo $ac_n "(cached) $ac_c" 1>&6
     
    16541671set dummy $ac_prog; ac_word=$2
    16551672echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1656 echo "configure:1657: checking for $ac_word" >&5
     1673echo "configure:1674: checking for $ac_word" >&5
    16571674if eval "test \"`echo '$''{'ac_cv_path_CXX_FOR_TARGET'+set}'`\" = set"; then
    16581675  echo $ac_n "(cached) $ac_c" 1>&6
     
    16941711
    16951712echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
    1696 echo "configure:1697: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
     1713echo "configure:1714: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
    16971714
    16981715ac_ext=C
     
    17041721
    17051722cat > conftest.$ac_ext <<EOF
    1706 #line 1707 "configure"
     1723#line 1724 "configure"
    17071724#include "confdefs.h"
    17081725main(){return(0);}
    17091726EOF
    1710 if { (eval echo configure:1711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
     1727if { (eval echo configure:1728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    17111728  ac_cv_prog_cxx_works=yes
    17121729  # If we can't run a trivial program, we are probably using a cross compiler.
     
    17341751fi
    17351752echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
    1736 echo "configure:1737: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
     1753echo "configure:1754: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
    17371754echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
    17381755cross_compiling=$ac_cv_prog_cxx_cross
    17391756
    17401757echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
    1741 echo "configure:1742: checking whether we are using GNU C++" >&5
     1758echo "configure:1759: checking whether we are using GNU C++" >&5
    17421759if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
    17431760  echo $ac_n "(cached) $ac_c" 1>&6
     
    17481765#endif
    17491766EOF
    1750 if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     1767if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1768: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
    17511768  ac_cv_prog_gxx=yes
    17521769else
     
    17631780  CXXFLAGS=
    17641781  echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
    1765 echo "configure:1766: checking whether ${CXX-g++} accepts -g" >&5
     1782echo "configure:1783: checking whether ${CXX-g++} accepts -g" >&5
    17661783if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
    17671784  echo $ac_n "(cached) $ac_c" 1>&6
     
    18171834 
    18181835echo $ac_n "checking target's ar""... $ac_c" 1>&6
    1819 echo "configure:1820: checking target's ar" >&5
     1836echo "configure:1837: checking target's ar" >&5
    18201837if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then
    18211838  echo $ac_n "(cached) $ac_c" 1>&6
     
    18501867    # intends
    18511868    echo $ac_n "checking whether environment variable AR_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    1852 echo "configure:1853: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5
     1869echo "configure:1870: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5
    18531870    case "$AR_FOR_TARGET" in
    18541871    /*) # valid
     
    18671884set dummy "$program_prefix"ar; ac_word=$2
    18681885echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1869 echo "configure:1870: checking for $ac_word" >&5
     1886echo "configure:1887: checking for $ac_word" >&5
    18701887if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then
    18711888  echo $ac_n "(cached) $ac_c" 1>&6
     
    19001917 
    19011918echo $ac_n "checking target's as""... $ac_c" 1>&6
    1902 echo "configure:1903: checking target's as" >&5
     1919echo "configure:1920: checking target's as" >&5
    19031920if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then
    19041921  echo $ac_n "(cached) $ac_c" 1>&6
     
    19331950    # intends
    19341951    echo $ac_n "checking whether environment variable AS_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    1935 echo "configure:1936: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5
     1952echo "configure:1953: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5
    19361953    case "$AS_FOR_TARGET" in
    19371954    /*) # valid
     
    19501967set dummy "$program_prefix"as; ac_word=$2
    19511968echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    1952 echo "configure:1953: checking for $ac_word" >&5
     1969echo "configure:1970: checking for $ac_word" >&5
    19531970if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then
    19541971  echo $ac_n "(cached) $ac_c" 1>&6
     
    19832000 
    19842001echo $ac_n "checking target's ld""... $ac_c" 1>&6
    1985 echo "configure:1986: checking target's ld" >&5
     2002echo "configure:2003: checking target's ld" >&5
    19862003if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then
    19872004  echo $ac_n "(cached) $ac_c" 1>&6
     
    20162033    # intends
    20172034    echo $ac_n "checking whether environment variable LD_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    2018 echo "configure:2019: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5
     2035echo "configure:2036: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5
    20192036    case "$LD_FOR_TARGET" in
    20202037    /*) # valid
     
    20332050set dummy "$program_prefix"ld; ac_word=$2
    20342051echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2035 echo "configure:2036: checking for $ac_word" >&5
     2052echo "configure:2053: checking for $ac_word" >&5
    20362053if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then
    20372054  echo $ac_n "(cached) $ac_c" 1>&6
     
    20662083 
    20672084echo $ac_n "checking target's nm""... $ac_c" 1>&6
    2068 echo "configure:2069: checking target's nm" >&5
     2085echo "configure:2086: checking target's nm" >&5
    20692086if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then
    20702087  echo $ac_n "(cached) $ac_c" 1>&6
     
    20992116    # intends
    21002117    echo $ac_n "checking whether environment variable NM_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    2101 echo "configure:2102: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5
     2118echo "configure:2119: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5
    21022119    case "$NM_FOR_TARGET" in
    21032120    /*) # valid
     
    21162133set dummy "$program_prefix"nm; ac_word=$2
    21172134echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2118 echo "configure:2119: checking for $ac_word" >&5
     2135echo "configure:2136: checking for $ac_word" >&5
    21192136if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then
    21202137  echo $ac_n "(cached) $ac_c" 1>&6
     
    21502167 
    21512168echo $ac_n "checking target's ranlib""... $ac_c" 1>&6
    2152 echo "configure:2153: checking target's ranlib" >&5
     2169echo "configure:2170: checking target's ranlib" >&5
    21532170if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then
    21542171  echo $ac_n "(cached) $ac_c" 1>&6
     
    21832200    # intends
    21842201    echo $ac_n "checking whether environment variable RANLIB_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    2185 echo "configure:2186: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5
     2202echo "configure:2203: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5
    21862203    case "$RANLIB_FOR_TARGET" in
    21872204    /*) # valid
     
    22002217set dummy "$program_prefix"ranlib; ac_word=$2
    22012218echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2202 echo "configure:2203: checking for $ac_word" >&5
     2219echo "configure:2220: checking for $ac_word" >&5
    22032220if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then
    22042221  echo $ac_n "(cached) $ac_c" 1>&6
     
    22352252   
    22362253echo $ac_n "checking whether $AR_FOR_TARGET -s works""... $ac_c" 1>&6
    2237 echo "configure:2238: checking whether $AR_FOR_TARGET -s works" >&5
     2254echo "configure:2255: checking whether $AR_FOR_TARGET -s works" >&5
    22382255if eval "test \"`echo '$''{'rtems_cv_AR_FOR_TARGET_S'+set}'`\" = set"; then
    22392256  echo $ac_n "(cached) $ac_c" 1>&6
     
    22442261{ return b; }
    22452262EOF
    2246 if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:2247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
    2247   && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:2248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
     2263if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:2264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
     2264  && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:2265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
    22482265  && test -s conftest.a ; \
    22492266then
     
    22702287 
    22712288echo $ac_n "checking target's objcopy""... $ac_c" 1>&6
    2272 echo "configure:2273: checking target's objcopy" >&5
     2289echo "configure:2290: checking target's objcopy" >&5
    22732290if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then
    22742291  echo $ac_n "(cached) $ac_c" 1>&6
     
    23032320    # intends
    23042321    echo $ac_n "checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    2305 echo "configure:2306: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5
     2322echo "configure:2323: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5
    23062323    case "$OBJCOPY_FOR_TARGET" in
    23072324    /*) # valid
     
    23202337set dummy "$program_prefix"objcopy; ac_word=$2
    23212338echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2322 echo "configure:2323: checking for $ac_word" >&5
     2339echo "configure:2340: checking for $ac_word" >&5
    23232340if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then
    23242341  echo $ac_n "(cached) $ac_c" 1>&6
     
    23532370 
    23542371echo $ac_n "checking target's size""... $ac_c" 1>&6
    2355 echo "configure:2356: checking target's size" >&5
     2372echo "configure:2373: checking target's size" >&5
    23562373if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then
    23572374  echo $ac_n "(cached) $ac_c" 1>&6
     
    23862403    # intends
    23872404    echo $ac_n "checking whether environment variable SIZE_FOR_TARGET is an absolute path""... $ac_c" 1>&6
    2388 echo "configure:2389: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5
     2405echo "configure:2406: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5
    23892406    case "$SIZE_FOR_TARGET" in
    23902407    /*) # valid
     
    24032420set dummy "$program_prefix"size; ac_word=$2
    24042421echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2405 echo "configure:2406: checking for $ac_word" >&5
     2422echo "configure:2423: checking for $ac_word" >&5
    24062423if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then
    24072424  echo $ac_n "(cached) $ac_c" 1>&6
     
    24392456set dummy gcc; ac_word=$2
    24402457echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2441 echo "configure:2442: checking for $ac_word" >&5
     2458echo "configure:2459: checking for $ac_word" >&5
    24422459if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
    24432460  echo $ac_n "(cached) $ac_c" 1>&6
     
    24682485set dummy cc; ac_word=$2
    24692486echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
    2470 echo "configure:2471: checking for $ac_word" >&5
     2487echo "configure:2488: checking for $ac_word" >&5
    24712488if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
    24722489  echo $ac_n "(cached) $ac_c" 1>&6
     
    25162533
    25172534echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
    2518 echo "configure:2519: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
     2535echo "configure:2536: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
    25192536
    25202537ac_ext=c
     
    25262543
    25272544cat > conftest.$ac_ext <<EOF
    2528 #line 2529 "configure"
     2545#line 2546 "configure"
    25292546#include "confdefs.h"
    25302547main(){return(0);}
    25312548EOF
    2532 if { (eval echo configure:2533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
     2549if { (eval echo configure:2550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    25332550  ac_cv_prog_cc_works=yes
    25342551  # If we can't run a trivial program, we are probably using a cross compiler.
     
    25502567fi
    25512568echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
    2552 echo "configure:2553: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
     2569echo "configure:2570: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
    25532570echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
    25542571cross_compiling=$ac_cv_prog_cc_cross
    25552572
    25562573echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
    2557 echo "configure:2558: checking whether we are using GNU C" >&5
     2574echo "configure:2575: checking whether we are using GNU C" >&5
    25582575if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
    25592576  echo $ac_n "(cached) $ac_c" 1>&6
     
    25642581#endif
    25652582EOF
    2566 if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     2583if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
    25672584  ac_cv_prog_gcc=yes
    25682585else
     
    25792596  CFLAGS=
    25802597  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
    2581 echo "configure:2582: checking whether ${CC-cc} accepts -g" >&5
     2598echo "configure:2599: checking whether ${CC-cc} accepts -g" >&5
    25822599if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
    25832600  echo $ac_n "(cached) $ac_c" 1>&6
     
    26082625
    26092626echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6
    2610 echo "configure:2611: checking for Cygwin32 environment" >&5
     2627echo "configure:2628: checking for Cygwin32 environment" >&5
    26112628if eval "test \"`echo '$''{'rtems_cv_cygwin32'+set}'`\" = set"; then
    26122629  echo $ac_n "(cached) $ac_c" 1>&6
    26132630else
    26142631  cat > conftest.$ac_ext <<EOF
    2615 #line 2616 "configure"
     2632#line 2633 "configure"
    26162633#include "confdefs.h"
    26172634
     
    26202637; return 0; }
    26212638EOF
    2622 if { (eval echo configure:2623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
     2639if { (eval echo configure:2640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
    26232640  rm -rf conftest*
    26242641  rtems_cv_cygwin32=yes
     
    26382655
    26392656echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
    2640 echo "configure:2641: checking for executable suffix" >&5
     2657echo "configure:2658: checking for executable suffix" >&5
    26412658if eval "test \"`echo '$''{'rtems_cv_exeext'+set}'`\" = set"; then
    26422659  echo $ac_n "(cached) $ac_c" 1>&6
     
    26712688do
    26722689echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
    2673 echo "configure:2674: checking for $ac_func" >&5
     2690echo "configure:2691: checking for $ac_func" >&5
    26742691if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
    26752692  echo $ac_n "(cached) $ac_c" 1>&6
    26762693else
    26772694  cat > conftest.$ac_ext <<EOF
    2678 #line 2679 "configure"
     2695#line 2696 "configure"
    26792696#include "confdefs.h"
    26802697/* System header to define __stub macros and hopefully few prototypes,
     
    26992716; return 0; }
    27002717EOF
    2701 if { (eval echo configure:2702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
     2718if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
    27022719  rm -rf conftest*
    27032720  eval "ac_cv_func_$ac_func=yes"
     
    27282745
    27292746echo $ac_n "checking whether $RTEMS_HOST supports System V semaphores""... $ac_c" 1>&6
    2730 echo "configure:2731: checking whether $RTEMS_HOST supports System V semaphores" >&5
     2747echo "configure:2748: checking whether $RTEMS_HOST supports System V semaphores" >&5
    27312748if eval "test \"`echo '$''{'rtems_cv_sysv_sem'+set}'`\" = set"; then
    27322749  echo $ac_n "(cached) $ac_c" 1>&6
     
    27372754else
    27382755  cat > conftest.$ac_ext <<EOF
    2739 #line 2740 "configure"
     2756#line 2757 "configure"
    27402757#include "confdefs.h"
    27412758
     
    27632780
    27642781EOF
    2765 if { (eval echo configure:2766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
     2782if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
    27662783then
    27672784  rtems_cv_sysv_sem="yes"
     
    27862803
    27872804echo $ac_n "checking whether $RTEMS_HOST supports System V shared memory""... $ac_c" 1>&6
    2788 echo "configure:2789: checking whether $RTEMS_HOST supports System V shared memory" >&5
     2805echo "configure:2806: checking whether $RTEMS_HOST supports System V shared memory" >&5
    27892806if eval "test \"`echo '$''{'rtems_cv_sysv_shm'+set}'`\" = set"; then
    27902807  echo $ac_n "(cached) $ac_c" 1>&6
     
    27952812else
    27962813  cat > conftest.$ac_ext <<EOF
    2797 #line 2798 "configure"
     2814#line 2815 "configure"
    27982815#include "confdefs.h"
    27992816
     
    28112828
    28122829EOF
    2813 if { (eval echo configure:2814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
     2830if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
    28142831then
    28152832  rtems_cv_sysv_shm="yes"
     
    28342851
    28352852echo $ac_n "checking whether $RTEMS_HOST supports System V messages""... $ac_c" 1>&6
    2836 echo "configure:2837: checking whether $RTEMS_HOST supports System V messages" >&5
     2853echo "configure:2854: checking whether $RTEMS_HOST supports System V messages" >&5
    28372854if eval "test \"`echo '$''{'rtems_cv_sysv_msg'+set}'`\" = set"; then
    28382855  echo $ac_n "(cached) $ac_c" 1>&6
     
    28432860else
    28442861  cat > conftest.$ac_ext <<EOF
    2845 #line 2846 "configure"
     2862#line 2863 "configure"
    28462863#include "confdefs.h"
    28472864
     
    28592876
    28602877EOF
    2861 if { (eval echo configure:2862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
     2878if { (eval echo configure:2879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
    28622879then
    28632880  rtems_cv_sysv_msg="yes"
     
    28842901
    28852902echo $ac_n "checking for Makefile.in in c/src/exec/score/tools/$target_cpu""... $ac_c" 1>&6
    2886 echo "configure:2887: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&5
     2903echo "configure:2904: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&5
    28872904if test -d $srcdir/c/src/exec/score/tools/$target_cpu; then
    28882905  rtems_av_save_dir=`pwd`;
     
    28992916
    29002917echo $ac_n "checking for Makefile.in in c/src/exec/rtems""... $ac_c" 1>&6
    2901 echo "configure:2902: checking for Makefile.in in c/src/exec/rtems" >&5
     2918echo "configure:2919: checking for Makefile.in in c/src/exec/rtems" >&5
    29022919if test -d $srcdir/c/src/exec/rtems; then
    29032920  rtems_av_save_dir=`pwd`;
     
    29142931
    29152932echo $ac_n "checking for Makefile.in in c/src/exec/sapi""... $ac_c" 1>&6
    2916 echo "configure:2917: checking for Makefile.in in c/src/exec/sapi" >&5
     2933echo "configure:2934: checking for Makefile.in in c/src/exec/sapi" >&5
    29172934if test -d $srcdir/c/src/exec/sapi; then
    29182935  rtems_av_save_dir=`pwd`;
     
    29312948 
    29322949echo $ac_n "checking for Makefile.in in c/src/exec/posix""... $ac_c" 1>&6
    2933 echo "configure:2934: checking for Makefile.in in c/src/exec/posix" >&5
     2950echo "configure:2951: checking for Makefile.in in c/src/exec/posix" >&5
    29342951if test -d $srcdir/c/src/exec/posix; then
    29352952  rtems_av_save_dir=`pwd`;
     
    29532970  if test -z "$rtems_bsp"; then
    29542971    echo $ac_n "checking for bsps""... $ac_c" 1>&6
    2955 echo "configure:2956: checking for bsps" >&5
     2972echo "configure:2973: checking for bsps" >&5
    29562973    files=`ls $srcdir/c/src/lib/libbsp/$target_cpu`
    29572974    for file in $files; do
     
    30183035       
    30193036echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir""... $ac_c" 1>&6
    3020 echo "configure:3021: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&5
     3037echo "configure:3038: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&5
    30213038if test -d $srcdir/c/src/lib/libbsp/$bspcpudir$bspdir; then
    30223039  rtems_av_save_dir=`pwd`;
     
    30333050       
    30343051echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared""... $ac_c" 1>&6
    3035 echo "configure:3036: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&5
     3052echo "configure:3053: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&5
    30363053if test -d $srcdir/c/src/lib/libbsp/${bspcpudir}shared; then
    30373054  rtems_av_save_dir=`pwd`;
     
    30563073
    30573074echo $ac_n "checking for Makefile.in in c/src/lib/libcpu/$target_cpu""... $ac_c" 1>&6
    3058 echo "configure:3059: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&5
     3075echo "configure:3076: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&5
    30593076if test -d $srcdir/c/src/lib/libcpu/$target_cpu; then
    30603077  rtems_av_save_dir=`pwd`;
     
    30733090 
    30743091echo $ac_n "checking for Makefile.in in c/src/lib/start/$target_cpu""... $ac_c" 1>&6
    3075 echo "configure:3076: checking for Makefile.in in c/src/lib/start/$target_cpu" >&5
     3092echo "configure:3093: checking for Makefile.in in c/src/lib/start/$target_cpu" >&5
    30763093if test -d $srcdir/c/src/lib/start/$target_cpu; then
    30773094  rtems_av_save_dir=`pwd`;
     
    31043121
    31053122# If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles
     3123echo $ac_n "checking if KA9Q networking is enabled? ""... $ac_c" 1>&6
     3124echo "configure:3125: checking if KA9Q networking is enabled? " >&5
     3125echo "$ac_t""$RTEMS_HAS_KA9Q" 1>&6
    31063126if test "$RTEMS_HAS_KA9Q" = "yes"; then
    31073127  makefiles="$makefiles c/src/lib/libka9q/Makefile"
     3128fi
     3129
     3130# If the TCP/IP stack is enabled, then find all TCP/IP Makefiles
     3131echo $ac_n "checking if networking is enabled? ""... $ac_c" 1>&6
     3132echo "configure:3133: checking if networking is enabled? " >&5
     3133echo "$ac_t""$RTEMS_HAS_NETWORKING" 1>&6
     3134if test "$RTEMS_HAS_NETWORKING" = "yes"; then
     3135 
     3136echo $ac_n "checking for Makefile.in in c/src/lib/libnetworking""... $ac_c" 1>&6
     3137echo "configure:3138: checking for Makefile.in in c/src/lib/libnetworking" >&5
     3138if test -d $srcdir/c/src/lib/libnetworking; then
     3139  rtems_av_save_dir=`pwd`;
     3140  cd $srcdir;
     3141  rtems_av_tmp=`find c/src/lib/libnetworking -name "Makefile.in" -print | sed "s/Makefile\.in/%/" | sort | sed "s/%/Makefile/"`
     3142  makefiles="$makefiles $rtems_av_tmp";
     3143  cd $rtems_av_save_dir;
     3144  echo "$ac_t""done" 1>&6
     3145else
     3146  echo "$ac_t""no" 1>&6
     3147fi
     3148
     3149
    31083150fi
    31093151
     
    31153157# If the tests are enabled, then find all the test suite Makefiles
    31163158echo $ac_n "checking if the test suites are enabled? ""... $ac_c" 1>&6
    3117 echo "configure:3118: checking if the test suites are enabled? " >&5
     3159echo "configure:3160: checking if the test suites are enabled? " >&5
    31183160tests_enabled=yes
    31193161# Check whether --enable-tests or --disable-tests was given.
     
    31343176
    31353177echo $ac_n "checking for Makefile.in in c/src/tests/tools/$target_cpu""... $ac_c" 1>&6
    3136 echo "configure:3137: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&5
     3178echo "configure:3179: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&5
    31373179if test -d $srcdir/c/src/tests/tools/$target_cpu; then
    31383180  rtems_av_save_dir=`pwd`;
     
    31513193   
    31523194echo $ac_n "checking for Makefile.in in c/src/tests/libtests""... $ac_c" 1>&6
    3153 echo "configure:3154: checking for Makefile.in in c/src/tests/libtests" >&5
     3195echo "configure:3196: checking for Makefile.in in c/src/tests/libtests" >&5
    31543196if test -d $srcdir/c/src/tests/libtests; then
    31553197  rtems_av_save_dir=`pwd`;
     
    31663208   
    31673209echo $ac_n "checking for Makefile.in in c/src/tests/sptests""... $ac_c" 1>&6
    3168 echo "configure:3169: checking for Makefile.in in c/src/tests/sptests" >&5
     3210echo "configure:3211: checking for Makefile.in in c/src/tests/sptests" >&5
    31693211if test -d $srcdir/c/src/tests/sptests; then
    31703212  rtems_av_save_dir=`pwd`;
     
    31813223   
    31823224echo $ac_n "checking for Makefile.in in c/src/tests/tmtests""... $ac_c" 1>&6
    3183 echo "configure:3184: checking for Makefile.in in c/src/tests/tmtests" >&5
     3225echo "configure:3226: checking for Makefile.in in c/src/tests/tmtests" >&5
    31843226if test -d $srcdir/c/src/tests/tmtests; then
    31853227  rtems_av_save_dir=`pwd`;
     
    31963238   
    31973239echo $ac_n "checking for Makefile.in in c/src/tests/mptests""... $ac_c" 1>&6
    3198 echo "configure:3199: checking for Makefile.in in c/src/tests/mptests" >&5
     3240echo "configure:3241: checking for Makefile.in in c/src/tests/mptests" >&5
    31993241if test -d $srcdir/c/src/tests/mptests; then
    32003242  rtems_av_save_dir=`pwd`;
     
    32123254     
    32133255echo $ac_n "checking for Makefile.in in c/src/tests/psxtests""... $ac_c" 1>&6
    3214 echo "configure:3215: checking for Makefile.in in c/src/tests/psxtests" >&5
     3256echo "configure:3257: checking for Makefile.in in c/src/tests/psxtests" >&5
    32153257if test -d $srcdir/c/src/tests/psxtests; then
    32163258  rtems_av_save_dir=`pwd`;
     
    32303272# If the HWAPI is enabled, the find the HWAPI Makefiles
    32313273echo $ac_n "checking if the HWAPI is enabled? ""... $ac_c" 1>&6
    3232 echo "configure:3233: checking if the HWAPI is enabled? " >&5
     3274echo "configure:3275: checking if the HWAPI is enabled? " >&5
    32333275# Check whether --enable-hwapi or --disable-hwapi was given.
    32343276if test "${enable_hwapi+set}" = set; then
     
    32413283           
    32423284echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/analog""... $ac_c" 1>&6
    3243 echo "configure:3244: checking for Makefile.in in c/src/lib/libhwapi/analog" >&5
     3285echo "configure:3286: checking for Makefile.in in c/src/lib/libhwapi/analog" >&5
    32443286if test -d $srcdir/c/src/lib/libhwapi/analog; then
    32453287  rtems_av_save_dir=`pwd`;
     
    32563298           
    32573299echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/discrete""... $ac_c" 1>&6
    3258 echo "configure:3259: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&5
     3300echo "configure:3301: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&5
    32593301if test -d $srcdir/c/src/lib/libhwapi/discrete; then
    32603302  rtems_av_save_dir=`pwd`;
     
    32713313           
    32723314echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/drivers""... $ac_c" 1>&6
    3273 echo "configure:3274: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&5
     3315echo "configure:3316: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&5
    32743316if test -d $srcdir/c/src/lib/libhwapi/drivers; then
    32753317  rtems_av_save_dir=`pwd`;
     
    32863328           
    32873329echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory""... $ac_c" 1>&6
    3288 echo "configure:3289: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&5
     3330echo "configure:3331: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&5
    32893331if test -d $srcdir/c/src/lib/libhwapi/non_volatile_memory; then
    32903332  rtems_av_save_dir=`pwd`;
     
    33013343           
    33023344echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/serial""... $ac_c" 1>&6
    3303 echo "configure:3304: checking for Makefile.in in c/src/lib/libhwapi/serial" >&5
     3345echo "configure:3346: checking for Makefile.in in c/src/lib/libhwapi/serial" >&5
    33043346if test -d $srcdir/c/src/lib/libhwapi/serial; then
    33053347  rtems_av_save_dir=`pwd`;
     
    33163358           
    33173359echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/support""... $ac_c" 1>&6
    3318 echo "configure:3319: checking for Makefile.in in c/src/lib/libhwapi/support" >&5
     3360echo "configure:3361: checking for Makefile.in in c/src/lib/libhwapi/support" >&5
    33193361if test -d $srcdir/c/src/lib/libhwapi/support; then
    33203362  rtems_av_save_dir=`pwd`;
     
    33313373           
    33323374echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/wrapup""... $ac_c" 1>&6
    3333 echo "configure:3334: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&5
     3375echo "configure:3376: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&5
    33343376if test -d $srcdir/c/src/lib/libhwapi/wrapup; then
    33353377  rtems_av_save_dir=`pwd`;
     
    33733415
    33743416
     3417
    33753418# pick up all the Makefiles in required parts of the tree
    33763419
    33773420echo $ac_n "checking for Makefile.in in c/build-tools""... $ac_c" 1>&6
    3378 echo "configure:3379: checking for Makefile.in in c/build-tools" >&5
     3421echo "configure:3422: checking for Makefile.in in c/build-tools" >&5
    33793422if test -d $srcdir/c/build-tools; then
    33803423  rtems_av_save_dir=`pwd`;
     
    33913434
    33923435echo $ac_n "checking for Makefile.in in make""... $ac_c" 1>&6
    3393 echo "configure:3394: checking for Makefile.in in make" >&5
     3436echo "configure:3437: checking for Makefile.in in make" >&5
    33943437if test -d $srcdir/make; then
    33953438  rtems_av_save_dir=`pwd`;
     
    34063449
    34073450echo $ac_n "checking for Makefile.in in c/src/lib/libmisc""... $ac_c" 1>&6
    3408 echo "configure:3409: checking for Makefile.in in c/src/lib/libmisc" >&5
     3451echo "configure:3452: checking for Makefile.in in c/src/lib/libmisc" >&5
    34093452if test -d $srcdir/c/src/lib/libmisc; then
    34103453  rtems_av_save_dir=`pwd`;
     
    34213464
    34223465echo $ac_n "checking for Makefile.in in c/src/tests/samples""... $ac_c" 1>&6
    3423 echo "configure:3424: checking for Makefile.in in c/src/tests/samples" >&5
     3466echo "configure:3467: checking for Makefile.in in c/src/tests/samples" >&5
    34243467if test -d $srcdir/c/src/tests/samples; then
    34253468  rtems_av_save_dir=`pwd`;
     
    36533696s%@RTEMS_HAS_POSIX_API@%$RTEMS_HAS_POSIX_API%g
    36543697s%@RTEMS_HAS_KA9Q@%$RTEMS_HAS_KA9Q%g
     3698s%@RTEMS_HAS_NETWORKING@%$RTEMS_HAS_NETWORKING%g
    36553699s%@RTEMS_USE_MACROS@%$RTEMS_USE_MACROS%g
    36563700s%@RTEMS_HAS_CPLUSPLUS@%$RTEMS_HAS_CPLUSPLUS%g
  • configure.in

    r3f098aed r0280cb6  
    3434  no) RTEMS_HAS_KA9Q=no ;;
    3535  *)  AC_MSG_ERROR(bad value ${enableval} for enable-ka9q option) ;;
    36 esac],[RTEMS_HAS_KA9Q=yes])
     36esac],[RTEMS_HAS_KA9Q=no])
     37
     38AC_ARG_ENABLE(networking, \
     39[  --enable-networking                enable TCP/IP stack], \
     40[case "${enableval}" in
     41  yes) RTEMS_HAS_NETWORKING=yes ;;
     42  no) RTEMS_HAS_NETWORKING=no ;;
     43  *)  AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
     44esac],[RTEMS_HAS_NETWORKING=yes])
    3745
    3846AC_ARG_ENABLE(rtems-inlines, \
     
    373381
    374382# If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles
     383AC_MSG_CHECKING([if KA9Q networking is enabled? ])
     384AC_MSG_RESULT($RTEMS_HAS_KA9Q)
    375385if test "$RTEMS_HAS_KA9Q" = "yes"; then
    376386  makefiles="$makefiles c/src/lib/libka9q/Makefile"
     387fi
     388
     389# If the TCP/IP stack is enabled, then find all TCP/IP Makefiles
     390AC_MSG_CHECKING([if networking is enabled? ])
     391AC_MSG_RESULT($RTEMS_HAS_NETWORKING)
     392if test "$RTEMS_HAS_NETWORKING" = "yes"; then
     393  RTEMS_CHECK_MAKEFILE(c/src/lib/libnetworking)
    377394fi
    378395
     
    439456AC_SUBST(RTEMS_HAS_POSIX_API)
    440457AC_SUBST(RTEMS_HAS_KA9Q)
     458AC_SUBST(RTEMS_HAS_NETWORKING)
    441459AC_SUBST(RTEMS_USE_MACROS)
    442460AC_SUBST(RTEMS_HAS_CPLUSPLUS)
  • make/compilers/gcc-target-default.cfg

    r3f098aed r0280cb6  
    2222INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q
    2323INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V)
     24
     25# We only include the header files for networking if it is enabled.
     26INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking
     27INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V)
    2428
    2529ifeq ($(RTEMS_USE_GCC272),yes)
     
    3438  -I$(PROJECT_INCLUDE) \
    3539  $(INCLUDE_KA9Q) \
     40  $(INCLUDE_NETWORKING) \
    3641  $(RTEMS_LIBC_INCLUDES) $(DEFINES)
    3742
     
    4752  -nostdinc -I$(PROJECT_INCLUDE) \
    4853  $(INCLUDE_KA9Q) \
     54  $(INCLUDE_NETWORKING) \
    4955  -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES)
    5056
     
    6672CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \
    6773        -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \
    68         $(INCLUDE_KA9Q) $(DEFINES)
     74        $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES)
    6975
    7076ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \
  • make/custom/FreeBSD-posix.cfg

    r3f098aed r0280cb6  
    4545HAS_KA9Q=no
    4646
     47# This target does NOT support the TCP/IP stack so ignore requests
     48# to enable it.
     49HAS_NETWORKING=no
     50
    4751# This target does NOT support the POSIX API.
    4852HAS_POSIX_API=no
  • make/custom/HPUX9-posix.cfg

    r3f098aed r0280cb6  
    4444HAS_KA9Q=no
    4545
     46# This target does NOT support the TCP/IP stack so ignore requests
     47# to enable it.
     48HAS_NETWORKING=no
     49
    4650# This target does NOT support the POSIX API.
    4751HAS_POSIX_API=no
  • make/custom/Linux-posix.cfg

    r3f098aed r0280cb6  
    4646HAS_KA9Q=no
    4747
     48# This target does NOT support the TCP/IP stack so ignore requests
     49# to enable it.
     50HAS_NETWORKING=no
     51
    4852# This target does NOT support the POSIX API.
    4953HAS_POSIX_API=no
  • make/custom/Solaris-posix.cfg

    r3f098aed r0280cb6  
    4545HAS_KA9Q=no
    4646
     47# This target does NOT support the TCP/IP stack so ignore requests
     48# to enable it.
     49HAS_NETWORKING=no
     50
    4751# This target does NOT support the POSIX API.
    4852HAS_POSIX_API=no
  • make/custom/cvme961.cfg

    r3f098aed r0280cb6  
    3232# to enable it.
    3333HAS_KA9Q=no
     34
     35# This target does NOT support the TCP/IP stack so ignore requests
     36# to enable it.
     37HAS_NETWORKING=no
    3438
    3539#  This section makes the target dependent options file.
  • make/custom/default.cfg

    r3f098aed r0280cb6  
    6464ifeq ($(RTEMS_HAS_KA9Q),yes)
    6565HAS_KA9Q=yes
     66else
     67HAS_KA9Q=no
     68endif
     69
     70# Define this to yes if this target wants the TCP/IP stack
     71ifeq ($(RTEMS_HAS_NETWORKING),yes)
     72HAS_NETWORKING=yes
     73else
     74HAS_NETWORKING=no
    6675endif
    6776
  • make/custom/dmv152.cfg

    r3f098aed r0280cb6  
    2727# to enable it.
    2828HAS_KA9Q=no
     29
     30# This target does NOT support the TCP/IP stack so ignore requests
     31# to enable it.
     32HAS_NETWORKING=no
    2933
    3034#  This section makes the target dependent options file.
  • make/custom/efi332.cfg

    r3f098aed r0280cb6  
    2626# to enable it.
    2727HAS_KA9Q=no
     28
     29# This target does NOT support the TCP/IP stack so ignore requests
     30# to enable it.
     31HAS_NETWORKING=no
    2832
    2933# Override default start file
  • make/custom/efi68k.cfg

    r3f098aed r0280cb6  
    2525# to enable it.
    2626HAS_KA9Q=no
     27
     28# This target does NOT support the TCP/IP stack so ignore requests
     29# to enable it.
     30HAS_NETWORKING=no
    2731
    2832# Override default start file
  • make/custom/erc32.cfg

    r3f098aed r0280cb6  
    3232# to enable it.
    3333HAS_KA9Q=no
     34
     35# This target does NOT support the TCP/IP stack so ignore requests
     36# to enable it.
     37HAS_NETWORKING=no
    3438
    3539# Override default start file
  • make/custom/force386.cfg

    r3f098aed r0280cb6  
    2828# to enable it.
    2929HAS_KA9Q=no
     30
     31# This target does NOT support the TCP/IP stack so ignore requests
     32# to enable it.
     33HAS_NETWORKING=no
    3034
    3135#  This section makes the target dependent options file.
  • make/custom/gen68302.cfg

    r3f098aed r0280cb6  
    2626# to enable it.
    2727HAS_KA9Q=no
     28
     29# This target does NOT support the TCP/IP stack so ignore requests
     30# to enable it.
     31HAS_NETWORKING=no
    2832
    2933#  This section makes the target dependent options file.
  • make/custom/gensh1.cfg

    r3f098aed r0280cb6  
    3535# to enable it.
    3636HAS_KA9Q=no
     37
     38# This target does NOT support the TCP/IP stack so ignore requests
     39# to enable it.
     40HAS_NETWORKING=no
    3741
    3842# debug flags: typically none, but we use -O1 as it produces better code
  • make/custom/go32.cfg

    r3f098aed r0280cb6  
    5858HAS_KA9Q=no
    5959
     60# This target does NOT support the TCP/IP stack so ignore requests
     61# to enable it.
     62HAS_NETWORKING=no
     63
    6064# Base name of start file
    6165# go32 does not use the rtems start file
  • make/custom/i386ex.cfg

    r3f098aed r0280cb6  
    2525# to enable it.
    2626HAS_KA9Q=no
     27
     28# This target does NOT support the TCP/IP stack so ignore requests
     29# to enable it.
     30HAS_NETWORKING=no
    2731
    2832#  This section makes the target dependent options file.
  • make/custom/idp.cfg

    r3f098aed r0280cb6  
    1616# to enable it.
    1717HAS_KA9Q=no
     18
     19# This target does NOT support the TCP/IP stack so ignore requests
     20# to enable it.
     21HAS_NETWORKING=no
    1822
    1923#  This section makes the target dependent options file.
  • make/custom/mvme136.cfg

    r3f098aed r0280cb6  
    2929# to enable it.
    3030HAS_KA9Q=no
     31
     32# This target does NOT support the TCP/IP stack so ignore requests
     33# to enable it.
     34HAS_NETWORKING=no
    3135
    3236#  This section makes the target dependent options file.
  • make/custom/mvme147.cfg

    r3f098aed r0280cb6  
    2323# to enable it.
    2424HAS_KA9Q=no
     25
     26# This target does NOT support the TCP/IP stack so ignore requests
     27# to enable it.
     28HAS_NETWORKING=no
    2529
    2630#  This section makes the target dependent options file.
  • make/custom/mvme162.cfg

    r3f098aed r0280cb6  
    5050# to enable it.
    5151HAS_KA9Q=no
     52
     53# This target does NOT support the TCP/IP stack so ignore requests
     54# to enable it.
     55HAS_NETWORKING=no
    5256
    5357#  This section makes the target dependent options file.
  • make/custom/no_bsp.cfg

    r3f098aed r0280cb6  
    3232HAS_KA9Q=no
    3333
     34# This target does NOT support the TCP/IP stack so ignore requests
     35# to enable it.
     36HAS_NETWORKING=no
     37
    3438# Miscellaneous additions go here
  • make/custom/ods68302.cfg

    r3f098aed r0280cb6  
    3636# to enable it.
    3737HAS_KA9Q=no
     38
     39# This target does NOT support the TCP/IP stack so ignore requests
     40# to enable it.
     41HAS_NETWORKING=no
    3842
    3943# Define this to yes if C++ is included in the development environment.
  • make/custom/p4000.cfg

    r3f098aed r0280cb6  
    1616# to enable it.
    1717HAS_KA9Q=no
     18
     19# This target does NOT support the TCP/IP stack so ignore requests
     20# to enable it.
     21HAS_NETWORKING=no
    1822
    1923#  This section makes the target dependent options file.
  • make/custom/p4600.cfg

    r3f098aed r0280cb6  
    2929# to enable it.
    3030HAS_KA9Q=no
     31
     32# This target does NOT support the TCP/IP stack so ignore requests
     33# to enable it.
     34HAS_NETWORKING=no
    3135
    3236#  This section makes the target dependent options file.
  • make/custom/p4650.cfg

    r3f098aed r0280cb6  
    2828# to enable it.
    2929HAS_KA9Q=no
     30
     31# This target does NOT support the TCP/IP stack so ignore requests
     32# to enable it.
     33HAS_NETWORKING=no
    3034
    3135#  This section makes the target dependent options file.
  • make/custom/papyrus.cfg

    r3f098aed r0280cb6  
    2020# to enable it.
    2121HAS_KA9Q=no
     22
     23# This target does NOT support the TCP/IP stack so ignore requests
     24# to enable it.
     25HAS_NETWORKING=no
    2226   
    2327#  This section makes the target dependent options file.
  • make/custom/portsw.cfg

    r3f098aed r0280cb6  
    5757HAS_KA9Q=no
    5858
     59# This target does NOT support the TCP/IP stack so ignore requests
     60# to enable it.
     61HAS_NETWORKING=no
     62
    5963# Define this to yes if this target wants the posix api
    6064HAS_POSIX_API=no
  • make/custom/psim.cfg

    r3f098aed r0280cb6  
    1616# to enable it.
    1717HAS_KA9Q=no
     18
     19# This target does NOT support the TCP/IP stack so ignore requests
     20# to enable it.
     21HAS_NETWORKING=no
    1822
    1923#  This section makes the target dependent options file.
  • make/custom/simhppa.cfg

    r3f098aed r0280cb6  
    4242# to enable it.
    4343HAS_KA9Q=no
     44
     45# This target does NOT support the TCP/IP stack so ignore requests
     46# to enable it.
     47HAS_NETWORKING=no
    4448
    4549#  This makes the target dependent options file.
  • make/target.cfg.in

    r3f098aed r0280cb6  
    4141RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@
    4242RTEMS_HAS_KA9Q = @RTEMS_HAS_KA9Q@
     43RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@
    4344RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@
    4445RTEMS_USE_MACROS = @RTEMS_USE_MACROS@
Note: See TracChangeset for help on using the changeset viewer.