Patches from Eric Norum

This commit is contained in:
Joel Sherrill
1998-08-20 22:04:22 +00:00
parent 96b3916409
commit 28e7d7faed
60 changed files with 252 additions and 363 deletions

View File

@@ -65,6 +65,7 @@
struct in_addr;
#if 0 /* RTEMS -- Why rename these? */
/* XXX all new diversions!! argh!! */
#define inet_addr __inet_addr
#define inet_aton __inet_aton
@@ -80,6 +81,7 @@ struct in_addr;
#define inet_ntop __inet_ntop
#define inet_nsap_addr __inet_nsap_addr
#define inet_nsap_ntoa __inet_nsap_ntoa
#endif
__BEGIN_DECLS
int ascii2addr __P((int, const char *, void *));

View File

@@ -617,8 +617,8 @@ getsockopt (int s, int level, int name, void *aval, int *avalsize)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
static int
getpeersockname (int s, struct sockaddr *name, int *namelen, int pflag)
{
struct socket *so;
struct mbuf *m;
@@ -636,7 +636,10 @@ getpeername (int s, struct sockaddr *name, int *namelen)
rtems_bsdnet_semaphore_release ();
return -1;
}
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
if (pflag)
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
else
error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, m);
if (error) {
errno = error;
rtems_bsdnet_semaphore_release ();
@@ -652,6 +655,17 @@ getpeername (int s, struct sockaddr *name, int *namelen)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 1);
}
int
getsockname (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 0);
}
/*
************************************************************************
* RTEMS EXTERNAL I/O HANDLER ROUTINES *

View File

@@ -64,10 +64,22 @@ extern "C" {
#define CPU_IDLE_TASK_IS_FP FALSE
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
#define CPU_STACK_GROWS_UP FALSE
#define CPU_STRUCTURE_ALIGNMENT
/*
* Does this port provide a CPU dependent IDLE task implementation?
*
* If TRUE, then the routine _CPU_Thread_Idle_body
* must be provided and is the default IDLE thread body instead of
* _CPU_Thread_Idle_body.
*
* If FALSE, then use the generic IDLE thread body if the BSP does
* not provide one.
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
/*
* Define what is required to specify how the network to host conversion
* routines are handled.
@@ -384,6 +396,18 @@ void _CPU_ISR_install_vector(
proc_ptr *old_handler
);
/*
* _CPU_Thread_Idle_body
*
* Use the halt instruction of low power mode of a particular i386 model.
*/
#if (CPU_PROVIDES_IDLE_THREAD_BODY == TRUE)
void _CPU_Thread_Idle_body( void );
#endif /* CPU_PROVIDES_IDLE_THREAD_BODY */
/*
* _CPU_Context_switch
*

View File

@@ -23,9 +23,6 @@ SAPI_H_FILES=$(SAPI_H_PIECES:%=$(srcdir)/%.h)
EXTERNAL_H_PIECES =
EXTERNAL_H_FILES=$(EXTERNAL_H_PIECES:%=$(srcdir)/%.h)
NET_H_PIECES = in
NET_H_FILES=$(NET_H_PIECES:%=$(srcdir)/%.h)
SRCS=$(H_FILES) $(SAPI_H_FILES) $(EXTERNAL_H_FILES)
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
@@ -44,5 +41,4 @@ CLOBBER_ADDITIONS +=
all: $(SRCS)
$(INSTALL) -m 444 ${H_FILES} $(PROJECT_INCLUDE)/rtems/score
$(INSTALL) -m 444 ${SAPI_H_FILES} $(PROJECT_INCLUDE)/rtems/
$(INSTALL) -m 444 ${NET_H_FILES} $(PROJECT_INCLUDE)/netinet
# $(INSTALL) -m 444 ${EXTERNAL_H_FILES} $(PROJECT_INCLUDE)

View File

@@ -23,9 +23,6 @@ SAPI_H_FILES=$(SAPI_H_PIECES:%=$(srcdir)/%.h)
EXTERNAL_H_PIECES =
EXTERNAL_H_FILES=$(EXTERNAL_H_PIECES:%=$(srcdir)/%.h)
NET_H_PIECES = in
NET_H_FILES=$(NET_H_PIECES:%=$(srcdir)/%.h)
SRCS=$(H_FILES) $(SAPI_H_FILES) $(EXTERNAL_H_FILES)
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
@@ -44,5 +41,4 @@ CLOBBER_ADDITIONS +=
all: $(SRCS)
$(INSTALL) -m 444 ${H_FILES} $(PROJECT_INCLUDE)/rtems/score
$(INSTALL) -m 444 ${SAPI_H_FILES} $(PROJECT_INCLUDE)/rtems/
$(INSTALL) -m 444 ${NET_H_FILES} $(PROJECT_INCLUDE)/netinet
# $(INSTALL) -m 444 ${EXTERNAL_H_FILES} $(PROJECT_INCLUDE)

View File

@@ -11,10 +11,6 @@ PROJECT_ROOT = @PROJECT_ROOT@
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/directory.cfg
# We only build the KA9Q library if HAS_KA9Q was defined
LIBKA9Q_yes_V = libka9q
LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V)
# We only build the networking library if HAS_NETWORKING was defined
LIBNETWORKING_yes_V = libnetworking
LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
@@ -29,4 +25,4 @@ LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
LIBHWAPI=$(wildcard libhwapi)
SUB_DIRS=start include $(NETWORKING_INCLUDE) libmisc libc libcpu libbsp \
$(LIBKA9Q) $(LIBNETWORKING) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup
$(LIBNETWORKING) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup

View File

@@ -15,14 +15,6 @@ H_FILES=$(H_PIECES:%=$(srcdir)/%.h)
SYS_H_PIECES=termios
SYS_H_FILES=$(SYS_H_PIECES:%=$(srcdir)/sys/%.h)
KA9Q_H_PIECES= arp asy ax25 ax25mail bootp cmdparse commands config \
daemon dialer domain enet ftp ftpcli global hardware icmp iface \
internet ip kiss lapb lzw mailbox mbuf netuser nospc nr4 nr4mail \
nrs ping pktdrvr ppp proc rip rtems_ka9q sb session slhc slip smtp \
sockaddr SyslogDaemon syslog socket tcp telnet tftp timer tipmail \
trace udp usock
KA9Q_H_FILES=$(KA9Q_H_PIECES:%=$(srcdir)/ka9q/%.h)
MOTOROLA_H_PIECES=mc68230 mc68681
MOTOROLA_H_FILES=$(MOTOROLA_H_PIECES:%=$(srcdir)/motorola/%.h)
@@ -34,7 +26,7 @@ RTEMSCPLUSPLUS_H_PIECES= rtemsEvent rtemsInterrupt rtemsMessageQueue \
RTEMSCPLUSPLUS_H_FILES=$(RTEMSCPLUSPLUS_H_PIECES:%=$(srcdir)/rtems++/%.h)
SRCS=$(H_FILES) $(SYS_H_FILES) \
$(KA9Q_H_FILES) $(MOTOROLA_H_FILES) $(RTEMSCPLUSPLUS_H_FILES)
$(MOTOROLA_H_FILES) $(RTEMSCPLUSPLUS_H_FILES)
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/leaf.cfg
@@ -47,9 +39,6 @@ all: $(SRCS)
$(INSTALL) -m 444 $(MOTOROLA_H_FILES) \
$(PROJECT_INCLUDE)/motorola
$(INSTALL) -m 444 $(ZILOG_H_FILES) $(PROJECT_INCLUDE)/zilog
ifeq ($(HAS_KA9Q),yes)
$(INSTALL) -m 444 $(KA9Q_H_FILES) $(PROJECT_INCLUDE)/ka9q
endif
ifeq ($(HAS_CPLUSPLUS),yes)
$(INSTALL) -m 444 $(RTEMSCPLUSPLUS_H_FILES) $(PROJECT_INCLUDE)/rtems++
endif

View File

@@ -82,7 +82,7 @@
# --enable-gmake-print-directory \
# --disable-tests \
# --disable-posix \
# --enable-ka9q \
# --enable-networking \
# --enable-bare-cpu-cflags=-mcpu32 \
# --enable-bare-cpu-model=mcpu32 \
# --enable-rtemsbsp=bare

View File

@@ -138,7 +138,7 @@ for cpu in ${CPUS}; do
echo "Configuring RTEMS target bare-${rtems_target} ... "
../${RTEMS}/configure --target=${TARGET} --prefix=${RTEMS_PREFIX} \
--enable-cxx --enable-gmake-print-directory \
--disable-tests --disable-posix --enable-ka9q \
--disable-tests --disable-posix --enable-networking \
--enable-bare-cpu-cflags=-m${rtems_target} \
--enable-bare-cpu-model=m${rtems_target} \
--enable-rtemsbsp=bare

View File

@@ -11,9 +11,9 @@ PROJECT_ROOT = @PROJECT_ROOT@
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
include $(RTEMS_ROOT)/make/directory.cfg
# We only build the Network library if HAS_KA9Q was defined
# We only build the Network library if HAS_NETWORKING was defined
NETWORK_yes_V = network
NETWORK = $(NETWORK_$(HAS_KA9Q)_V)
NETWORK = $(NETWORK_$(HAS_NETWORKING)_V)
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories

View File

@@ -8,9 +8,10 @@ VPATH = @srcdir@
RTEMS_ROOT = @top_srcdir@
PROJECT_ROOT = @PROJECT_ROOT@
# We only install wd80x3.h if HAS_KA9Q was defined
WD80X3_yes_V = $(srcdir)/wd80x3.h
WD80X3 = $(WD80X3_$(HAS_KA9Q)_V)
# This driver needs to be reworked for the BSD stack.
# # We only install wd80x3.h if HAS_NETWORKING was defined
# WD80X3_yes_V = $(srcdir)/wd80x3.h
# WD80X3 = $(WD80X3_$(HAS_NETWORKING)_V)
H_FILES = $(srcdir)/bsp.h $(srcdir)/coverhd.h $(srcdir)/crt.h \
$(srcdir)/pc386uart.h $(srcdir)/pcibios.h \

View File

@@ -1,4 +1,6 @@
/*
* XXX This driver needs to be reworked to support the new BSD stack
*
* RTEMS/KA9Q driver for WD8003 Ethernet Controller
*
*

View File

@@ -8,9 +8,9 @@ VPATH = @srcdir@
RTEMS_ROOT = @top_srcdir@
PROJECT_ROOT = @PROJECT_ROOT@
# We only build the Network library if HAS_KA9Q was defined
# We only build the Network library if HAS_NETWORKING was defined
NETWORK_yes_V = network
NETWORK = $(NETWORK_$(HAS_KA9Q)_V)
NETWORK = $(NETWORK_$(HAS_NETWORKING)_V)
BSP_PIECES=startup clock console timer pc386dev $(NETWORK)
GENERIC_PIECES=

View File

@@ -13,10 +13,6 @@ include $(RTEMS_ROOT)/make/directory.cfg
SRCS=README
# We only build the ka9q device driver if HAS_KA9Q was defined
KA9Q_DRIVER_yes_V = ka9q_network
KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V)
# We only build the networking device driver if HAS_NETWORKING was defined
NETWORKING_DRIVER_yes_V = network
NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V)
@@ -26,4 +22,4 @@ all: $(SRCS)
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories
SUB_DIRS=include start360 startup clock console timer \
$(KA9Q_DRIVER) $(NETWORKING_DRIVER) wrapup
$(NETWORKING_DRIVER) wrapup

View File

@@ -33,7 +33,7 @@
#
# Decisions to be made a link-edit time are:
# - The size of the memory allocator heap. The default value is
# 64 kbytes. If the KA9Q network package is used the heap
# 64 kbytes. If the network package is used the heap
# should be at least 256 kbytes. If your network is large, or
# busy, the heap should be even larger.
# To choose a heap size of 256 kbytes,

View File

@@ -36,6 +36,14 @@ extern "C" {
#include <iosupp.h>
#include <clockdrv.h>
/*
* Network driver configuration
*/
struct rtems_bsdnet_ifconfig;
extern int rtems_scc1_driver_attach (struct rtems_bsdnet_ifconfig *config);
#define RTEMS_BSP_NETWORK_DRIVER_NAME "scc1"
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_scc1_driver_attach
/*
* Define the time limits for RTEMS Test Suite test durations.
* Long test and short test duration limits are provided. These

View File

@@ -8,15 +8,11 @@ VPATH = @srcdir@
RTEMS_ROOT = @top_srcdir@
PROJECT_ROOT = @PROJECT_ROOT@
# We only build the ka9q device driver if HAS_KA9Q was defined
KA9Q_DRIVER_yes_V = ka9q_network
KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V)
# We only build the networking device driver if HAS_NETWORKING was defined
NETWORKING_DRIVER_yes_V = network
NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V)
BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) $(NETWORKING_DRIVER)
BSP_PIECES=startup clock console timer $(NETWORKING_DRIVER)
CPU_PIECES=
GENERIC_PIECES=

View File

@@ -65,6 +65,7 @@
struct in_addr;
#if 0 /* RTEMS -- Why rename these? */
/* XXX all new diversions!! argh!! */
#define inet_addr __inet_addr
#define inet_aton __inet_aton
@@ -80,6 +81,7 @@ struct in_addr;
#define inet_ntop __inet_ntop
#define inet_nsap_addr __inet_nsap_addr
#define inet_nsap_ntoa __inet_nsap_ntoa
#endif
__BEGIN_DECLS
int ascii2addr __P((int, const char *, void *));

View File

@@ -617,8 +617,8 @@ getsockopt (int s, int level, int name, void *aval, int *avalsize)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
static int
getpeersockname (int s, struct sockaddr *name, int *namelen, int pflag)
{
struct socket *so;
struct mbuf *m;
@@ -636,7 +636,10 @@ getpeername (int s, struct sockaddr *name, int *namelen)
rtems_bsdnet_semaphore_release ();
return -1;
}
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
if (pflag)
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
else
error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, m);
if (error) {
errno = error;
rtems_bsdnet_semaphore_release ();
@@ -652,6 +655,17 @@ getpeername (int s, struct sockaddr *name, int *namelen)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 1);
}
int
getsockname (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 0);
}
/*
************************************************************************
* RTEMS EXTERNAL I/O HANDLER ROUTINES *

View File

@@ -18,7 +18,6 @@ LIB=$(PROJECT_RELEASE)/lib/librtemsall${LIB_VARIANT}.a
SRCS=$(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \
$(PROJECT_RELEASE)/lib/librtems$(LIB_VARIANT).a \
$(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \
$(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \

View File

@@ -65,6 +65,7 @@
struct in_addr;
#if 0 /* RTEMS -- Why rename these? */
/* XXX all new diversions!! argh!! */
#define inet_addr __inet_addr
#define inet_aton __inet_aton
@@ -80,6 +81,7 @@ struct in_addr;
#define inet_ntop __inet_ntop
#define inet_nsap_addr __inet_nsap_addr
#define inet_nsap_ntoa __inet_nsap_ntoa
#endif
__BEGIN_DECLS
int ascii2addr __P((int, const char *, void *));

View File

@@ -617,8 +617,8 @@ getsockopt (int s, int level, int name, void *aval, int *avalsize)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
static int
getpeersockname (int s, struct sockaddr *name, int *namelen, int pflag)
{
struct socket *so;
struct mbuf *m;
@@ -636,7 +636,10 @@ getpeername (int s, struct sockaddr *name, int *namelen)
rtems_bsdnet_semaphore_release ();
return -1;
}
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
if (pflag)
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m);
else
error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, m);
if (error) {
errno = error;
rtems_bsdnet_semaphore_release ();
@@ -652,6 +655,17 @@ getpeername (int s, struct sockaddr *name, int *namelen)
return 0;
}
int
getpeername (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 1);
}
int
getsockname (int s, struct sockaddr *name, int *namelen)
{
return getpeersockname (s, name, namelen, 0);
}
/*
************************************************************************
* RTEMS EXTERNAL I/O HANDLER ROUTINES *

View File

@@ -18,10 +18,6 @@ CPLUS_CPPFLAGS=$(CFLAGS) $(XCPPFLAGS)
# default flags
# We only include the header files for KA9Q if it is enabled.
INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q
INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V)
# We only include the header files for networking if it is enabled.
INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking
INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V)
@@ -36,7 +32,6 @@ endif
# Used for posix bsps
CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \
-I$(PROJECT_INCLUDE) \
$(INCLUDE_KA9Q) \
$(INCLUDE_NETWORKING) \
$(RTEMS_LIBC_INCLUDES) $(DEFINES)
@@ -50,7 +45,6 @@ GCC_INCLUDE=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=include $(GCCSED))
CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \
-nostdinc -I$(PROJECT_INCLUDE) \
$(INCLUDE_KA9Q) \
$(INCLUDE_NETWORKING) \
-I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES)
@@ -71,7 +65,7 @@ endif
else
CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \
-B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \
$(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES)
$(INCLUDE_NETWORKING) $(DEFINES)
ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \
-B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems $(DEFINES)

View File

@@ -18,7 +18,6 @@ LIB=$(PROJECT_RELEASE)/lib/librtemsall${LIB_VARIANT}.a
SRCS=$(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \
$(PROJECT_RELEASE)/lib/librtems$(LIB_VARIANT).a \
$(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \
$(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \
$(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \