|
|
In SCO OpenServer, the *addrlen
parameter is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
SCO OpenServer can return EFAULT (the addr parameter is not in a writable part of the user address space), which is not returned by UnixWare 7 and SCO UnixWare 2.1.X.
In SCO OpenServer, the *namelen
parameter is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
SCO OpenServer can return EFAULT (the name parameter is not in a valid part of the user address space), which is not returned by UnixWare 7 and SCO UnixWare 2.1.X.
In SCO OpenServer, the third parameter is called
*namelen
and is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is called *address_len
and is
declared as size_t
.
The parameters have the same use (i.e., they contain the length of the
previous calling parameter).
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
This returns an ether_addr_t
(unsigned char)
on UnixWare 7 and SCO UnixWare 2.1.X, while it returns an ether_addr structure
(which has one member of type ether_addr_t
) on SCO OpenServer.
This function takes an ether_addr_t
(unsigned char) parameter
on UnixWare 7 and SCO UnixWare 2.1.X, while it takes an ether_addr structure
(which has one member of type ether_addr_t
) on SCO OpenServer.
This function takes an ether_addr_t
(unsigned char) parameter
on UnixWare 7 and SCO UnixWare 2.1.X, while it takes an ether_addr structure
(which has one member of type ether_addr_t
) on SCO OpenServer.
This function takes an ether_addr_t
(unsigned char) parameter
on UnixWare 7 and SCO UnixWare 2.1.X, while it takes an ether_addr structure
(which has one member of type ether_addr_t
) on SCO OpenServer.
This function takes an ether_addr_t
(unsigned char) parameter
on UnixWare 7 and SCO UnixWare 2.1.X, while it takes an ether_addr structure
(which has one member of type ether_addr_t
) on SCO OpenServer.
These functions appear as system calls in libc on UnixWare 7, SCO UnixWare 2.1.X, and SCO OpenServer; SCO OpenServer also provides versions of these in the sockets library.
In SCO OpenServer, the *namelen
parameter is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
In SCO OpenServer, the *namelen
parameter is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
In SCO OpenServer, the *optlen
parameter is an int
.
In SCO UnixWare 2.1.X and UnixWare 7, it is declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
The following options are provided on SCO OpenServer, but are not supported on UnixWare 7 and SCO UnixWare 2.1.X:
These routines are implemented as system calls in SCO UnixWare 2.1.X and UnixWare 7. On SCO OpenServer, they are implemented as routines in the libsocket library, as well as system calls (in libc).
The syntax of the system call on SCO UnixWare 2.1.X and UnixWare 7 is:
#include <sys/time.h> int gettimeofday(struct timeval *tp, void *reserved); int settimeofday(struct timeval *tp, void *reserved);where the second parameter is required to be NULL.
On SCO OpenServer, the system call syntax is:
#include <sys/time.h> int gettimeofday(struct timeval *tp); int settimeofday(struct timeval *tp);
The SCO OpenServer libsocket routine's syntax is:
#include <sys/time.h> int gettimeofday(struct timeval *tp , struct timezone *tpz); int settimeofday(struct timeval *tp , struct timezone *tpz);
The timeval structures used are the same on each platform; but the timezone structure is unique to the SCO OpenServer libsocket routines (and any data it contains is ignored on the other platforms):
struct timezone { int tz_minuteswest; /* of Greewich */ int tz_dsttime; /* type of dst correction to apply */ };
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
The netgroup routines (endnetgrent, getnegrent, setnetgrent, innetgr) on SCO UnixWare 2.1.X and SCO OpenServer require that the Network Information Service (NIS) is running for these routines to return successfully. This is not a requirement on SCO OpenServer, on which these routines also check the file /etc/netgroup for network group information.
The msghdr structure was changed between SCO UnixWare 2.1 and SCO UnixWare 2.1.X to comply with standards.
On SCO UnixWare 2.1, the msghdr structure (used by recvmsg)) is defined in sys/socket.h as follows:
caddr_t msg_name; /* optional address */ int msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_accrights; /* access rights sent/received */ int msg_accrightslen;
On UnixWare 7 and SCO UnixWare 2.1.X, the msghdr structure is defined as follows:
caddr_t msg_name; /* optional address */ int msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_control; /* control information sent/received */ int msg_controllen; /* size of control information */ int msg_flags; /* size of control information */
The interfaces for sendmsg and recvmsg were versioned between SCO UnixWare 2.1 and SCO UnixWare 2.1.X to support both structures.
By default, programs compiled on UnixWare 7 and SCO UnixWare 2.1.X will use the new structure. In order to use the old structure, the program must be compiled with the SVR4 conditional compilation flag defined. Binary compatibility between programs compiled on SCO UnixWare 2.1 is maintained on SCO UnixWare 2.1.X and UnixWare 7.
The use of the cmsghdr structure for control data along with the CMSG macros are supported in SCO OpenServer, SCO UnixWare 2.1.X, and UnixWare 7. These are not supported in SCO UnixWare 2.1.
In SCO OpenServer the cmsghdr structure is defined as:
int cmsg_level; /* originating protocol */ int cmsg_type; /* protocol-specific type */ u_int cmsg_len; /* data byte count, including hdr */
In SCO UnixWare 2.1.X and UnixWare 7 the cmsghdr structure is defined as:
size_t cmsg_len; /* data byte count, including hdr */ int cmsg_level; /* originating protocol */ int cmsg_type; /* protocol-specific type */
Finally, UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (not returned on SCO OpenServer):
On SCO OpenServer, the FD_SETSIZE constant is normally defined (in *(f<sys/types.h*(f>) as either 150 or 11000; on UnixWare 7 Release 7.0.0 and SCO UnixWare 2.1.X, it is usually defined (in ``sys/select.h'') as either 20 or 1024. With UnixWare 7 Release 7.0.1, the value of FD_SETSIZE was increased to 4096. See select(3C).
In SCO OpenServer, the *len
and *tolen
parameters are int
s.
In SCO UnixWare 2.1.X and UnixWare 7, they are declared as size_t
.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
See
``recv/recvfrom/recvmsg source compatibility notes''
for a description of platform differences in the msghdr
structure.
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
UnixWare 7 and SCO UnixWare 2.1.X can return these additional errors (which are not returned by SCO OpenServer):
SCO OpenServer can return these additional errors (which are not returned by UnixWare 7 or SCO UnixWare 2.1.X):
The protocol families and types differ between the systems. On UnixWare 7, the AF_INET6 protocol family is supported, in addition to the AF_UNIX and AF_INET protocol families supported on SCO OpenServer and SCO UnixWare 2.1.X.
UnixWare 7 and SCO UnixWare 2.1.X support the SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET, and SOCK_RDM socket types; SCO OpenServer supports only SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW.
On SCO OpenServer, /usr/include/sys/syslog.h contains the following facilities definitions:
#define LOG_CRON (9<<3) /* clock daemon */ #define LOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */On UnixWare 7 and SCO UnixWare 2.1.X, the above lines are omitted, and the following appear instead:
#define LOG_LFMT (14<<3) /* logalert facility */ #define LOG_CRON (15<<3) /* cron/at subsystem */