[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Tue Mar 17 12:28:37 CET 2009
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 09/03/17 12:28:37
Modified files:
cm3/m3-libs/m3core/src/unix/Common/: Usocket.i3 m3makefile
cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3
cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3
Log message:
multi-part experiment
1: wrap everything
2: wrap everything taking input socklen_t
3: wrap everything taking input/output socklen_t
Result is removal of platform-specific socklen_t.
But at the cost of 200 lines of C (though really
#1 has nothing to do with socklen_t, #2 is
/perhaps/ optional, #3 is the real part), perhaps
this is not worthwhile. I could argue the 200
lines are simple and not dense, but "lines are lines"?
Also, this approach is definitely tedious and therefore
error-prone.
socklen_t so far is 32 bit unsigned everywhere except:
signed on Cygwin
size_t on HP-UX, therefore 64 bits on PA64_HPUX/IA64_HPUX
There is something fishy going on in that it seems
folks were in places passing ADR(INTEGER) here, which
should fail to compile on everything but Cygwin, esp.
64 bit platforms. Could be that subranges don't
define different types in this context?
UNTRACED REF BITS 32 FOR [0..1]
same type as UNTRACED REF BITS 32 FOR [0..2]?
I was considering making changes in the clients instead.
In particular, the in/out socklen_t* is actually only
used for input, but there are a fair number of clients to visit:
m3-comm\tcp\src\POSIX\IP.m3
m3-comm\tcp\src\POSIX\TCP.m3
m3-comm\tcp\src\POSIX\TCPExtras.m3
m3-comm\tcp\src\POSIX\TCPHack.m3
m3-comm\tcp\src\POSIX\TCPExtras.m3
m3-comm\tcp\src\POSIX\TCPPeer.m3
m3-comm\udp\src\POSIX\UDPPosix.m3
m3-demo\mentor\src\sorting\audio\MidiLineServer.m3
m3-lectern\lecternclient\src\POSIX\LecternClientPosix.m3
m3-libs\libm3\src\os\POSIX\SocketPosix.m3
m3-ui\jvideo\src\POSIX\decunix\JVSink.m3
m3-ui\jvideo\src\POSIX\decunix\Jv.m3
More information about the M3commit
mailing list