* include/rtems/libio.h: Internally use a union of an unsigned64
and major/minor device so we don't get into trouble shifting.
The h8300 seemed to be impossible to remove warnings otherwise.
Eventually the structure definition of a dev_t might be better anyway.
* include/sys/ioccom.h: Added casts to remove warnings on 16 bit
targets.
* include/sys/utime.h: Removed as file is now part of the RTEMS
newlib support.
* Makefile.am: Reflect above.
* include/rtems/termiostypes.h: Avoid use of __P.
* include/Makefile.am: Add stdint.h and inttypes.h.
(reported by Mike Siers <mikes@poliac.com>)
* include/stdint.h: New file.
* include/inttypes.h: New file.
* libc/libio.c: Initialize more fields to NULL/0 during initialiation.
* include/rtems/libio_.h: Fix freenode macro so it works for sockets
which do not have the full set of filesystem operations and are
initialized via something other than open().
* include/rtems/libio_.h: Added ifdef to ensure that LOGIN_NAME_MAX
is defined on GNU/Linux (RedHat 6.2 distribution).
* libc/unixlibc.c: Added stubs for rtems_io_register_name() and
rtems_io_lookup_name() so UNIX port would compile the IO manager
sptest that registers /dev/null.
* include/rtems/libio_.h, libc/chroot.c, libc/privateenv.c:
Private environment and chroot() enhancements and fixes. Comments:
+ privateenv has been modified to let at chroot() to be more
POSIX like Sergei Organov recommended.
+ A task owner lets that rtems_set_private_env() will be
called twice or more times.
+ chroot() can be called without a previous
rtems_set_private_env(); (transpanrently)
+ The second call of rtems_set_private_env() makes a internal
chroot("/") into global imfs_root.
+ chroot() runs like chdir() without a previous chdir("/") with
the global root.
+ The current directory can be in a wrong place like Linux and
many other Unices.
* Alternate email is correo@fernando-ruiz.com
* libc/privateenv.c: New file.
* include/rtems/libio_.h, libc/Makefile.am, libc/base_fs.c,
libc/unmount.c: Moved default umask, current working directory,
root, and links followed count into a structure "user environment"
that can then be treated as a unit. This enable giving unique
copies of these to individual threads or collection of threads.
* libc/ioman.c: Moved to libfs.
* libc/Makefile.am: Removed ioman.c as part of moving it to libfs.
* libc/base_fs.c: Removed include of imfs.h and reworded comment
to avoid being IMFS specific.
* libc/libio.h: Removed prototype of IMFS_ops since it should
not be in this file.
* libc/mount.c: Removed IMFS specific configuration information.
* libc/unmount.c: Removed include of imfs.h and reworded comment
to avoid being IMFS specific.
* libc/Makefile.am: Added mallocfreespace.c.
* libc/mallocfreespace.c: New file based on work by Nick Simon
<Nick.SIMON@syntegra.bt.co.uk> which he included in malloc.c.
* libc/libcsupport.h: Added prototype for malloc_free_space().
<charles.gauthier@iit.nrc.ca>, and Darlene A. Stewart
<Darlene.Stewart@nrc.ca> to add support for a number of very
significant things:
+ BSPs for many variations on the Motorola MBX8xx board series
+ Cache Manager including initial support for m68040
and PowerPC
+ Rework of mpc8xx libcpu code so all mpc8xx CPUs now use
same code base.
+ Rework of eth_comm BSP to utiltize above.
John reports this works on the 821 and 860
There seems to be an ugly dependency between posix-headers and
libcsupport.
Configuring rtems with
../rtems-rc-19990324-0/configure \
--target=i386-rtems \
--prefix=<somewhere> \
--disable-posix
"make RTEMS_BSP=pc386" results into:
[...]
/opt/rtems/bin/i386-rtems-gcc --pipe
-B/users/rtems/src/multi/build/pc386/lib/ -specs bsp_specs -qrtems
-I/users/rtems/src/multi/build/pc386/lib/include/networking -g -Wall
-ansi -fasm -O4 -fomit-frame-pointer -c -o o-pc386/utime.o
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c
In file included from
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:16:
/opt/rtems/i386-rtems/include/utime.h:4: sys/utime.h: No such file or
directory
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning:
`struct utimbuf' declared inside parameter list
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning:
its scope is only this definition or declaration,
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning:
which is probably not what you want.
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c: In function
`utime':
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:34:
dereferencing pointer to incomplete type
../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:34:
dereferencing pointer to incomplete type
make[4]: *** [o-pc386/utime.o] Error 1
make[3]: *** [all] Error 1
make[2]: *** [all] Error 1
make[1]: *** [all] Error 1
make[1]: Leaving directory `/lfs/poseidon/users/rtems/src/multi/build/c'
make: *** [all] Error 1
Apparently sys/utime.h is one of the posix headers and therefore gets
not installed (I suppose this is correct).
IMO, this probably indicates that sys/utime.h has to be moved to another
include subdirectory and should not be part of the posix-package.
[AFAIK, sys/*.h are system dependent headers, so why should it be a
posix-header? - Hmm]
would work. At the same time, the initial implementation of F_SETFL
was added. A support routine was added to convert internal libio
flags back to the POSIX style. Eventually the internal representation
should be eliminated in the interest of simplicity and code reduction.
This problem was reported by Jake Janovetz <janovetz@tempest.ece.uiuc.edu>.