Each target has the option of reusing a file from another target.
To be able to get pieces from different architectures cleanly,
files are copied by the Makefile to a central directory named "copied".
This makes them easier to remove and keeps the source tree clean.
+ sparc did not really have a unique in_cksum.c and Makefile
needed to be adjusted to reflect this
+ some destination directories for copied files did not exist.
make the destination directory before copying.
This is really not a great thing to do as it messes with the source
tree but it works for now. It would be better to make a special
place to put generated source and integrate that into the build system.
The MIPS in_cksum.c method supports big and little endian targets. This
does not include any inline assembly and should be reasonable for most
targets.
The current implementation assumes that the architecture supports the Programmable
Interrupt Controller interrupt API in RTEMS. Most architectures do not use this
model and provide only the Simple Vectored interrupt API. The SPARC port has an
implementation of the PIC API that builds on the Simple Vectored API.
The code added here is just enough to compile. The hope is that a generic
PIC API wrapper will be implemented on top of the Simple Vectored which will
instantly provide support for all other architectures.
For now, the issues of code portability related to PCI support, in_cksum,
cpufunc.h, linkcmds etc are sufficiently challenging that just ensuring we are
able to compile for all RTEMS supported architectures will let us address many
issues.
In summary, this is just a placeholder which lets the RTEMS LibBSD code compile
on Simple Vectored architectures.
At least 80 files in this tree have an advertisting clause. 56 in
the old TCP/IP stack did. We will not have a functional stack unless
we accept this unfortunate situation.
At this point, we are unsure what actual functionality will be
required for a functional MIPS port so just provide a stub.
This lets the build complete and avoids the code with the
advertising clause.
This requires a full checkout of the FreeBSD 8.2 source code.
The checkout we have been using is missing at least the libc,
include, and sys directories. The script to copy files in is
crude.
This eventually needs to separate the manually written .h files
out and add the RTEMS specific network initialization support
with functionality to program the IP addresses and gateways as
the old stack did.
They were not installed in the correct subdirectory for the
way they were included in the kernel source anyway. If they
are needed at the user level, then we can re-address it then.