>>>>> Bradley D LaRonde writes:
> Using kernel 2.3.47. SOCK_STREAM is not defined anywhere my
> /usr/mipsel-linux/include. The only place I can find it is in
> asm-mips/socket.h, but there it is protected by #ifdef __KERNEL__. That
> #ifdef is relatively new, put in CVS on 2000/02/25 with comment "Bits for
> libc.".
> So what is the correct way to get SOCK_STREAM to userland?
They should be defined in <socketbits.h> - but apparently they aren't.
Here's the definition, just add it to <socketbits.h>:
/* Types of sockets. */
enum __socket_type
{
SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
of fixed maximum length. */
#define SOCK_DGRAM SOCK_DGRAM
SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
byte streams. */
#define SOCK_STREAM SOCK_STREAM
SOCK_RAW = 3, /* Raw protocol interface. */
#define SOCK_RAW SOCK_RAW
SOCK_RDM = 4, /* Reliably-delivered messages. */
#define SOCK_RDM SOCK_RDM
SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
datagrams of fixed maximum length. */
#define SOCK_SEQPACKET SOCK_SEQPACKET
SOCK_PACKET = 10 /* Linux specific way of getting packets
at the dev level. For writing rarp and
other similar things on the user level. */
#define SOCK_PACKET SOCK_PACKET
};
This is a bug in the MIPS glibc 2.0.x package.
I've asked Ralf to add an #ifdef __KERNEL__ for asm/socket.h - but
this is not the final solution AFAIK. No architecture (except MIPS)
export SOCK_STREAM etc to userspace from the kernel.
This will work with the glibc I'm working on - and it will work the
same way as for other architectures.
Andreas
--
Andreas Jaeger
SuSE Labs [EMAIL PROTECTED]
private [EMAIL PROTECTED]