Changeset 0280cb6 in rtems
- Timestamp:
- 08/20/98 14:39:09 (24 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 53ee76b
- Parents:
- 3f098aed
- Files:
-
- 42 edited
Legend:
- Unmodified
- Added
- Removed
-
c/Makefile.in
r3f098aed r0280cb6 30 30 LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V) 31 31 32 # We only make the install point for the KA9Q header files if it is enabled. 33 LIBNETWORKING_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 38 LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V) 39 32 40 # We only make the rtems++ install point if it is enabled. 33 41 LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++ … … 41 49 lib/include/motorola lib/include/zilog \ 42 50 $(LIBKA9Q) \ 51 $(LIBNETWORKING) \ 43 52 $(LIBRTEMSCPLUSPLUS) \ 44 53 bin samples \ -
c/src/exec/score/cpu/i386/cpu.h
r3f098aed r0280cb6 65 65 #define CPU_USE_DEFERRED_FP_SWITCH TRUE 66 66 67 #define CPU_PROVIDES_IDLE_THREAD_BODY YES67 #define CPU_PROVIDES_IDLE_THREAD_BODY TRUE 68 68 #define CPU_STACK_GROWS_UP FALSE 69 69 #define CPU_STRUCTURE_ALIGNMENT -
c/src/lib/Makefile.in
r3f098aed r0280cb6 16 16 LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V) 17 17 18 # We only build the networking library if HAS_NETWORKING was defined 19 LIBNETWORKING_yes_V = libnetworking 20 LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V) 21 NETWORKING_INCLUDE_yes_V = libnetworking/include 22 NETWORKING_INCLUDE = $(NETWORKING_INCLUDE_$(HAS_NETWORKING)_V) 23 18 24 # We only build the rtems++ library if HAS_CPLUSPLUS was defined 19 25 LIBRTEMSCPLUSPLUS_yes_V = librtems++ … … 23 29 LIBHWAPI=$(wildcard libhwapi) 24 30 25 SUB_DIRS=start include libmisc libc libcpu libbsp \26 $(LIBKA9Q) $(LIB HWAPI) $(LIBRTEMSCPLUSPLUS) wrapup31 SUB_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 15 15 16 16 # We only build the ka9q device driver if HAS_KA9Q was defined 17 KA9Q_DRIVER_yes_V = network17 KA9Q_DRIVER_yes_V = ka9q_network 18 18 KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V) 19 20 # We only build the networking device driver if HAS_NETWORKING was defined 21 NETWORKING_DRIVER_yes_V = network 22 NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V) 19 23 20 24 all: $(SRCS) … … 22 26 # wrapup is the one that actually builds and installs the library 23 27 # from the individual .rel files built in other directories 24 SUB_DIRS=include start360 startup clock console timer $(KA9Q_DRIVER) wrapup 28 SUB_DIRS=include start360 startup clock console timer \ 29 $(KA9Q_DRIVER) $(NETWORKING_DRIVER) wrapup -
c/src/lib/libbsp/m68k/gen68360/network/Makefile.in
r3f098aed r0280cb6 28 28 # 29 29 30 DEFINES += 30 DEFINES += -D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS \ 31 -DDIAGNOSTIC -DBOOTP_COMPAT 31 32 CPPFLAGS += 32 33 CFLAGS += -
c/src/lib/libbsp/m68k/gen68360/network/network.c
r3f098aed r0280cb6 1 1 /* 2 * RTEMS /KA9Qdriver for M68360 SCC1 Ethernet2 * RTEMS driver for M68360 SCC1 Ethernet 3 3 * 4 4 * W. Eric Norum … … 12 12 #include <bsp.h> 13 13 #include <m68360.h> 14 #include <m68360.h> 15 #include <stdarg.h> 14 16 #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> 23 28 24 29 /* … … 37 42 38 43 /* 39 * RTEMS event used by interrupt handler to signal d aemons.40 * This must *not* be the same event used by the KA9Qtask 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. 41 46 */ 42 47 #define INTERRUPT_EVENT RTEMS_EVENT_1 43 48 44 49 /* 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 */ 67 struct scc_softc { 68 struct arpcom arpcom; 53 69 struct mbuf **rxMbuf; 54 70 struct mbuf **txMbuf; 71 int acceptBroadcast; 55 72 int rxBdCount; 56 73 int txBdCount; … … 60 77 m360BufferDescriptor_t *rxBdBase; 61 78 m360BufferDescriptor_t *txBdBase; 62 struct iface *iface;63 rtems_id tx WaitTid;79 rtems_id rxDaemonTid; 80 rtems_id txDaemonTid; 64 81 65 82 /* … … 85 102 unsigned long txRawWait; 86 103 }; 87 static struct m360EnetDriver m360EnetDriver[NSCCDRIVER];104 static struct scc_softc scc_softc[NSCCDRIVER]; 88 105 89 106 /* … … 99 116 m360.scc1.scce = 0x8; 100 117 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); 103 120 } 104 121 … … 109 126 m360.scc1.scce = 0x12; 110 127 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); 113 130 } 114 131 m360.cisr = 1UL << 30; /* Clear SCC1 interrupt-in-service bit */ … … 119 136 */ 120 137 static void 121 m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag)138 m360Enet_initialize_hardware (struct scc_softc *sc) 122 139 { 123 140 int i; 124 141 unsigned char *hwaddr; 125 rtems_status_code s c;142 rtems_status_code status; 126 143 rtems_isr_entry old_handler; 127 144 … … 149 166 * Allocate mbuf pointers 150 167 */ 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"); 153 172 154 173 /* 155 174 * Set receiver and transmitter buffer descriptor bases 156 175 */ 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; 161 180 162 181 /* … … 174 193 * Set maximum receive buffer length 175 194 */ 176 m360.scc1p.mrblr = 1520;195 m360.scc1p.mrblr = RBUF_SIZE; 177 196 178 197 /* … … 204 223 m360.scc1p.un.ethernet.mflr = 1518; 205 224 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; 208 227 209 228 /* … … 218 237 * Set our physical address 219 238 */ 220 hwaddr = dp->iface->hwaddr;239 hwaddr = sc->arpcom.ac_enaddr; 221 240 m360.scc1p.un.ethernet.paddr_h = (hwaddr[5] << 8) | hwaddr[4]; 222 241 m360.scc1p.un.ethernet.paddr_m = (hwaddr[3] << 8) | hwaddr[2]; … … 239 258 * Set up receive buffer descriptors 240 259 */ 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; 243 262 244 263 /* 245 264 * Set up transmit buffer descriptors 246 265 */ 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; 253 272 254 273 /* … … 260 279 * Set up interrupts 261 280 */ 262 s c= rtems_interrupt_catch (m360Enet_interrupt_handler,281 status = rtems_interrupt_catch (m360Enet_interrupt_handler, 263 282 (m360.cicr & 0xE0) | 0x1E, 264 283 &old_handler); 265 if (s c!= RTEMS_SUCCESSFUL)284 if (status != RTEMS_SUCCESSFUL) 266 285 rtems_panic ("Can't attach M360 SCC1 interrupt handler: %s\n", 267 rtems_status_text (sc));286 rtems_status_text (status)); 268 287 m360.scc1.sccm = 0; /* No interrupts unmasked till necessary */ 269 288 m360.cimr |= (1UL << 30); /* Enable SCC1 interrupt */ … … 298 317 * Disable full-duplex operation 299 318 */ 300 m360.scc1.psmr = 0x880A | ( broadcastFlag? 0 : 0x100);319 m360.scc1.psmr = 0x880A | (sc->acceptBroadcast ? 0 : 0x100); 301 320 302 321 /* … … 310 329 m360.pcdir &= ~0x1; 311 330 #endif 312 313 /*314 * Enable receiver and transmitter315 */316 m360.scc1.gsmr_l = 0x1088003c;317 331 } 318 332 … … 326 340 */ 327 341 static void 328 m360Enet_retire_tx_bd (struct m360EnetDriver *dp)342 m360Enet_retire_tx_bd (struct scc_softc *sc) 329 343 { 330 344 rtems_unsigned16 status; 331 345 int i; 332 346 int nRetired; 333 334 i = dp->txBdTail; 347 struct mbuf *m, *n; 348 349 i = sc->txBdTail; 335 350 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)) { 338 353 /* 339 354 * See if anything went wrong … … 352 367 M360_BD_UNDERRUN)) { 353 368 if (status & M360_BD_LATE_COLLISION) 354 m360EnetDriver[0].txLateCollision++;369 scc_softc[0].txLateCollision++; 355 370 if (status & M360_BD_RETRY_LIMIT) 356 m360EnetDriver[0].txRetryLimit++;371 scc_softc[0].txRetryLimit++; 357 372 if (status & M360_BD_UNDERRUN) 358 m360EnetDriver[0].txUnderrun++;373 scc_softc[0].txUnderrun++; 359 374 360 375 /* … … 364 379 } 365 380 if (status & M360_BD_DEFER) 366 m360EnetDriver[0].txDeferred++;381 scc_softc[0].txDeferred++; 367 382 if (status & M360_BD_HEARTBEAT) 368 m360EnetDriver[0].txHeartbeat++;383 scc_softc[0].txHeartbeat++; 369 384 if (status & M360_BD_CARRIER_LOST) 370 m360EnetDriver[0].txLostCarrier++;385 scc_softc[0].txLostCarrier++; 371 386 } 372 387 nRetired++; … … 376 391 * Free all the associated buffer descriptors. 377 392 */ 378 dp->txBdActiveCount -= nRetired;393 sc->txBdActiveCount -= nRetired; 379 394 while (nRetired) { 380 395 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; 384 400 } 385 401 } 386 if (++i == dp->txBdCount)402 if (++i == sc->txBdCount) 387 403 i = 0; 388 404 } … … 390 406 391 407 /* 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 */ 410 static void 411 scc_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 547 static void 548 sendpacket (struct ifnet *ifp, struct mbuf *m) 549 { 550 struct scc_softc *sc = ifp->if_softc; 401 551 volatile m360BufferDescriptor_t *firstTxBd, *txBd; 552 struct mbuf *l = NULL; 402 553 rtems_unsigned16 status; 403 554 int nAdded; 404 555 405 556 /* 406 * Fill in some logging data407 */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 transmit414 * loop at the same time.415 * The blocking is simple-minded since the odds of two tasks416 * simultaneously attempting to use this code are low. The only417 * way that two tasks can try to run here is:418 * 1) Task A enters this code and ends up having to419 * 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 there422 * are no race conditions associated with manipulating the423 * txWaitTid variable.424 */425 if (dp->txWaitTid) {426 dp->txRawWait++;427 while (dp->txWaitTid)428 rtems_ka9q_ppause (10);429 }430 431 /*432 557 * Free up buffer descriptors 433 558 */ 434 m360Enet_retire_tx_bd ( dp);559 m360Enet_retire_tx_bd (sc); 435 560 436 561 /* … … 441 566 * since the hardware is capable of scatter/gather DMA. 442 567 */ 443 bp = *bpp;444 568 nAdded = 0; 445 txBd = firstTxBd = dp->txBdBase + dp->txBdHead;569 txBd = firstTxBd = sc->txBdBase + sc->txBdHead; 446 570 for (;;) { 447 571 /* 448 572 * Wait for buffer descriptor to become available. 449 573 */ 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) { 457 575 /* 458 576 * Clear old events … … 472 590 * an interrupt. 473 591 */ 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 476 596 /* 477 597 * Unmask TXB (buffer transmitted) and … … 479 599 */ 480 600 m360.scc1.sccm |= 0x12; 481 482 rtems_ka9q_event_receive (INTERRUPT_EVENT, 601 rtems_bsdnet_event_receive (INTERRUPT_EVENT, 483 602 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); 486 606 } 487 607 } 488 608 489 609 /* 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. 498 612 */ 499 613 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; 504 647 } 505 648 … … 508 651 * Break out of the loop if this mbuf is the last in the frame. 509 652 */ 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 } 515 660 break; 516 661 } 517 662 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 */ 670 void 671 scc_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). 531 702 */ 532 703 static 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; 704 scc_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 */ 715 static void 716 scc_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 */ 758 static void 759 scc_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 */ 775 static void 776 scc_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 */ 802 static int 803 scc_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); 554 820 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; 730 848 } 731 849 732 850 /* 733 851 * 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 1500739 * broadcast y/n -- accept or ignore broadcast packets, default yes740 * rbuf ## -- Set number of receive buffer descriptors741 * rbuf ## -- Set number of transmit buffer descriptors742 * ip ###.###.###.### -- IP address743 * ether ##:##:##:##:##:## -- Ethernet address744 * ether prom -- Get Ethernet address from bootstrap PROM745 852 */ 746 853 int 747 rtems_ ka9q_driver_attach (int argc, char *argv[], void *p)748 { 749 struct iface *iface;750 struct m360EnetDriver *dp;751 char *cp;854 rtems_scc1_driver_attach (struct rtems_bsdnet_ifconfig *config) 855 { 856 struct scc_softc *sc; 857 struct ifnet *ifp; 858 int mtu; 752 859 int i; 753 int argIndex;754 int broadcastFlag;755 char cbuf[30];756 860 757 861 /* … … 759 863 */ 760 864 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) 762 868 break; 763 869 } 764 870 if (i >= NSCCDRIVER) { 765 871 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; 855 914 } 856 915 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 10 10 11 11 # We only build the ka9q device driver if HAS_KA9Q was defined 12 KA9Q_DRIVER_yes_V = network12 KA9Q_DRIVER_yes_V = ka9q_network 13 13 KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V) 14 14 15 BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) 15 # We only build the networking device driver if HAS_NETWORKING was defined 16 NETWORKING_DRIVER_yes_V = network 17 NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V) 18 19 BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) $(NETWORKING_DRIVER) 16 20 CPU_PIECES= 17 21 GENERIC_PIECES= -
c/src/lib/wrapup/Makefile.in
r3f098aed r0280cb6 20 20 $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \ 21 21 $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \ 22 $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \ 22 23 $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \ 23 24 $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \ -
c/src/make/compilers/gcc-target-default.cfg
r3f098aed r0280cb6 22 22 INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q 23 23 INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V) 24 25 # We only include the header files for networking if it is enabled. 26 INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking 27 INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V) 24 28 25 29 ifeq ($(RTEMS_USE_GCC272),yes) … … 34 38 -I$(PROJECT_INCLUDE) \ 35 39 $(INCLUDE_KA9Q) \ 40 $(INCLUDE_NETWORKING) \ 36 41 $(RTEMS_LIBC_INCLUDES) $(DEFINES) 37 42 … … 47 52 -nostdinc -I$(PROJECT_INCLUDE) \ 48 53 $(INCLUDE_KA9Q) \ 54 $(INCLUDE_NETWORKING) \ 49 55 -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES) 50 56 … … 66 72 CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ 67 73 -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \ 68 $(INCLUDE_KA9Q) $( DEFINES)74 $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES) 69 75 70 76 ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \ -
c/src/wrapup/Makefile.in
r3f098aed r0280cb6 20 20 $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \ 21 21 $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \ 22 $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \ 22 23 $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \ 23 24 $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \ -
configure
r3f098aed r0280cb6 23 23 \ 24 24 --enable-ka9q enable KA9Q TCP/IP stack" 25 ac_help="$ac_help 26 \ 27 --enable-networking enable TCP/IP stack" 25 28 ac_help="$ac_help 26 29 \ … … 559 562 560 563 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 561 echo "configure:56 2: checking whether ${MAKE-make} sets \${MAKE}" >&5564 echo "configure:565: checking whether ${MAKE-make} sets \${MAKE}" >&5 562 565 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` 563 566 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then … … 632 635 633 636 echo $ac_n "checking host system type""... $ac_c" 1>&6 634 echo "configure:63 5: checking host system type" >&5637 echo "configure:638: checking host system type" >&5 635 638 636 639 host_alias=$host … … 653 656 654 657 echo $ac_n "checking target system type""... $ac_c" 1>&6 655 echo "configure:65 6: checking target system type" >&5658 echo "configure:659: checking target system type" >&5 656 659 657 660 target_alias=$target … … 671 674 672 675 echo $ac_n "checking build system type""... $ac_c" 1>&6 673 echo "configure:67 4: checking build system type" >&5676 echo "configure:677: checking build system type" >&5 674 677 675 678 build_alias=$build … … 739 742 esac 740 743 else 741 RTEMS_HAS_KA9Q=yes 744 RTEMS_HAS_KA9Q=no 745 fi 746 747 748 # Check whether --enable-networking or --disable-networking was given. 749 if test "${enable_networking+set}" = set; then 750 enableval="$enable_networking" 751 \ 752 case "${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; } ;; 756 esac 757 else 758 RTEMS_HAS_NETWORKING=yes 742 759 fi 743 760 … … 824 841 set dummy cat; ac_word=$2 825 842 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 826 echo "configure:8 27: checking for $ac_word" >&5843 echo "configure:844: checking for $ac_word" >&5 827 844 if eval "test \"`echo '$''{'ac_cv_path_CAT'+set}'`\" = set"; then 828 845 echo $ac_n "(cached) $ac_c" 1>&6 … … 855 872 set dummy rm; ac_word=$2 856 873 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 857 echo "configure:8 58: checking for $ac_word" >&5874 echo "configure:875: checking for $ac_word" >&5 858 875 if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then 859 876 echo $ac_n "(cached) $ac_c" 1>&6 … … 886 903 set dummy cp; ac_word=$2 887 904 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 888 echo "configure: 889: checking for $ac_word" >&5905 echo "configure:906: checking for $ac_word" >&5 889 906 if eval "test \"`echo '$''{'ac_cv_path_CP'+set}'`\" = set"; then 890 907 echo $ac_n "(cached) $ac_c" 1>&6 … … 917 934 set dummy mv; ac_word=$2 918 935 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 919 echo "configure:9 20: checking for $ac_word" >&5936 echo "configure:937: checking for $ac_word" >&5 920 937 if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then 921 938 echo $ac_n "(cached) $ac_c" 1>&6 … … 948 965 set dummy ln; ac_word=$2 949 966 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 950 echo "configure:9 51: checking for $ac_word" >&5967 echo "configure:968: checking for $ac_word" >&5 951 968 if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then 952 969 echo $ac_n "(cached) $ac_c" 1>&6 … … 977 994 978 995 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 979 echo "configure:9 80: checking whether ln -s works" >&5996 echo "configure:997: checking whether ln -s works" >&5 980 997 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then 981 998 echo $ac_n "(cached) $ac_c" 1>&6 … … 1000 1017 set dummy chmod; ac_word=$2 1001 1018 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1002 echo "configure:10 03: checking for $ac_word" >&51019 echo "configure:1020: checking for $ac_word" >&5 1003 1020 if eval "test \"`echo '$''{'ac_cv_path_CHMOD'+set}'`\" = set"; then 1004 1021 echo $ac_n "(cached) $ac_c" 1>&6 … … 1031 1048 set dummy sort; ac_word=$2 1032 1049 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1033 echo "configure:10 34: checking for $ac_word" >&51050 echo "configure:1051: checking for $ac_word" >&5 1034 1051 if eval "test \"`echo '$''{'ac_cv_path_SORT'+set}'`\" = set"; then 1035 1052 echo $ac_n "(cached) $ac_c" 1>&6 … … 1070 1087 # ./install, which can be erroneously created by make from ./install.sh. 1071 1088 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 1072 echo "configure:10 73: checking for a BSD compatible install" >&51089 echo "configure:1090: checking for a BSD compatible install" >&5 1073 1090 if test -z "$INSTALL"; then 1074 1091 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then … … 1123 1140 set dummy mkdir; ac_word=$2 1124 1141 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1125 echo "configure:11 26: checking for $ac_word" >&51142 echo "configure:1143: checking for $ac_word" >&5 1126 1143 if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then 1127 1144 echo $ac_n "(cached) $ac_c" 1>&6 … … 1155 1172 1156 1173 echo $ac_n "checking for working $MKDIR -m 0755""... $ac_c" 1>&6 1157 echo "configure:11 58: checking for working $MKDIR -m 0755" >&51174 echo "configure:1175: checking for working $MKDIR -m 0755" >&5 1158 1175 if eval "test \"`echo '$''{'rtems_cv_prog_MKDIR_P'+set}'`\" = set"; then 1159 1176 echo $ac_n "(cached) $ac_c" 1>&6 … … 1172 1189 1173 1190 echo $ac_n "checking for working $MKDIR -p""... $ac_c" 1>&6 1174 echo "configure:11 75: checking for working $MKDIR -p" >&51191 echo "configure:1192: checking for working $MKDIR -p" >&5 1175 1192 if eval "test \"`echo '$''{'rtems_cv_prog_mkdir_p'+set}'`\" = set"; then 1176 1193 echo $ac_n "(cached) $ac_c" 1>&6 … … 1192 1209 set dummy touch; ac_word=$2 1193 1210 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1194 echo "configure:1 195: checking for $ac_word" >&51211 echo "configure:1212: checking for $ac_word" >&5 1195 1212 if eval "test \"`echo '$''{'ac_cv_path_TOUCH'+set}'`\" = set"; then 1196 1213 echo $ac_n "(cached) $ac_c" 1>&6 … … 1223 1240 set dummy cmp; ac_word=$2 1224 1241 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1225 echo "configure:12 26: checking for $ac_word" >&51242 echo "configure:1243: checking for $ac_word" >&5 1226 1243 if eval "test \"`echo '$''{'ac_cv_path_CMP'+set}'`\" = set"; then 1227 1244 echo $ac_n "(cached) $ac_c" 1>&6 … … 1255 1272 set dummy sed; ac_word=$2 1256 1273 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1257 echo "configure:12 58: checking for $ac_word" >&51274 echo "configure:1275: checking for $ac_word" >&5 1258 1275 if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then 1259 1276 echo $ac_n "(cached) $ac_c" 1>&6 … … 1288 1305 set dummy $ac_prog; ac_word=$2 1289 1306 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1290 echo "configure:1 291: checking for $ac_word" >&51307 echo "configure:1308: checking for $ac_word" >&5 1291 1308 if eval "test \"`echo '$''{'ac_cv_path_M4'+set}'`\" = set"; then 1292 1309 echo $ac_n "(cached) $ac_c" 1>&6 … … 1325 1342 set dummy $ac_prog; ac_word=$2 1326 1343 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1327 echo "configure:13 28: checking for $ac_word" >&51344 echo "configure:1345: checking for $ac_word" >&5 1328 1345 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then 1329 1346 echo $ac_n "(cached) $ac_c" 1>&6 … … 1403 1420 *) 1404 1421 echo $ac_n "checking rtems target cpu""... $ac_c" 1>&6 1405 echo "configure:14 06: checking rtems target cpu" >&51422 echo "configure:1423: checking rtems target cpu" >&5 1406 1423 target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'` 1407 1424 echo "$ac_t""$target_cpu" 1>&6 … … 1422 1439 # Is this a supported CPU? 1423 1440 echo $ac_n "checking if cpu $target_cpu is supported""... $ac_c" 1>&6 1424 echo "configure:14 25: checking if cpu $target_cpu is supported" >&51441 echo "configure:1442: checking if cpu $target_cpu is supported" >&5 1425 1442 if test -d "$srcdir/c/src/exec/score/cpu/$target_cpu"; then 1426 1443 echo "$ac_t""yes" 1>&6 … … 1447 1464 set dummy $ac_prog; ac_word=$2 1448 1465 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1449 echo "configure:14 50: checking for $ac_word" >&51466 echo "configure:1467: checking for $ac_word" >&5 1450 1467 if eval "test \"`echo '$''{'ac_cv_path_CC_FOR_TARGET'+set}'`\" = set"; then 1451 1468 echo $ac_n "(cached) $ac_c" 1>&6 … … 1487 1504 1488 1505 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 1489 echo "configure:1 490: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&51506 echo "configure:1507: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 1490 1507 1491 1508 ac_ext=c … … 1497 1514 1498 1515 cat > conftest.$ac_ext <<EOF 1499 #line 15 00"configure"1516 #line 1517 "configure" 1500 1517 #include "confdefs.h" 1501 1518 main(){return(0);} 1502 1519 EOF 1503 if { (eval echo configure:15 04: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then1520 if { (eval echo configure:1521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 1504 1521 ac_cv_prog_cc_works=yes 1505 1522 # If we can't run a trivial program, we are probably using a cross compiler. … … 1521 1538 fi 1522 1539 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 1523 echo "configure:15 24: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&51540 echo "configure:1541: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 1524 1541 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 1525 1542 cross_compiling=$ac_cv_prog_cc_cross 1526 1543 1527 1544 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 1528 echo "configure:15 29: checking whether we are using GNU C" >&51545 echo "configure:1546: checking whether we are using GNU C" >&5 1529 1546 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then 1530 1547 echo $ac_n "(cached) $ac_c" 1>&6 … … 1535 1552 #endif 1536 1553 EOF 1537 if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:15 38: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then1554 if { 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 1538 1555 ac_cv_prog_gcc=yes 1539 1556 else … … 1550 1567 CFLAGS= 1551 1568 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 1552 echo "configure:15 53: checking whether ${CC-cc} accepts -g" >&51569 echo "configure:1570: checking whether ${CC-cc} accepts -g" >&5 1553 1570 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then 1554 1571 echo $ac_n "(cached) $ac_c" 1>&6 … … 1592 1609 1593 1610 echo $ac_n "checking whether $CC_FOR_TARGET accepts -specs""... $ac_c" 1>&6 1594 echo "configure:1 595: checking whether $CC_FOR_TARGET accepts -specs" >&51611 echo "configure:1612: checking whether $CC_FOR_TARGET accepts -specs" >&5 1595 1612 if eval "test \"`echo '$''{'rtems_cv_gcc_specs'+set}'`\" = set"; then 1596 1613 echo $ac_n "(cached) $ac_c" 1>&6 … … 1613 1630 1614 1631 echo $ac_n "checking whether $CC_FOR_TARGET accepts --pipe""... $ac_c" 1>&6 1615 echo "configure:16 16: checking whether $CC_FOR_TARGET accepts --pipe" >&51632 echo "configure:1633: checking whether $CC_FOR_TARGET accepts --pipe" >&5 1616 1633 if eval "test \"`echo '$''{'rtems_cv_gcc_pipe'+set}'`\" = set"; then 1617 1634 echo $ac_n "(cached) $ac_c" 1>&6 … … 1654 1671 set dummy $ac_prog; ac_word=$2 1655 1672 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1656 echo "configure:16 57: checking for $ac_word" >&51673 echo "configure:1674: checking for $ac_word" >&5 1657 1674 if eval "test \"`echo '$''{'ac_cv_path_CXX_FOR_TARGET'+set}'`\" = set"; then 1658 1675 echo $ac_n "(cached) $ac_c" 1>&6 … … 1694 1711 1695 1712 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 1696 echo "configure:1 697: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&51713 echo "configure:1714: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 1697 1714 1698 1715 ac_ext=C … … 1704 1721 1705 1722 cat > conftest.$ac_ext <<EOF 1706 #line 17 07"configure"1723 #line 1724 "configure" 1707 1724 #include "confdefs.h" 1708 1725 main(){return(0);} 1709 1726 EOF 1710 if { (eval echo configure:17 11: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then1727 if { (eval echo configure:1728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 1711 1728 ac_cv_prog_cxx_works=yes 1712 1729 # If we can't run a trivial program, we are probably using a cross compiler. … … 1734 1751 fi 1735 1752 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 1736 echo "configure:17 37: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&51753 echo "configure:1754: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 1737 1754 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 1738 1755 cross_compiling=$ac_cv_prog_cxx_cross 1739 1756 1740 1757 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 1741 echo "configure:17 42: checking whether we are using GNU C++" >&51758 echo "configure:1759: checking whether we are using GNU C++" >&5 1742 1759 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then 1743 1760 echo $ac_n "(cached) $ac_c" 1>&6 … … 1748 1765 #endif 1749 1766 EOF 1750 if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:17 51: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then1767 if { 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 1751 1768 ac_cv_prog_gxx=yes 1752 1769 else … … 1763 1780 CXXFLAGS= 1764 1781 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 1765 echo "configure:17 66: checking whether ${CXX-g++} accepts -g" >&51782 echo "configure:1783: checking whether ${CXX-g++} accepts -g" >&5 1766 1783 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then 1767 1784 echo $ac_n "(cached) $ac_c" 1>&6 … … 1817 1834 1818 1835 echo $ac_n "checking target's ar""... $ac_c" 1>&6 1819 echo "configure:18 20: checking target's ar" >&51836 echo "configure:1837: checking target's ar" >&5 1820 1837 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then 1821 1838 echo $ac_n "(cached) $ac_c" 1>&6 … … 1850 1867 # intends 1851 1868 echo $ac_n "checking whether environment variable AR_FOR_TARGET is an absolute path""... $ac_c" 1>&6 1852 echo "configure:18 53: checking whether environment variable AR_FOR_TARGET is an absolute path" >&51869 echo "configure:1870: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5 1853 1870 case "$AR_FOR_TARGET" in 1854 1871 /*) # valid … … 1867 1884 set dummy "$program_prefix"ar; ac_word=$2 1868 1885 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1869 echo "configure:18 70: checking for $ac_word" >&51886 echo "configure:1887: checking for $ac_word" >&5 1870 1887 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then 1871 1888 echo $ac_n "(cached) $ac_c" 1>&6 … … 1900 1917 1901 1918 echo $ac_n "checking target's as""... $ac_c" 1>&6 1902 echo "configure:19 03: checking target's as" >&51919 echo "configure:1920: checking target's as" >&5 1903 1920 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then 1904 1921 echo $ac_n "(cached) $ac_c" 1>&6 … … 1933 1950 # intends 1934 1951 echo $ac_n "checking whether environment variable AS_FOR_TARGET is an absolute path""... $ac_c" 1>&6 1935 echo "configure:19 36: checking whether environment variable AS_FOR_TARGET is an absolute path" >&51952 echo "configure:1953: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5 1936 1953 case "$AS_FOR_TARGET" in 1937 1954 /*) # valid … … 1950 1967 set dummy "$program_prefix"as; ac_word=$2 1951 1968 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 1952 echo "configure:19 53: checking for $ac_word" >&51969 echo "configure:1970: checking for $ac_word" >&5 1953 1970 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then 1954 1971 echo $ac_n "(cached) $ac_c" 1>&6 … … 1983 2000 1984 2001 echo $ac_n "checking target's ld""... $ac_c" 1>&6 1985 echo "configure: 1986: checking target's ld" >&52002 echo "configure:2003: checking target's ld" >&5 1986 2003 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then 1987 2004 echo $ac_n "(cached) $ac_c" 1>&6 … … 2016 2033 # intends 2017 2034 echo $ac_n "checking whether environment variable LD_FOR_TARGET is an absolute path""... $ac_c" 1>&6 2018 echo "configure:20 19: checking whether environment variable LD_FOR_TARGET is an absolute path" >&52035 echo "configure:2036: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5 2019 2036 case "$LD_FOR_TARGET" in 2020 2037 /*) # valid … … 2033 2050 set dummy "$program_prefix"ld; ac_word=$2 2034 2051 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2035 echo "configure:20 36: checking for $ac_word" >&52052 echo "configure:2053: checking for $ac_word" >&5 2036 2053 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then 2037 2054 echo $ac_n "(cached) $ac_c" 1>&6 … … 2066 2083 2067 2084 echo $ac_n "checking target's nm""... $ac_c" 1>&6 2068 echo "configure:20 69: checking target's nm" >&52085 echo "configure:2086: checking target's nm" >&5 2069 2086 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then 2070 2087 echo $ac_n "(cached) $ac_c" 1>&6 … … 2099 2116 # intends 2100 2117 echo $ac_n "checking whether environment variable NM_FOR_TARGET is an absolute path""... $ac_c" 1>&6 2101 echo "configure:21 02: checking whether environment variable NM_FOR_TARGET is an absolute path" >&52118 echo "configure:2119: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5 2102 2119 case "$NM_FOR_TARGET" in 2103 2120 /*) # valid … … 2116 2133 set dummy "$program_prefix"nm; ac_word=$2 2117 2134 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2118 echo "configure:21 19: checking for $ac_word" >&52135 echo "configure:2136: checking for $ac_word" >&5 2119 2136 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then 2120 2137 echo $ac_n "(cached) $ac_c" 1>&6 … … 2150 2167 2151 2168 echo $ac_n "checking target's ranlib""... $ac_c" 1>&6 2152 echo "configure:21 53: checking target's ranlib" >&52169 echo "configure:2170: checking target's ranlib" >&5 2153 2170 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then 2154 2171 echo $ac_n "(cached) $ac_c" 1>&6 … … 2183 2200 # intends 2184 2201 echo $ac_n "checking whether environment variable RANLIB_FOR_TARGET is an absolute path""... $ac_c" 1>&6 2185 echo "configure:2 186: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&52202 echo "configure:2203: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5 2186 2203 case "$RANLIB_FOR_TARGET" in 2187 2204 /*) # valid … … 2200 2217 set dummy "$program_prefix"ranlib; ac_word=$2 2201 2218 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2202 echo "configure:22 03: checking for $ac_word" >&52219 echo "configure:2220: checking for $ac_word" >&5 2203 2220 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then 2204 2221 echo $ac_n "(cached) $ac_c" 1>&6 … … 2235 2252 2236 2253 echo $ac_n "checking whether $AR_FOR_TARGET -s works""... $ac_c" 1>&6 2237 echo "configure:22 38: checking whether $AR_FOR_TARGET -s works" >&52254 echo "configure:2255: checking whether $AR_FOR_TARGET -s works" >&5 2238 2255 if eval "test \"`echo '$''{'rtems_cv_AR_FOR_TARGET_S'+set}'`\" = set"; then 2239 2256 echo $ac_n "(cached) $ac_c" 1>&6 … … 2244 2261 { return b; } 2245 2262 EOF 2246 if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:22 47: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \2247 && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:22 48: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \2263 if { 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; }; } \ 2248 2265 && test -s conftest.a ; \ 2249 2266 then … … 2270 2287 2271 2288 echo $ac_n "checking target's objcopy""... $ac_c" 1>&6 2272 echo "configure:22 73: checking target's objcopy" >&52289 echo "configure:2290: checking target's objcopy" >&5 2273 2290 if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then 2274 2291 echo $ac_n "(cached) $ac_c" 1>&6 … … 2303 2320 # intends 2304 2321 echo $ac_n "checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path""... $ac_c" 1>&6 2305 echo "configure:23 06: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&52322 echo "configure:2323: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5 2306 2323 case "$OBJCOPY_FOR_TARGET" in 2307 2324 /*) # valid … … 2320 2337 set dummy "$program_prefix"objcopy; ac_word=$2 2321 2338 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2322 echo "configure:23 23: checking for $ac_word" >&52339 echo "configure:2340: checking for $ac_word" >&5 2323 2340 if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then 2324 2341 echo $ac_n "(cached) $ac_c" 1>&6 … … 2353 2370 2354 2371 echo $ac_n "checking target's size""... $ac_c" 1>&6 2355 echo "configure:23 56: checking target's size" >&52372 echo "configure:2373: checking target's size" >&5 2356 2373 if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then 2357 2374 echo $ac_n "(cached) $ac_c" 1>&6 … … 2386 2403 # intends 2387 2404 echo $ac_n "checking whether environment variable SIZE_FOR_TARGET is an absolute path""... $ac_c" 1>&6 2388 echo "configure:2 389: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&52405 echo "configure:2406: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5 2389 2406 case "$SIZE_FOR_TARGET" in 2390 2407 /*) # valid … … 2403 2420 set dummy "$program_prefix"size; ac_word=$2 2404 2421 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2405 echo "configure:24 06: checking for $ac_word" >&52422 echo "configure:2423: checking for $ac_word" >&5 2406 2423 if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then 2407 2424 echo $ac_n "(cached) $ac_c" 1>&6 … … 2439 2456 set dummy gcc; ac_word=$2 2440 2457 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2441 echo "configure:24 42: checking for $ac_word" >&52458 echo "configure:2459: checking for $ac_word" >&5 2442 2459 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then 2443 2460 echo $ac_n "(cached) $ac_c" 1>&6 … … 2468 2485 set dummy cc; ac_word=$2 2469 2486 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 2470 echo "configure:24 71: checking for $ac_word" >&52487 echo "configure:2488: checking for $ac_word" >&5 2471 2488 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then 2472 2489 echo $ac_n "(cached) $ac_c" 1>&6 … … 2516 2533 2517 2534 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 2518 echo "configure:25 19: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&52535 echo "configure:2536: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 2519 2536 2520 2537 ac_ext=c … … 2526 2543 2527 2544 cat > conftest.$ac_ext <<EOF 2528 #line 25 29"configure"2545 #line 2546 "configure" 2529 2546 #include "confdefs.h" 2530 2547 main(){return(0);} 2531 2548 EOF 2532 if { (eval echo configure:25 33: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then2549 if { (eval echo configure:2550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 2533 2550 ac_cv_prog_cc_works=yes 2534 2551 # If we can't run a trivial program, we are probably using a cross compiler. … … 2550 2567 fi 2551 2568 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 2552 echo "configure:25 53: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&52569 echo "configure:2570: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 2553 2570 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 2554 2571 cross_compiling=$ac_cv_prog_cc_cross 2555 2572 2556 2573 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 2557 echo "configure:25 58: checking whether we are using GNU C" >&52574 echo "configure:2575: checking whether we are using GNU C" >&5 2558 2575 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then 2559 2576 echo $ac_n "(cached) $ac_c" 1>&6 … … 2564 2581 #endif 2565 2582 EOF 2566 if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:25 67: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then2583 if { 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 2567 2584 ac_cv_prog_gcc=yes 2568 2585 else … … 2579 2596 CFLAGS= 2580 2597 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 2581 echo "configure:25 82: checking whether ${CC-cc} accepts -g" >&52598 echo "configure:2599: checking whether ${CC-cc} accepts -g" >&5 2582 2599 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then 2583 2600 echo $ac_n "(cached) $ac_c" 1>&6 … … 2608 2625 2609 2626 echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6 2610 echo "configure:26 11: checking for Cygwin32 environment" >&52627 echo "configure:2628: checking for Cygwin32 environment" >&5 2611 2628 if eval "test \"`echo '$''{'rtems_cv_cygwin32'+set}'`\" = set"; then 2612 2629 echo $ac_n "(cached) $ac_c" 1>&6 2613 2630 else 2614 2631 cat > conftest.$ac_ext <<EOF 2615 #line 26 16"configure"2632 #line 2633 "configure" 2616 2633 #include "confdefs.h" 2617 2634 … … 2620 2637 ; return 0; } 2621 2638 EOF 2622 if { (eval echo configure:26 23: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then2639 if { (eval echo configure:2640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then 2623 2640 rm -rf conftest* 2624 2641 rtems_cv_cygwin32=yes … … 2638 2655 2639 2656 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 2640 echo "configure:26 41: checking for executable suffix" >&52657 echo "configure:2658: checking for executable suffix" >&5 2641 2658 if eval "test \"`echo '$''{'rtems_cv_exeext'+set}'`\" = set"; then 2642 2659 echo $ac_n "(cached) $ac_c" 1>&6 … … 2671 2688 do 2672 2689 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 2673 echo "configure:26 74: checking for $ac_func" >&52690 echo "configure:2691: checking for $ac_func" >&5 2674 2691 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then 2675 2692 echo $ac_n "(cached) $ac_c" 1>&6 2676 2693 else 2677 2694 cat > conftest.$ac_ext <<EOF 2678 #line 26 79"configure"2695 #line 2696 "configure" 2679 2696 #include "confdefs.h" 2680 2697 /* System header to define __stub macros and hopefully few prototypes, … … 2699 2716 ; return 0; } 2700 2717 EOF 2701 if { (eval echo configure:27 02: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then2718 if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 2702 2719 rm -rf conftest* 2703 2720 eval "ac_cv_func_$ac_func=yes" … … 2728 2745 2729 2746 echo $ac_n "checking whether $RTEMS_HOST supports System V semaphores""... $ac_c" 1>&6 2730 echo "configure:27 31: checking whether $RTEMS_HOST supports System V semaphores" >&52747 echo "configure:2748: checking whether $RTEMS_HOST supports System V semaphores" >&5 2731 2748 if eval "test \"`echo '$''{'rtems_cv_sysv_sem'+set}'`\" = set"; then 2732 2749 echo $ac_n "(cached) $ac_c" 1>&6 … … 2737 2754 else 2738 2755 cat > conftest.$ac_ext <<EOF 2739 #line 27 40"configure"2756 #line 2757 "configure" 2740 2757 #include "confdefs.h" 2741 2758 … … 2763 2780 2764 2781 EOF 2765 if { (eval echo configure:27 66: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null2782 if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null 2766 2783 then 2767 2784 rtems_cv_sysv_sem="yes" … … 2786 2803 2787 2804 echo $ac_n "checking whether $RTEMS_HOST supports System V shared memory""... $ac_c" 1>&6 2788 echo "configure:2 789: checking whether $RTEMS_HOST supports System V shared memory" >&52805 echo "configure:2806: checking whether $RTEMS_HOST supports System V shared memory" >&5 2789 2806 if eval "test \"`echo '$''{'rtems_cv_sysv_shm'+set}'`\" = set"; then 2790 2807 echo $ac_n "(cached) $ac_c" 1>&6 … … 2795 2812 else 2796 2813 cat > conftest.$ac_ext <<EOF 2797 #line 2 798"configure"2814 #line 2815 "configure" 2798 2815 #include "confdefs.h" 2799 2816 … … 2811 2828 2812 2829 EOF 2813 if { (eval echo configure:28 14: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null2830 if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null 2814 2831 then 2815 2832 rtems_cv_sysv_shm="yes" … … 2834 2851 2835 2852 echo $ac_n "checking whether $RTEMS_HOST supports System V messages""... $ac_c" 1>&6 2836 echo "configure:28 37: checking whether $RTEMS_HOST supports System V messages" >&52853 echo "configure:2854: checking whether $RTEMS_HOST supports System V messages" >&5 2837 2854 if eval "test \"`echo '$''{'rtems_cv_sysv_msg'+set}'`\" = set"; then 2838 2855 echo $ac_n "(cached) $ac_c" 1>&6 … … 2843 2860 else 2844 2861 cat > conftest.$ac_ext <<EOF 2845 #line 28 46"configure"2862 #line 2863 "configure" 2846 2863 #include "confdefs.h" 2847 2864 … … 2859 2876 2860 2877 EOF 2861 if { (eval echo configure:28 62: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null2878 if { (eval echo configure:2879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null 2862 2879 then 2863 2880 rtems_cv_sysv_msg="yes" … … 2884 2901 2885 2902 echo $ac_n "checking for Makefile.in in c/src/exec/score/tools/$target_cpu""... $ac_c" 1>&6 2886 echo "configure:2 887: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&52903 echo "configure:2904: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&5 2887 2904 if test -d $srcdir/c/src/exec/score/tools/$target_cpu; then 2888 2905 rtems_av_save_dir=`pwd`; … … 2899 2916 2900 2917 echo $ac_n "checking for Makefile.in in c/src/exec/rtems""... $ac_c" 1>&6 2901 echo "configure:29 02: checking for Makefile.in in c/src/exec/rtems" >&52918 echo "configure:2919: checking for Makefile.in in c/src/exec/rtems" >&5 2902 2919 if test -d $srcdir/c/src/exec/rtems; then 2903 2920 rtems_av_save_dir=`pwd`; … … 2914 2931 2915 2932 echo $ac_n "checking for Makefile.in in c/src/exec/sapi""... $ac_c" 1>&6 2916 echo "configure:29 17: checking for Makefile.in in c/src/exec/sapi" >&52933 echo "configure:2934: checking for Makefile.in in c/src/exec/sapi" >&5 2917 2934 if test -d $srcdir/c/src/exec/sapi; then 2918 2935 rtems_av_save_dir=`pwd`; … … 2931 2948 2932 2949 echo $ac_n "checking for Makefile.in in c/src/exec/posix""... $ac_c" 1>&6 2933 echo "configure:29 34: checking for Makefile.in in c/src/exec/posix" >&52950 echo "configure:2951: checking for Makefile.in in c/src/exec/posix" >&5 2934 2951 if test -d $srcdir/c/src/exec/posix; then 2935 2952 rtems_av_save_dir=`pwd`; … … 2953 2970 if test -z "$rtems_bsp"; then 2954 2971 echo $ac_n "checking for bsps""... $ac_c" 1>&6 2955 echo "configure:29 56: checking for bsps" >&52972 echo "configure:2973: checking for bsps" >&5 2956 2973 files=`ls $srcdir/c/src/lib/libbsp/$target_cpu` 2957 2974 for file in $files; do … … 3018 3035 3019 3036 echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir""... $ac_c" 1>&6 3020 echo "configure:30 21: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&53037 echo "configure:3038: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&5 3021 3038 if test -d $srcdir/c/src/lib/libbsp/$bspcpudir$bspdir; then 3022 3039 rtems_av_save_dir=`pwd`; … … 3033 3050 3034 3051 echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared""... $ac_c" 1>&6 3035 echo "configure:30 36: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&53052 echo "configure:3053: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&5 3036 3053 if test -d $srcdir/c/src/lib/libbsp/${bspcpudir}shared; then 3037 3054 rtems_av_save_dir=`pwd`; … … 3056 3073 3057 3074 echo $ac_n "checking for Makefile.in in c/src/lib/libcpu/$target_cpu""... $ac_c" 1>&6 3058 echo "configure:30 59: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&53075 echo "configure:3076: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&5 3059 3076 if test -d $srcdir/c/src/lib/libcpu/$target_cpu; then 3060 3077 rtems_av_save_dir=`pwd`; … … 3073 3090 3074 3091 echo $ac_n "checking for Makefile.in in c/src/lib/start/$target_cpu""... $ac_c" 1>&6 3075 echo "configure:30 76: checking for Makefile.in in c/src/lib/start/$target_cpu" >&53092 echo "configure:3093: checking for Makefile.in in c/src/lib/start/$target_cpu" >&5 3076 3093 if test -d $srcdir/c/src/lib/start/$target_cpu; then 3077 3094 rtems_av_save_dir=`pwd`; … … 3104 3121 3105 3122 # If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles 3123 echo $ac_n "checking if KA9Q networking is enabled? ""... $ac_c" 1>&6 3124 echo "configure:3125: checking if KA9Q networking is enabled? " >&5 3125 echo "$ac_t""$RTEMS_HAS_KA9Q" 1>&6 3106 3126 if test "$RTEMS_HAS_KA9Q" = "yes"; then 3107 3127 makefiles="$makefiles c/src/lib/libka9q/Makefile" 3128 fi 3129 3130 # If the TCP/IP stack is enabled, then find all TCP/IP Makefiles 3131 echo $ac_n "checking if networking is enabled? ""... $ac_c" 1>&6 3132 echo "configure:3133: checking if networking is enabled? " >&5 3133 echo "$ac_t""$RTEMS_HAS_NETWORKING" 1>&6 3134 if test "$RTEMS_HAS_NETWORKING" = "yes"; then 3135 3136 echo $ac_n "checking for Makefile.in in c/src/lib/libnetworking""... $ac_c" 1>&6 3137 echo "configure:3138: checking for Makefile.in in c/src/lib/libnetworking" >&5 3138 if 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 3145 else 3146 echo "$ac_t""no" 1>&6 3147 fi 3148 3149 3108 3150 fi 3109 3151 … … 3115 3157 # If the tests are enabled, then find all the test suite Makefiles 3116 3158 echo $ac_n "checking if the test suites are enabled? ""... $ac_c" 1>&6 3117 echo "configure:31 18: checking if the test suites are enabled? " >&53159 echo "configure:3160: checking if the test suites are enabled? " >&5 3118 3160 tests_enabled=yes 3119 3161 # Check whether --enable-tests or --disable-tests was given. … … 3134 3176 3135 3177 echo $ac_n "checking for Makefile.in in c/src/tests/tools/$target_cpu""... $ac_c" 1>&6 3136 echo "configure:31 37: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&53178 echo "configure:3179: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&5 3137 3179 if test -d $srcdir/c/src/tests/tools/$target_cpu; then 3138 3180 rtems_av_save_dir=`pwd`; … … 3151 3193 3152 3194 echo $ac_n "checking for Makefile.in in c/src/tests/libtests""... $ac_c" 1>&6 3153 echo "configure:31 54: checking for Makefile.in in c/src/tests/libtests" >&53195 echo "configure:3196: checking for Makefile.in in c/src/tests/libtests" >&5 3154 3196 if test -d $srcdir/c/src/tests/libtests; then 3155 3197 rtems_av_save_dir=`pwd`; … … 3166 3208 3167 3209 echo $ac_n "checking for Makefile.in in c/src/tests/sptests""... $ac_c" 1>&6 3168 echo "configure:3 169: checking for Makefile.in in c/src/tests/sptests" >&53210 echo "configure:3211: checking for Makefile.in in c/src/tests/sptests" >&5 3169 3211 if test -d $srcdir/c/src/tests/sptests; then 3170 3212 rtems_av_save_dir=`pwd`; … … 3181 3223 3182 3224 echo $ac_n "checking for Makefile.in in c/src/tests/tmtests""... $ac_c" 1>&6 3183 echo "configure:3 184: checking for Makefile.in in c/src/tests/tmtests" >&53225 echo "configure:3226: checking for Makefile.in in c/src/tests/tmtests" >&5 3184 3226 if test -d $srcdir/c/src/tests/tmtests; then 3185 3227 rtems_av_save_dir=`pwd`; … … 3196 3238 3197 3239 echo $ac_n "checking for Makefile.in in c/src/tests/mptests""... $ac_c" 1>&6 3198 echo "configure:3 199: checking for Makefile.in in c/src/tests/mptests" >&53240 echo "configure:3241: checking for Makefile.in in c/src/tests/mptests" >&5 3199 3241 if test -d $srcdir/c/src/tests/mptests; then 3200 3242 rtems_av_save_dir=`pwd`; … … 3212 3254 3213 3255 echo $ac_n "checking for Makefile.in in c/src/tests/psxtests""... $ac_c" 1>&6 3214 echo "configure:32 15: checking for Makefile.in in c/src/tests/psxtests" >&53256 echo "configure:3257: checking for Makefile.in in c/src/tests/psxtests" >&5 3215 3257 if test -d $srcdir/c/src/tests/psxtests; then 3216 3258 rtems_av_save_dir=`pwd`; … … 3230 3272 # If the HWAPI is enabled, the find the HWAPI Makefiles 3231 3273 echo $ac_n "checking if the HWAPI is enabled? ""... $ac_c" 1>&6 3232 echo "configure:32 33: checking if the HWAPI is enabled? " >&53274 echo "configure:3275: checking if the HWAPI is enabled? " >&5 3233 3275 # Check whether --enable-hwapi or --disable-hwapi was given. 3234 3276 if test "${enable_hwapi+set}" = set; then … … 3241 3283 3242 3284 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/analog""... $ac_c" 1>&6 3243 echo "configure:32 44: checking for Makefile.in in c/src/lib/libhwapi/analog" >&53285 echo "configure:3286: checking for Makefile.in in c/src/lib/libhwapi/analog" >&5 3244 3286 if test -d $srcdir/c/src/lib/libhwapi/analog; then 3245 3287 rtems_av_save_dir=`pwd`; … … 3256 3298 3257 3299 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/discrete""... $ac_c" 1>&6 3258 echo "configure:3 259: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&53300 echo "configure:3301: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&5 3259 3301 if test -d $srcdir/c/src/lib/libhwapi/discrete; then 3260 3302 rtems_av_save_dir=`pwd`; … … 3271 3313 3272 3314 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/drivers""... $ac_c" 1>&6 3273 echo "configure:3 274: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&53315 echo "configure:3316: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&5 3274 3316 if test -d $srcdir/c/src/lib/libhwapi/drivers; then 3275 3317 rtems_av_save_dir=`pwd`; … … 3286 3328 3287 3329 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory""... $ac_c" 1>&6 3288 echo "configure:3 289: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&53330 echo "configure:3331: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&5 3289 3331 if test -d $srcdir/c/src/lib/libhwapi/non_volatile_memory; then 3290 3332 rtems_av_save_dir=`pwd`; … … 3301 3343 3302 3344 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/serial""... $ac_c" 1>&6 3303 echo "configure:33 04: checking for Makefile.in in c/src/lib/libhwapi/serial" >&53345 echo "configure:3346: checking for Makefile.in in c/src/lib/libhwapi/serial" >&5 3304 3346 if test -d $srcdir/c/src/lib/libhwapi/serial; then 3305 3347 rtems_av_save_dir=`pwd`; … … 3316 3358 3317 3359 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/support""... $ac_c" 1>&6 3318 echo "configure:33 19: checking for Makefile.in in c/src/lib/libhwapi/support" >&53360 echo "configure:3361: checking for Makefile.in in c/src/lib/libhwapi/support" >&5 3319 3361 if test -d $srcdir/c/src/lib/libhwapi/support; then 3320 3362 rtems_av_save_dir=`pwd`; … … 3331 3373 3332 3374 echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/wrapup""... $ac_c" 1>&6 3333 echo "configure:33 34: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&53375 echo "configure:3376: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&5 3334 3376 if test -d $srcdir/c/src/lib/libhwapi/wrapup; then 3335 3377 rtems_av_save_dir=`pwd`; … … 3373 3415 3374 3416 3417 3375 3418 # pick up all the Makefiles in required parts of the tree 3376 3419 3377 3420 echo $ac_n "checking for Makefile.in in c/build-tools""... $ac_c" 1>&6 3378 echo "configure:3 379: checking for Makefile.in in c/build-tools" >&53421 echo "configure:3422: checking for Makefile.in in c/build-tools" >&5 3379 3422 if test -d $srcdir/c/build-tools; then 3380 3423 rtems_av_save_dir=`pwd`; … … 3391 3434 3392 3435 echo $ac_n "checking for Makefile.in in make""... $ac_c" 1>&6 3393 echo "configure:3 394: checking for Makefile.in in make" >&53436 echo "configure:3437: checking for Makefile.in in make" >&5 3394 3437 if test -d $srcdir/make; then 3395 3438 rtems_av_save_dir=`pwd`; … … 3406 3449 3407 3450 echo $ac_n "checking for Makefile.in in c/src/lib/libmisc""... $ac_c" 1>&6 3408 echo "configure:34 09: checking for Makefile.in in c/src/lib/libmisc" >&53451 echo "configure:3452: checking for Makefile.in in c/src/lib/libmisc" >&5 3409 3452 if test -d $srcdir/c/src/lib/libmisc; then 3410 3453 rtems_av_save_dir=`pwd`; … … 3421 3464 3422 3465 echo $ac_n "checking for Makefile.in in c/src/tests/samples""... $ac_c" 1>&6 3423 echo "configure:34 24: checking for Makefile.in in c/src/tests/samples" >&53466 echo "configure:3467: checking for Makefile.in in c/src/tests/samples" >&5 3424 3467 if test -d $srcdir/c/src/tests/samples; then 3425 3468 rtems_av_save_dir=`pwd`; … … 3653 3696 s%@RTEMS_HAS_POSIX_API@%$RTEMS_HAS_POSIX_API%g 3654 3697 s%@RTEMS_HAS_KA9Q@%$RTEMS_HAS_KA9Q%g 3698 s%@RTEMS_HAS_NETWORKING@%$RTEMS_HAS_NETWORKING%g 3655 3699 s%@RTEMS_USE_MACROS@%$RTEMS_USE_MACROS%g 3656 3700 s%@RTEMS_HAS_CPLUSPLUS@%$RTEMS_HAS_CPLUSPLUS%g -
configure.in
r3f098aed r0280cb6 34 34 no) RTEMS_HAS_KA9Q=no ;; 35 35 *) AC_MSG_ERROR(bad value ${enableval} for enable-ka9q option) ;; 36 esac],[RTEMS_HAS_KA9Q=yes]) 36 esac],[RTEMS_HAS_KA9Q=no]) 37 38 AC_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) ;; 44 esac],[RTEMS_HAS_NETWORKING=yes]) 37 45 38 46 AC_ARG_ENABLE(rtems-inlines, \ … … 373 381 374 382 # If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles 383 AC_MSG_CHECKING([if KA9Q networking is enabled? ]) 384 AC_MSG_RESULT($RTEMS_HAS_KA9Q) 375 385 if test "$RTEMS_HAS_KA9Q" = "yes"; then 376 386 makefiles="$makefiles c/src/lib/libka9q/Makefile" 387 fi 388 389 # If the TCP/IP stack is enabled, then find all TCP/IP Makefiles 390 AC_MSG_CHECKING([if networking is enabled? ]) 391 AC_MSG_RESULT($RTEMS_HAS_NETWORKING) 392 if test "$RTEMS_HAS_NETWORKING" = "yes"; then 393 RTEMS_CHECK_MAKEFILE(c/src/lib/libnetworking) 377 394 fi 378 395 … … 439 456 AC_SUBST(RTEMS_HAS_POSIX_API) 440 457 AC_SUBST(RTEMS_HAS_KA9Q) 458 AC_SUBST(RTEMS_HAS_NETWORKING) 441 459 AC_SUBST(RTEMS_USE_MACROS) 442 460 AC_SUBST(RTEMS_HAS_CPLUSPLUS) -
make/compilers/gcc-target-default.cfg
r3f098aed r0280cb6 22 22 INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q 23 23 INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V) 24 25 # We only include the header files for networking if it is enabled. 26 INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking 27 INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V) 24 28 25 29 ifeq ($(RTEMS_USE_GCC272),yes) … … 34 38 -I$(PROJECT_INCLUDE) \ 35 39 $(INCLUDE_KA9Q) \ 40 $(INCLUDE_NETWORKING) \ 36 41 $(RTEMS_LIBC_INCLUDES) $(DEFINES) 37 42 … … 47 52 -nostdinc -I$(PROJECT_INCLUDE) \ 48 53 $(INCLUDE_KA9Q) \ 54 $(INCLUDE_NETWORKING) \ 49 55 -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES) 50 56 … … 66 72 CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ 67 73 -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \ 68 $(INCLUDE_KA9Q) $( DEFINES)74 $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES) 69 75 70 76 ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \ -
make/custom/FreeBSD-posix.cfg
r3f098aed r0280cb6 45 45 HAS_KA9Q=no 46 46 47 # This target does NOT support the TCP/IP stack so ignore requests 48 # to enable it. 49 HAS_NETWORKING=no 50 47 51 # This target does NOT support the POSIX API. 48 52 HAS_POSIX_API=no -
make/custom/HPUX9-posix.cfg
r3f098aed r0280cb6 44 44 HAS_KA9Q=no 45 45 46 # This target does NOT support the TCP/IP stack so ignore requests 47 # to enable it. 48 HAS_NETWORKING=no 49 46 50 # This target does NOT support the POSIX API. 47 51 HAS_POSIX_API=no -
make/custom/Linux-posix.cfg
r3f098aed r0280cb6 46 46 HAS_KA9Q=no 47 47 48 # This target does NOT support the TCP/IP stack so ignore requests 49 # to enable it. 50 HAS_NETWORKING=no 51 48 52 # This target does NOT support the POSIX API. 49 53 HAS_POSIX_API=no -
make/custom/Solaris-posix.cfg
r3f098aed r0280cb6 45 45 HAS_KA9Q=no 46 46 47 # This target does NOT support the TCP/IP stack so ignore requests 48 # to enable it. 49 HAS_NETWORKING=no 50 47 51 # This target does NOT support the POSIX API. 48 52 HAS_POSIX_API=no -
make/custom/cvme961.cfg
r3f098aed r0280cb6 32 32 # to enable it. 33 33 HAS_KA9Q=no 34 35 # This target does NOT support the TCP/IP stack so ignore requests 36 # to enable it. 37 HAS_NETWORKING=no 34 38 35 39 # This section makes the target dependent options file. -
make/custom/default.cfg
r3f098aed r0280cb6 64 64 ifeq ($(RTEMS_HAS_KA9Q),yes) 65 65 HAS_KA9Q=yes 66 else 67 HAS_KA9Q=no 68 endif 69 70 # Define this to yes if this target wants the TCP/IP stack 71 ifeq ($(RTEMS_HAS_NETWORKING),yes) 72 HAS_NETWORKING=yes 73 else 74 HAS_NETWORKING=no 66 75 endif 67 76 -
make/custom/dmv152.cfg
r3f098aed r0280cb6 27 27 # to enable it. 28 28 HAS_KA9Q=no 29 30 # This target does NOT support the TCP/IP stack so ignore requests 31 # to enable it. 32 HAS_NETWORKING=no 29 33 30 34 # This section makes the target dependent options file. -
make/custom/efi332.cfg
r3f098aed r0280cb6 26 26 # to enable it. 27 27 HAS_KA9Q=no 28 29 # This target does NOT support the TCP/IP stack so ignore requests 30 # to enable it. 31 HAS_NETWORKING=no 28 32 29 33 # Override default start file -
make/custom/efi68k.cfg
r3f098aed r0280cb6 25 25 # to enable it. 26 26 HAS_KA9Q=no 27 28 # This target does NOT support the TCP/IP stack so ignore requests 29 # to enable it. 30 HAS_NETWORKING=no 27 31 28 32 # Override default start file -
make/custom/erc32.cfg
r3f098aed r0280cb6 32 32 # to enable it. 33 33 HAS_KA9Q=no 34 35 # This target does NOT support the TCP/IP stack so ignore requests 36 # to enable it. 37 HAS_NETWORKING=no 34 38 35 39 # Override default start file -
make/custom/force386.cfg
r3f098aed r0280cb6 28 28 # to enable it. 29 29 HAS_KA9Q=no 30 31 # This target does NOT support the TCP/IP stack so ignore requests 32 # to enable it. 33 HAS_NETWORKING=no 30 34 31 35 # This section makes the target dependent options file. -
make/custom/gen68302.cfg
r3f098aed r0280cb6 26 26 # to enable it. 27 27 HAS_KA9Q=no 28 29 # This target does NOT support the TCP/IP stack so ignore requests 30 # to enable it. 31 HAS_NETWORKING=no 28 32 29 33 # This section makes the target dependent options file. -
make/custom/gensh1.cfg
r3f098aed r0280cb6 35 35 # to enable it. 36 36 HAS_KA9Q=no 37 38 # This target does NOT support the TCP/IP stack so ignore requests 39 # to enable it. 40 HAS_NETWORKING=no 37 41 38 42 # debug flags: typically none, but we use -O1 as it produces better code -
make/custom/go32.cfg
r3f098aed r0280cb6 58 58 HAS_KA9Q=no 59 59 60 # This target does NOT support the TCP/IP stack so ignore requests 61 # to enable it. 62 HAS_NETWORKING=no 63 60 64 # Base name of start file 61 65 # go32 does not use the rtems start file -
make/custom/i386ex.cfg
r3f098aed r0280cb6 25 25 # to enable it. 26 26 HAS_KA9Q=no 27 28 # This target does NOT support the TCP/IP stack so ignore requests 29 # to enable it. 30 HAS_NETWORKING=no 27 31 28 32 # This section makes the target dependent options file. -
make/custom/idp.cfg
r3f098aed r0280cb6 16 16 # to enable it. 17 17 HAS_KA9Q=no 18 19 # This target does NOT support the TCP/IP stack so ignore requests 20 # to enable it. 21 HAS_NETWORKING=no 18 22 19 23 # This section makes the target dependent options file. -
make/custom/mvme136.cfg
r3f098aed r0280cb6 29 29 # to enable it. 30 30 HAS_KA9Q=no 31 32 # This target does NOT support the TCP/IP stack so ignore requests 33 # to enable it. 34 HAS_NETWORKING=no 31 35 32 36 # This section makes the target dependent options file. -
make/custom/mvme147.cfg
r3f098aed r0280cb6 23 23 # to enable it. 24 24 HAS_KA9Q=no 25 26 # This target does NOT support the TCP/IP stack so ignore requests 27 # to enable it. 28 HAS_NETWORKING=no 25 29 26 30 # This section makes the target dependent options file. -
make/custom/mvme162.cfg
r3f098aed r0280cb6 50 50 # to enable it. 51 51 HAS_KA9Q=no 52 53 # This target does NOT support the TCP/IP stack so ignore requests 54 # to enable it. 55 HAS_NETWORKING=no 52 56 53 57 # This section makes the target dependent options file. -
make/custom/no_bsp.cfg
r3f098aed r0280cb6 32 32 HAS_KA9Q=no 33 33 34 # This target does NOT support the TCP/IP stack so ignore requests 35 # to enable it. 36 HAS_NETWORKING=no 37 34 38 # Miscellaneous additions go here -
make/custom/ods68302.cfg
r3f098aed r0280cb6 36 36 # to enable it. 37 37 HAS_KA9Q=no 38 39 # This target does NOT support the TCP/IP stack so ignore requests 40 # to enable it. 41 HAS_NETWORKING=no 38 42 39 43 # Define this to yes if C++ is included in the development environment. -
make/custom/p4000.cfg
r3f098aed r0280cb6 16 16 # to enable it. 17 17 HAS_KA9Q=no 18 19 # This target does NOT support the TCP/IP stack so ignore requests 20 # to enable it. 21 HAS_NETWORKING=no 18 22 19 23 # This section makes the target dependent options file. -
make/custom/p4600.cfg
r3f098aed r0280cb6 29 29 # to enable it. 30 30 HAS_KA9Q=no 31 32 # This target does NOT support the TCP/IP stack so ignore requests 33 # to enable it. 34 HAS_NETWORKING=no 31 35 32 36 # This section makes the target dependent options file. -
make/custom/p4650.cfg
r3f098aed r0280cb6 28 28 # to enable it. 29 29 HAS_KA9Q=no 30 31 # This target does NOT support the TCP/IP stack so ignore requests 32 # to enable it. 33 HAS_NETWORKING=no 30 34 31 35 # This section makes the target dependent options file. -
make/custom/papyrus.cfg
r3f098aed r0280cb6 20 20 # to enable it. 21 21 HAS_KA9Q=no 22 23 # This target does NOT support the TCP/IP stack so ignore requests 24 # to enable it. 25 HAS_NETWORKING=no 22 26 23 27 # This section makes the target dependent options file. -
make/custom/portsw.cfg
r3f098aed r0280cb6 57 57 HAS_KA9Q=no 58 58 59 # This target does NOT support the TCP/IP stack so ignore requests 60 # to enable it. 61 HAS_NETWORKING=no 62 59 63 # Define this to yes if this target wants the posix api 60 64 HAS_POSIX_API=no -
make/custom/psim.cfg
r3f098aed r0280cb6 16 16 # to enable it. 17 17 HAS_KA9Q=no 18 19 # This target does NOT support the TCP/IP stack so ignore requests 20 # to enable it. 21 HAS_NETWORKING=no 18 22 19 23 # This section makes the target dependent options file. -
make/custom/simhppa.cfg
r3f098aed r0280cb6 42 42 # to enable it. 43 43 HAS_KA9Q=no 44 45 # This target does NOT support the TCP/IP stack so ignore requests 46 # to enable it. 47 HAS_NETWORKING=no 44 48 45 49 # This makes the target dependent options file. -
make/target.cfg.in
r3f098aed r0280cb6 41 41 RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@ 42 42 RTEMS_HAS_KA9Q = @RTEMS_HAS_KA9Q@ 43 RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@ 43 44 RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@ 44 45 RTEMS_USE_MACROS = @RTEMS_USE_MACROS@
Note: See TracChangeset
for help on using the changeset viewer.