Improved compatibility with other Unix systems.

This commit is contained in:
Philip Homburg 2005-06-10 15:12:03 +00:00
parent d9b609c70f
commit dc23e18cef
27 changed files with 659 additions and 17 deletions

View file

@ -55,6 +55,9 @@
#endif /* _ANSI */
/* This should be defined as restrict when a C99 compiler is used. */
#define _RESTRICT
/* Setting any of _MINIX, _POSIX_C_SOURCE or _POSIX2_SOURCE implies
* _POSIX_SOURCE. (Seems wrong to put this here in ANSI space.)
*/

11
include/arpa/inet.h Normal file
View file

@ -0,0 +1,11 @@
/*
arpa/inet.h
*/
#ifndef _ARPA__INET_H
#define _ARPA__INET_H
/* Open Group Base Specifications Issue 6 (not complete): */
char *inet_ntoa(struct in_addr in);
#endif /* _ARPA__INET_H */

236
include/inttypes.h Normal file
View file

@ -0,0 +1,236 @@
/* inttypes.h - Format conversions of integer types.
* Author: Kees J. Bot
* 4 Oct 2003
* Assumptions and bugs the same as for <stdint.h>
* Bug: Wide character integer conversion functions missing.
*/
#ifndef _INTTYPES_H
#define _INTTYPES_H
#ifndef _STDINT_H
#include <stdint.h>
#endif
#if !__cplusplus || defined(__STDC_FORMAT_MACROS)
/* Macros to print integers defined in <stdint.h>. The first group should
* not be used in code, they're merely here to build the second group.
* (The standard really went overboard here, only the first group is needed.)
*/
#define PRI8 ""
#define PRILEAST8 ""
#define PRIFAST8 ""
#define PRI16 ""
#define PRILEAST16 ""
#define PRIFAST16 ""
#if _WORD_SIZE == 2
#define PRI32 "l"
#define PRILEAST32 "l"
#define PRIFAST32 "l"
#else
#define PRI32 ""
#define PRILEAST32 ""
#define PRIFAST32 ""
#endif
#if _WORD_SIZE > 2 && __L64
#define PRI64 "l"
#define PRILEAST64 "l"
#define PRIFAST64 "l"
#endif
/* Macros for fprintf, the ones defined by the standard. */
#define PRId8 PRI8"d"
#define PRIdLEAST8 PRILEAST8"d"
#define PRIdFAST8 PRIFAST8"d"
#define PRId16 PRI16"d"
#define PRIdLEAST16 PRILEAST16"d"
#define PRIdFAST16 PRIFAST16"d"
#define PRId32 PRI32"d"
#define PRIdLEAST32 PRILEAST32"d"
#define PRIdFAST32 PRIFAST32"d"
#if _WORD_SIZE > 2 && __L64
#define PRId64 PRI64"d"
#define PRIdLEAST64 PRILEAST64"d"
#define PRIdFAST64 PRIFAST64"d"
#endif
#define PRIi8 PRI8"i"
#define PRIiLEAST8 PRILEAST8"i"
#define PRIiFAST8 PRIFAST8"i"
#define PRIi16 PRI16"i"
#define PRIiLEAST16 PRILEAST16"i"
#define PRIiFAST16 PRIFAST16"i"
#define PRIi32 PRI32"i"
#define PRIiLEAST32 PRILEAST32"i"
#define PRIiFAST32 PRIFAST32"i"
#if _WORD_SIZE > 2 && __L64
#define PRIi64 PRI64"i"
#define PRIiLEAST64 PRILEAST64"i"
#define PRIiFAST64 PRIFAST64"i"
#endif
#define PRIo8 PRI8"o"
#define PRIoLEAST8 PRILEAST8"o"
#define PRIoFAST8 PRIFAST8"o"
#define PRIo16 PRI16"o"
#define PRIoLEAST16 PRILEAST16"o"
#define PRIoFAST16 PRIFAST16"o"
#define PRIo32 PRI32"o"
#define PRIoLEAST32 PRILEAST32"o"
#define PRIoFAST32 PRIFAST32"o"
#if _WORD_SIZE > 2 && __L64
#define PRIo64 PRI64"o"
#define PRIoLEAST64 PRILEAST64"o"
#define PRIoFAST64 PRIFAST64"o"
#endif
#define PRIu8 PRI8"u"
#define PRIuLEAST8 PRILEAST8"u"
#define PRIuFAST8 PRIFAST8"u"
#define PRIu16 PRI16"u"
#define PRIuLEAST16 PRILEAST16"u"
#define PRIuFAST16 PRIFAST16"u"
#define PRIu32 PRI32"u"
#define PRIuLEAST32 PRILEAST32"u"
#define PRIuFAST32 PRIFAST32"u"
#if _WORD_SIZE > 2 && __L64
#define PRIu64 PRI64"u"
#define PRIuLEAST64 PRILEAST64"u"
#define PRIuFAST64 PRIFAST64"u"
#endif
#define PRIx8 PRI8"x"
#define PRIxLEAST8 PRILEAST8"x"
#define PRIxFAST8 PRIFAST8"x"
#define PRIx16 PRI16"x"
#define PRIxLEAST16 PRILEAST16"x"
#define PRIxFAST16 PRIFAST16"x"
#define PRIx32 PRI32"x"
#define PRIxLEAST32 PRILEAST32"x"
#define PRIxFAST32 PRIFAST32"x"
#if _WORD_SIZE > 2 && __L64
#define PRIx64 PRI64"x"
#define PRIxLEAST64 PRILEAST64"x"
#define PRIxFAST64 PRIFAST64"x"
#endif
#define PRIX8 PRI8"X"
#define PRIXLEAST8 PRILEAST8"X"
#define PRIXFAST8 PRIFAST8"X"
#define PRIX16 PRI16"X"
#define PRIXLEAST16 PRILEAST16"X"
#define PRIXFAST16 PRIFAST16"X"
#define PRIX32 PRI32"X"
#define PRIXLEAST32 PRILEAST32"X"
#define PRIXFAST32 PRIFAST32"X"
#if _WORD_SIZE > 2 && __L64
#define PRIX64 PRI64"X"
#define PRIXLEAST64 PRILEAST64"X"
#define PRIXFAST64 PRIFAST64"X"
#endif
/* Macros to scan integers with fscanf(), nonstandard first group. */
#define SCN8 "hh"
#define SCNLEAST8 "hh"
#define SCNFAST8 ""
#define SCN16 "h"
#define SCNLEAST16 "h"
#define SCNFAST16 ""
#if _WORD_SIZE == 2
#define SCN32 "l"
#define SCNLEAST32 "l"
#define SCNFAST32 "l"
#else
#define SCN32 ""
#define SCNLEAST32 ""
#define SCNFAST32 ""
#endif
#if _WORD_SIZE > 2 && __L64
#define SCN64 "l"
#define SCNLEAST64 "l"
#define SCNFAST64 "l"
#endif
/* Macros for fscanf, the ones defined by the standard. */
#define SCNd8 SCN8"d"
#define SCNdLEAST8 SCNLEAST8"d"
#define SCNdFAST8 SCNFAST8"d"
#define SCNd16 SCN16"d"
#define SCNdLEAST16 SCNLEAST16"d"
#define SCNdFAST16 SCNFAST16"d"
#define SCNd32 SCN32"d"
#define SCNdLEAST32 SCNLEAST32"d"
#define SCNdFAST32 SCNFAST32"d"
#if _WORD_SIZE > 2 && __L64
#define SCNd64 SCN64"d"
#define SCNdLEAST64 SCNLEAST64"d"
#define SCNdFAST64 SCNFAST64"d"
#endif
#define SCNi8 SCN8"i"
#define SCNiLEAST8 SCNLEAST8"i"
#define SCNiFAST8 SCNFAST8"i"
#define SCNi16 SCN16"i"
#define SCNiLEAST16 SCNLEAST16"i"
#define SCNiFAST16 SCNFAST16"i"
#define SCNi32 SCN32"i"
#define SCNiLEAST32 SCNLEAST32"i"
#define SCNiFAST32 SCNFAST32"i"
#if _WORD_SIZE > 2 && __L64
#define SCNi64 SCN64"i"
#define SCNiLEAST64 SCNLEAST64"i"
#define SCNiFAST64 SCNFAST64"i"
#endif
#define SCNo8 SCN8"o"
#define SCNoLEAST8 SCNLEAST8"o"
#define SCNoFAST8 SCNFAST8"o"
#define SCNo16 SCN16"o"
#define SCNoLEAST16 SCNLEAST16"o"
#define SCNoFAST16 SCNFAST16"o"
#define SCNo32 SCN32"o"
#define SCNoLEAST32 SCNLEAST32"o"
#define SCNoFAST32 SCNFAST32"o"
#if _WORD_SIZE > 2 && __L64
#define SCNo64 SCN64"o"
#define SCNoLEAST64 SCNLEAST64"o"
#define SCNoFAST64 SCNFAST64"o"
#endif
#define SCNu8 SCN8"u"
#define SCNuLEAST8 SCNLEAST8"u"
#define SCNuFAST8 SCNFAST8"u"
#define SCNu16 SCN16"u"
#define SCNuLEAST16 SCNLEAST16"u"
#define SCNuFAST16 SCNFAST16"u"
#define SCNu32 SCN32"u"
#define SCNuLEAST32 SCNLEAST32"u"
#define SCNuFAST32 SCNFAST32"u"
#if _WORD_SIZE > 2 && __L64
#define SCNu64 SCN64"u"
#define SCNuLEAST64 SCNLEAST64"u"
#define SCNuFAST64 SCNFAST64"u"
#endif
#define SCNx8 SCN8"x"
#define SCNxLEAST8 SCNLEAST8"x"
#define SCNxFAST8 SCNFAST8"x"
#define SCNx16 SCN16"x"
#define SCNxLEAST16 SCNLEAST16"x"
#define SCNxFAST16 SCNFAST16"x"
#define SCNx32 SCN32"x"
#define SCNxLEAST32 SCNLEAST32"x"
#define SCNxFAST32 SCNFAST32"x"
#if _WORD_SIZE > 2 && __L64
#define SCNx64 SCN64"x"
#define SCNxLEAST64 SCNLEAST64"x"
#define SCNxFAST64 SCNFAST64"x"
#endif
#endif /* !__cplusplus || __STDC_FORMAT_MACROS */
/* Integer conversion functions for [u]intmax_t. */
#define stroimax(nptr, endptr, base) strtol(nptr, endptr, base)
#define stroumax(nptr, endptr, base) strtoul(nptr, endptr, base)
#endif /* _INTTYPES_H */

View file

@ -26,6 +26,7 @@
/* Word size in bytes (a constant equal to sizeof(int)). */
#if __ACK__
#define _WORD_SIZE _EM_WSIZE
#define _PTR_SIZE _EM_WSIZE
#endif
/* Number of slots in the process table for non-kernel processes. */

6
include/netdb.h Normal file
View file

@ -0,0 +1,6 @@
/*
netdb.h
*/
/* Open Group Base Specifications Issue 6 (not complete) */
#include <net/gen/netdb.h>

21
include/netinet/in.h Normal file
View file

@ -0,0 +1,21 @@
/*
netinet/in.h
*/
#ifndef _NETINET__IN_H
#define _NETINET__IN_H
/* Can we include <stdint.h> here or do we need an additional header that is
* safe to include?
*/
#include <stdint.h>
/* Open Group Base Specifications Issue 6 (not complete) */
typedef uint32_t in_addr_t;
struct in_addr
{
in_addr_t s_addr;
};
#endif /* _NETINET__IN_H */

221
include/stdint.h Normal file
View file

@ -0,0 +1,221 @@
/* stdint.h - Standard sized integer types. Author: Kees J. Bot
* 4 Oct 2003
*
* Assumption: Long is the biggest type.
* Bug: C99 requires a 64 bit type, and long isn't 64 bits yet, and
* will never be 64 bits under 16-bits Minix.
* Omission: Limits like PTR_DIFF_MAX not here yet, maybe <limits.h>?
*/
#ifndef _STDINT_H
#define _STDINT_H
#ifndef _MINIX__TYPES_H
#include <sys/types.h>
#endif
#if (_WORD_SIZE != 2 && _WORD_SIZE != 4) || \
(_PTR_SIZE != _WORD_SIZE && _PTR_SIZE != 2*_WORD_SIZE)
#error Odd word or pointer sizes
#endif
/* Integer types of precisely the given bitsize. */
typedef i8_t int8_t;
typedef i16_t int16_t;
typedef i32_t int32_t;
#if _WORD_SIZE > 2 && __L64
typedef i64_t int64_t;
#endif
typedef u8_t uint8_t;
typedef u16_t uint16_t;
typedef u32_t uint32_t;
#if _WORD_SIZE > 2 && __L64
typedef u64_t uint64_t;
#endif
/* Integer types of at least the given bitsize. */
typedef int8_t int_least8_t;
typedef int16_t int_least16_t;
typedef int32_t int_least32_t;
#if _WORD_SIZE > 2 && __L64
typedef int64_t int_least64_t;
#endif
typedef uint8_t uint_least8_t;
typedef uint16_t uint_least16_t;
typedef uint32_t uint_least32_t;
#if _WORD_SIZE > 2 && __L64
typedef uint64_t uint_least64_t;
#endif
/* Fast integer types of at least the given bitsize. */
#if _WORD_SIZE == 2
typedef int16_t int_fast8_t;
typedef int16_t int_fast16_t;
#else
typedef int32_t int_fast8_t;
typedef int32_t int_fast16_t;
#endif
typedef int32_t int_fast32_t;
#if _WORD_SIZE > 2 && __L64
typedef int64_t int_fast64_t;
#endif
#if _WORD_SIZE == 2
typedef uint16_t uint_fast8_t;
typedef uint16_t uint_fast16_t;
#else
typedef uint32_t uint_fast8_t;
typedef uint32_t uint_fast16_t;
#endif
typedef uint32_t uint_fast32_t;
#if _WORD_SIZE > 2 && __L64
typedef uint64_t uint_fast64_t;
#endif
/* Integer type capable of holding a pointer and the largest integer type. */
#if _PTR_SIZE == _WORD_SIZE
typedef int intptr_t;
typedef unsigned uintptr_t;
#elif _PTR_SIZE == 2*_WORD_SIZE
typedef long intptr_t;
typedef unsigned long uintptr_t;
#endif
typedef long intmax_t;
typedef unsigned long uintmax_t;
#if !__cplusplus || defined(__STDC_LIMIT_MACROS)
#ifndef _LIMITS_H
#include <limits.h>
#endif
/* Range definitions for each of the above types conform <limits.h>. */
#define INT8_MIN (-INT8_MAX-1)
#define INT16_MIN (-INT16_MAX-1)
#define INT32_MIN (-INT32_MAX-1)
#if _WORD_SIZE > 2 && __L64
#define INT64_MIN (-INT64_MAX-1)
#endif
#define INT8_MAX 127
#define INT16_MAX 32767
#define INT32_MAX 2147483647
#if _WORD_SIZE > 2 && __L64
#define INT64_MAX 9223372036854775807
#endif
#define UINT8_MAX 255
#define UINT16_MAX 65535
#define UINT32_MAX 4294967295
#if _WORD_SIZE > 2 && __L64
#define UINT64_MAX 18446744073709551615
#endif
#define INT_LEAST8_MIN INT8_MIN
#define INT_LEAST16_MIN INT16_MIN
#define INT_LEAST32_MIN INT32_MIN
#if _WORD_SIZE > 2 && __L64
#define INT_LEAST64_MIN INT64_MIN
#endif
#define INT_LEAST8_MAX INT8_MAX
#define INT_LEAST16_MAX INT16_MAX
#define INT_LEAST32_MAX INT32_MAX
#if _WORD_SIZE > 2 && __L64
#define INT_LEAST64_MAX INT64_MAX
#endif
#define UINT_LEAST8_MAX UINT8_MAX
#define UINT_LEAST16_MAX UINT16_MAX
#define UINT_LEAST32_MAX UINT32_MAX
#if _WORD_SIZE > 2 && __L64
#define UINT_LEAST64_MAX UINT64_MAX
#endif
#define INT_FAST8_MIN (-INT_FAST8_MAX-1)
#define INT_FAST16_MIN (-INT_FAST16_MAX-1)
#define INT_FAST32_MIN INT32_MIN
#if _WORD_SIZE > 2 && __L64
#define INT_FAST64_MIN INT64_MIN
#endif
#if _WORD_SIZE == 2
#define INT_FAST8_MAX INT16_MAX
#define INT_FAST16_MAX INT16_MAX
#else
#define INT_FAST8_MAX INT32_MAX
#define INT_FAST16_MAX INT32_MAX
#endif
#define INT_FAST32_MAX INT32_MAX
#if _WORD_SIZE > 2 && __L64
#define INT_FAST64_MAX INT64_MAX
#endif
#if _WORD_SIZE == 2
#define UINT_FAST8_MAX UINT16_MAX
#define UINT_FAST16_MAX UINT16_MAX
#else
#define UINT_FAST8_MAX UINT32_MAX
#define UINT_FAST16_MAX UINT32_MAX
#endif
#define UINT_FAST32_MAX UINT32_MAX
#if _WORD_SIZE > 2 && __L64
#define UINT_FAST64_MAX UINT64_MAX
#endif
#if _PTR_SIZE == _WORD_SIZE
#define INTPTR_MIN INT_MIN
#define INTPTR_MAX INT_MAX
#define UINTPTR_MAX UINT_MAX
#elif _PTR_SIZE > _WORD_SIZE
#define INTPTR_MIN LONG_MIN
#define INTPTR_MAX LONG_MAX
#define UINTPTR_MAX ULONG_MAX
#endif
#define INTMAX_MIN LONG_MIN
#define INTMAX_MAX LONG_MAX
#define UINTMAX_MAX ULONG_MAX
#endif /* !__cplusplus || __STDC_LIMIT_MACROS */
#ifndef __CONCAT
#define __CONCAT(x,y) x ## y
#endif
/* Constants of the proper type. */
#define INT8_C(c) c
#define INT16_C(c) c
#if _WORD_SIZE == 2
#define INT32_C(c) __CONCAT(c,l)
#else
#define INT32_C(c) c
#endif
#if _WORD_SIZE > 2 && __L64
#define INT64_C(c) __CONCAT(c,l)
#endif
#define UINT8_C(c) __CONCAT(c,u)
#define UINT16_C(c) __CONCAT(c,u)
#if _WORD_SIZE == 2
#define UINT32_C(c) __CONCAT(c,lu)
#else
#define UINT32_C(c) __CONCAT(c,u)
#endif
#if _WORD_SIZE > 2 && __L64
#define UINT64_C(c) __CONCAT(c,lu)
#endif
#if _WORD_SIZE == 2 || !__L64
#define INTMAX_C(c) INT32_C(c)
#define UINTMAX_C(c) UINT32_C(c)
#else
#define INTMAX_C(c) INT64_C(c)
#define UINTMAX_C(c) UINT64_C(c)
#endif
#endif /* _STDINT_H */
/*
* $PchId: stdint.h,v 1.2 2005/01/27 17:32:00 philip Exp $
*/

View file

@ -12,6 +12,8 @@
#include <ansi.h>
#endif
#include <sys/time.h>
typedef struct {
char state;
char op;

6
include/sys/socket.h Normal file
View file

@ -0,0 +1,6 @@
/*
sys/socket.h
*/
/* Open Group Base Specifications Issue 6 (not complete) */
#include <net/gen/socket.h>

View file

@ -29,6 +29,7 @@ struct stat {
* extensions such as S_IFREG != (mode_t) S_IFREG when ints are 32 bits.
*/
#define S_IFMT ((mode_t) 0170000) /* type of file */
#define S_IFLNK ((mode_t) 0120000) /* symbolic link, not implemented */
#define S_IFREG ((mode_t) 0100000) /* regular */
#define S_IFBLK 0060000 /* block special */
#define S_IFDIR 0040000 /* directory */
@ -61,7 +62,7 @@ struct stat {
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) /* is a char spec */
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) /* is a block spec */
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* is a pipe/FIFO */
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* is a sym link */
/* Function Prototypes. */
_PROTOTYPE( int chmod, (const char *_path, Mode_t _mode) );
@ -71,4 +72,7 @@ _PROTOTYPE( int mkfifo, (const char *_path, Mode_t _mode) );
_PROTOTYPE( int stat, (const char *_path, struct stat *_buf) );
_PROTOTYPE( mode_t umask, (Mode_t _cmask) );
/* Open Group Base Specifications Issue 6 (not complete) */
_PROTOTYPE( int lstat, (const char *_path, struct stat *_buf) );
#endif /* _STAT_H */

22
include/sys/time.h Normal file
View file

@ -0,0 +1,22 @@
/*
sys/time.h
*/
#ifndef _SYS__TIME_H
#define _SYS__TIME_H
#include <ansi.h>
/* Open Group Base Specifications Issue 6 (not complete) */
struct timeval
{
long /*time_t*/ tv_sec;
long /*useconds_t*/ tv_usec;
};
int gettimeofday(struct timeval *_RESTRICT tp, void *_RESTRICT tzp);
/* Compatibility with other Unix systems */
int settimeofday(const struct timeval *tp, const void *tzp);
#endif /* _SYS__TIME_H */

View file

@ -43,6 +43,9 @@ typedef long clock_t; /* unit for system accounting */
typedef unsigned long sigset_t;
#endif
/* Open Group Base Specifications Issue 6 (not complete) */
typedef long useconds_t; /* Time in microseconds */
/* Types used in disk, inode, etc. data structures. */
typedef short dev_t; /* holds (major|minor) device pair */
typedef char gid_t; /* group id */
@ -116,4 +119,10 @@ typedef int Mode_t;
/* Signal handler type, e.g. SIG_IGN */
typedef void _PROTOTYPE( (*sighandler_t), (int) );
/* Compatibility with other systems */
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
#endif /* _TYPES_H */

View file

@ -70,7 +70,6 @@ _PROTOTYPE( void tzset, (void) );
_PROTOTYPE( int stime, (time_t *_top) );
#endif
struct timeval { long tv_sec, tv_usec; };
extern long timezone;
#endif /* _TIME_H */

View file

@ -130,6 +130,9 @@ _PROTOTYPE( char *ttyname, (int _fd) );
_PROTOTYPE( int unlink, (const char *_path) );
_PROTOTYPE( ssize_t write, (int _fd, const void *_buf, size_t _n) );
/* Open Group Base Specifications Issue 6 (not complete) */
_PROTOTYPE( int symlink, (const char *path1, const char *path2) );
#ifdef _MINIX
#ifndef _TYPE_H
#include <minix/type.h>
@ -156,6 +159,11 @@ _PROTOTYPE( int getprocnr, (int *proc_nr) );
_PROTOTYPE( int findproc, (char *proc_name, int *proc_nr) );
_PROTOTYPE( int allocmem, (phys_bytes size, phys_bytes *base) );
_PROTOTYPE( int freemem, (phys_bytes size, phys_bytes base) );
/* For compatibility with other Unix systems */
_PROTOTYPE( int getpagesize, (void) );
_PROTOTYPE( int setgroups, (int ngroups, const gid_t *gidset) );
#endif
_PROTOTYPE( int setcache, (int kb));

View file

@ -58,9 +58,6 @@ struct in_addr
{
ipaddr_t s_addr;
};
typedef u32_t u_long;
typedef u16_t u_short;
typedef u8_t u_char;
union querybuf;
extern int dn_skipname _ARGS(( const u_char *comp_dn, const u_char *eom ));

View file

@ -29,10 +29,6 @@ static char sccsid[] = "@(#)res_comp.c 6.18 (Berkeley) 6/27/90";
#include <net/gen/nameser.h>
#include <net/gen/resolv.h>
typedef u8_t u_char;
typedef u16_t u_short;
typedef u32_t u_long;
static int dn_find _ARGS(( const u_char *exp_dn, const u_char *msg,
u_char **dnptrs, u_char **lastdnptr ));
int dn_skipname _ARGS(( const u_char *comp_dn, const u_char *eom ));

View file

@ -32,10 +32,6 @@ static char sccsid[] = "@(#)res_mkquery.c 6.12 (Berkeley) 6/1/90";
#include <net/gen/nameser.h>
#include <net/gen/resolv.h>
typedef u16_t u_short;
typedef unsigned u_int;
typedef u32_t u_long;
#define bzero(b,l) memset(b,0,l)
#define bcopy(s,d,l) memcpy(d,s,l)

View file

@ -35,8 +35,6 @@ static char sccsid[] = "@(#)res_query.c 5.7 (Berkeley) 6/1/90";
#include <net/gen/netdb.h>
#include <net/gen/resolv.h>
typedef u8_t u_char;
#define bcopy(s,d,l) memcpy(d,s,l)
#define hostalias __hostalias

View file

@ -80,8 +80,6 @@ static char sccsid[] = "@(#)res_send.c 6.27 (Berkeley) 2/24/91";
#include <net/gen/udp_hdr.h>
#include <net/gen/udp_io.h>
typedef u16_t u_short;
static int tcp_connect _ARGS(( ipaddr_t host, Tcpport_t port, int *terrno ));
static int tcpip_writeall _ARGS(( int fd, const char *buf, size_t siz ));
static int udp_connect _ARGS(( void ));

View file

@ -33,6 +33,7 @@ OBJECTS = \
$(LIBRARY)(getgrent.o) \
$(LIBRARY)(getlogin.o) \
$(LIBRARY)(getopt.o) \
$(LIBRARY)(getpagesize.o) \
$(LIBRARY)(getpass.o) \
$(LIBRARY)(getpwent.o) \
$(LIBRARY)(getttyent.o) \
@ -51,6 +52,8 @@ OBJECTS = \
$(LIBRARY)(popen.o) \
$(LIBRARY)(putenv.o) \
$(LIBRARY)(putw.o) \
$(LIBRARY)(setgroups.o) \
$(LIBRARY)(settimeofday.o) \
$(LIBRARY)(stderr.o) \
$(LIBRARY)(swab.o) \
$(LIBRARY)(syscall.o) \
@ -144,6 +147,9 @@ $(LIBRARY)(getlogin.o): getlogin.c
$(LIBRARY)(getopt.o): getopt.c
$(CC1) getopt.c
$(LIBRARY)(getpagesize.o): getpagesize.c
$(CC1) getpagesize.c
$(LIBRARY)(getpass.o): getpass.c
$(CC1) getpass.c
@ -204,6 +210,12 @@ $(LIBRARY)(putw.o): putw.c
$(LIBRARY)(rindex.o): rindex.c
$(CC1) rindex.c
$(LIBRARY)(setgroups.o): setgroups.c
$(CC1) setgroups.c
$(LIBRARY)(settimeofday.o): settimeofday.c
$(CC1) settimeofday.c
$(LIBRARY)(stderr.o): stderr.c
$(CC1) stderr.c

11
lib/other/getpagesize.c Normal file
View file

@ -0,0 +1,11 @@
/*
getpagesize.c
*/
#include <unistd.h>
int getpagesize(void)
{
/* We don't have paging. Pretend that we do. */
return 4096;
}

15
lib/other/setgroups.c Normal file
View file

@ -0,0 +1,15 @@
/*
setgroups.c
*/
#include <errno.h>
#include <unistd.h>
int setgroups(int ngroups, const gid_t *gidset)
{
/* Not implemented */
errno= ENOSYS;
return -1;
}

14
lib/other/settimeofday.c Normal file
View file

@ -0,0 +1,14 @@
/*
settimeofday.c
*/
#define stime _stime
#include <sys/time.h>
#include <time.h>
int settimeofday(const struct timeval *tp, const void *tzp)
{
/* Ignore time zones */
return stime(&tp->tv_sec);
}

View file

@ -95,6 +95,9 @@ OBJECTS = \
$(LIBRARY)(_wait.o) \
$(LIBRARY)(_waitpid.o) \
$(LIBRARY)(_write.o) \
$(LIBRARY)(gettimeofday.o) \
$(LIBRARY)(lstat.o) \
$(LIBRARY)(symlink.o) \
$(LIBRARY): $(OBJECTS)
aal cr $@ *.o
@ -363,3 +366,13 @@ $(LIBRARY)(_waitpid.o): _waitpid.c
$(LIBRARY)(_write.o): _write.c
$(CC1) _write.c
$(LIBRARY)(gettimeofday.o): gettimeofday.c
$(CC1) gettimeofday.c
$(LIBRARY)(lstat.o): lstat.c
$(CC1) lstat.c
$(LIBRARY)(symlink.o): symlink.c
$(CC1) symlink.c

18
lib/posix/gettimeofday.c Normal file
View file

@ -0,0 +1,18 @@
/*
gettimeofday.c
*/
#include <sys/time.h>
#include <time.h>
int gettimeofday(struct timeval *_RESTRICT tp, void *_RESTRICT tzp)
{
if (time(&tp->tv_sec) == (time_t)-1)
return -1;
tp->tv_usec= 0;
/* tzp has to be a nul pointer according to the standard. Otherwise
* behavior is undefined. We can just ignore tzp.
*/
return 0;
}

13
lib/posix/lstat.c Normal file
View file

@ -0,0 +1,13 @@
/*
lstat.c
*/
#define stat _stat
#include <sys/stat.h>
int lstat(const char *path, struct stat *sb)
{
/* Without symlinks, lstat is equal to stat */
return stat(path, sb);
}

12
lib/posix/symlink.c Normal file
View file

@ -0,0 +1,12 @@
/*
symlink.c
*/
#include <errno.h>
#include <unistd.h>
int symlink(const char *path1, const char *path2)
{
errno= ENOSYS;
return -1;
}