diff -ru nbsdsrc/src/include/Makefile nbsd_include/Makefile --- nbsdsrc/src/include/Makefile +++ nbsd_include/Makefile @@ -7,10 +7,28 @@ # Missing: mp.h +.if defined(__MINIX) +# Avoid installing: kvm.h lwp.h sa.h (latter not installed anyway) INCS= a.out.h aio.h ar.h assert.h atomic.h \ bitstring.h bm.h cdbr.h cdbw.h complex.h cpio.h ctype.h \ db.h dirent.h disktab.h dlfcn.h err.h errno.h fenv.h fmtmsg.h fnmatch.h \ fstab.h fts.h ftw.h getopt.h glob.h grp.h ifaddrs.h iconv.h \ + inttypes.h iso646.h langinfo.h libgen.h \ + limits.h link.h link_aout.h link_elf.h locale.h \ + login_cap.h malloc.h math.h md2.h \ + memory.h mntopts.h monetary.h mpool.h mqueue.h \ + ndbm.h netconfig.h netdb.h netgroup.h nlist.h nl_types.h nsswitch.h \ + paths.h pwd.h randomid.h ranlib.h re_comp.h regex.h regexp.h \ + resolv.h res_update.h rmt.h sched.h search.h semaphore.h setjmp.h \ + sgtty.h signal.h stab.h stdbool.h stddef.h stdio.h stdlib.h string.h \ + strings.h stringlist.h struct.h sysexits.h tar.h time.h \ + ttyent.h tzfile.h ucontext.h ulimit.h unistd.h util.h utime.h utmp.h \ + utmpx.h uuid.h varargs.h vis.h wchar.h wctype.h wordexp.h +.else +INCS= a.out.h aio.h ar.h assert.h atomic.h \ + bitstring.h bm.h cdbr.h cdbw.h complex.h cpio.h ctype.h \ + db.h dirent.h disktab.h dlfcn.h err.h errno.h fenv.h fmtmsg.h fnmatch.h \ + fstab.h fts.h ftw.h getopt.h glob.h grp.h ifaddrs.h iconv.h \ inttypes.h iso646.h kvm.h langinfo.h libgen.h \ limits.h link.h link_aout.h link_elf.h locale.h \ login_cap.h lwp.h malloc.h math.h md2.h \ @@ -22,6 +40,7 @@ strings.h stringlist.h struct.h sysexits.h tar.h time.h \ ttyent.h tzfile.h ucontext.h ulimit.h unistd.h util.h utime.h utmp.h \ utmpx.h uuid.h varargs.h vis.h wchar.h wctype.h wordexp.h +.endif INCS+= arpa/ftp.h arpa/inet.h arpa/nameser.h arpa/nameser_compat.h \ arpa/telnet.h arpa/tftp.h INCS+= protocols/dumprestore.h protocols/routed.h protocols/rwhod.h \ @@ -42,8 +61,22 @@ INCSDIR= /usr/include +.if defined(__MINIX) +# RPC is not compiled in the libc. This include also needs +# rpcgen, which can be compiled if needed. +.else SUBDIR= rpc +.endif +.if !defined(__MINIX) SUBDIR+= ../common/include/prop +.endif + +.if defined(__MINIX) +.include "${MINIXSRCDIR}/common/include/Makefile.inc" +SUBDIR+= arch/${MACHINE} +SUBDIR+= arch sys minix +SUBDIR+= net netinet netinet6 +.endif .include .include diff -ru nbsdsrc/src/include/a.out.h nbsd_include/a.out.h --- nbsdsrc/src/include/a.out.h +++ nbsd_include/a.out.h @@ -60,9 +60,14 @@ #ifndef _AOUT_H_ #define _AOUT_H_ +#ifdef __minix +#include +#else /* !__minix */ + #include #define _AOUT_INCLUDE_ #include +#endif /* !__minix */ #endif /* !_AOUT_H_ */ diff -ru nbsdsrc/src/include/arpa/nameser_compat.h nbsd_include/arpa/nameser_compat.h --- nbsdsrc/src/include/arpa/nameser_compat.h +++ nbsd_include/arpa/nameser_compat.h @@ -133,6 +133,14 @@ unsigned arcount :16; /*%< number of resource entries */ } HEADER; +#ifdef _MINIX +#define dh_id id +#define dh_qdcount qdcount +#define dh_ancount ancount +#define dh_nscount nscount +#define dh_arcount arcount +#endif + #define PACKETSZ NS_PACKETSZ #define MAXDNAME NS_MAXDNAME #define MAXCDNAME NS_MAXCDNAME diff -ru nbsdsrc/src/include/dirent.h nbsd_include/dirent.h --- nbsdsrc/src/include/dirent.h +++ nbsd_include/dirent.h @@ -43,16 +43,20 @@ */ #include +#ifndef __minix #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) #define d_ino d_fileno /* backward compatibility */ #endif +#endif /* !__minix */ typedef struct _dirdesc DIR; #if defined(_NETBSD_SOURCE) +#ifndef __minix /* definitions for library routines operating on directories. */ #define DIRBLKSIZ 1024 +#endif /* structure describing an open directory. */ struct _dirdesc { diff -ru nbsdsrc/src/include/fts.h nbsd_include/fts.h --- nbsdsrc/src/include/fts.h +++ nbsd_include/fts.h @@ -75,7 +75,9 @@ #define FTS_PHYSICAL 0x010 /* physical walk */ #define FTS_SEEDOT 0x020 /* return dot and dot-dot */ #define FTS_XDEV 0x040 /* don't cross devices */ +#ifndef __minix #define FTS_WHITEOUT 0x080 /* return whiteout information */ +#endif #define FTS_OPTIONMASK 0x0ff /* valid user option mask */ #define FTS_NAMEONLY 0x100 /* (private) child names only */ diff -ru nbsdsrc/src/include/limits.h nbsd_include/limits.h --- nbsdsrc/src/include/limits.h +++ nbsd_include/limits.h @@ -113,4 +113,9 @@ #include #include +#ifdef __minix +#define SYMLOOP_MAX 16 +#define SYMLINK_MAX 1024 +#endif + #endif /* !_LIMITS_H_ */ diff -ru nbsdsrc/src/include/netdb.h nbsd_include/netdb.h --- nbsdsrc/src/include/netdb.h +++ nbsd_include/netdb.h @@ -131,6 +131,9 @@ #ifndef _PATH_SERVICES_DB #define _PATH_SERVICES_DB "/var/db/services.db" #endif +#ifdef __minix +#define _PATH_SERVACCES "/etc/serv.access" +#endif #endif __BEGIN_DECLS diff -ru nbsdsrc/src/include/paths.h nbsd_include/paths.h --- nbsdsrc/src/include/paths.h +++ nbsd_include/paths.h @@ -124,5 +124,9 @@ #define _PATH_VI "/usr/bin/vi" #endif +#ifdef __minix +#include +#endif /* !__minix */ + #endif /* !_PATHS_H_ */ diff -ru nbsdsrc/src/include/pwd.h nbsd_include/pwd.h --- nbsdsrc/src/include/pwd.h +++ nbsd_include/pwd.h @@ -61,6 +61,14 @@ * SUCH DAMAGE. */ +#if defined(__minix) && defined(_MINIX_COMPAT) +#include +/* Avoid inclusion of the rest of the header. */ +#ifndef _PWD_H_ +#define _PWD_H_ +#endif +#endif /* __minix && _MINIX_COMPAT */ + #ifndef _PWD_H_ #define _PWD_H_ diff -ru nbsdsrc/src/include/sched.h nbsd_include/sched.h --- nbsdsrc/src/include/sched.h +++ nbsd_include/sched.h @@ -29,6 +29,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#ifdef __minix +#define _SCHED_H_ +#endif /* !__minix */ #ifndef _SCHED_H_ #define _SCHED_H_ diff -ru nbsdsrc/src/include/signal.h nbsd_include/signal.h --- nbsdsrc/src/include/signal.h +++ nbsd_include/signal.h @@ -62,6 +62,7 @@ int __libc_sigaction14(int, const struct sigaction * __restrict, struct sigaction * __restrict); +#ifndef __minix #if (_POSIX_C_SOURCE - 0L) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \ defined(_NETBSD_SOURCE) int pthread_sigmask(int, const sigset_t * __restrict, @@ -73,6 +74,7 @@ #define pthread_sigmask __libc_thr_sigsetmask #endif /* __LIBPTHREAD_SOURCE__ */ #endif +#endif /* __minix */ #ifndef __LIBC12_SOURCE__ int sigaction(int, const struct sigaction * __restrict, @@ -160,11 +162,13 @@ (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE) int killpg(pid_t, int); int siginterrupt(int, int); +#ifndef __minix int sigstack(const struct sigstack *, struct sigstack *); #ifndef __LIBC12_SOURCE__ int sigaltstack(const stack_t * __restrict, stack_t * __restrict) __RENAME(__sigaltstack14); #endif +#endif /* !__minix */ int sighold(int); int sigignore(int); int sigpause(int); @@ -178,10 +182,13 @@ */ #if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \ defined(_NETBSD_SOURCE) +#ifndef __minix int sigwait (const sigset_t * __restrict, int * __restrict); int sigwaitinfo(const sigset_t * __restrict, siginfo_t * __restrict); +#endif /* !__minix */ void psiginfo(const siginfo_t *, const char *); +#ifndef __minix #ifndef __LIBC12_SOURCE__ struct timespec; int sigtimedwait(const sigset_t * __restrict, @@ -191,15 +198,18 @@ siginfo_t * __restrict, struct timespec * __restrict) __RENAME(____sigtimedwait50); #endif +#endif /* !__minix */ #endif /* _POSIX_C_SOURCE >= 200112 || _XOPEN_SOURCE_EXTENDED || ... */ #if defined(_NETBSD_SOURCE) +#ifndef __minix #ifndef __PSIGNAL_DECLARED #define __PSIGNAL_DECLARED /* also in unistd.h */ void psignal(int, const char *); #endif /* __PSIGNAL_DECLARED */ +#endif /* !__minix */ int sigblock(int); int sigsetmask(int); #endif /* _NETBSD_SOURCE */ diff -ru nbsdsrc/src/include/stdio.h nbsd_include/stdio.h --- nbsdsrc/src/include/stdio.h +++ nbsd_include/stdio.h @@ -274,7 +274,7 @@ __printflike(2, 0); #endif -#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) +#if !defined(__minix) && (defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) int rename (const char *, const char *) __RENAME(__posix_rename); #else int rename (const char *, const char *); diff -ru nbsdsrc/src/include/stdlib.h nbsd_include/stdlib.h --- nbsdsrc/src/include/stdlib.h +++ nbsd_include/stdlib.h @@ -244,6 +244,8 @@ void *alloca(int); /* built-in for gcc */ #elif defined(__PCC__) && !defined(__GNUC__) #define alloca(size) __builtin_alloca(size) +#elif (__GNUC__ >= 2) +#define alloca(size) __builtin_alloca(size) #else void *alloca(size_t); #endif /* __GNUC__ */ @@ -265,9 +267,11 @@ void csetexpandtc(int); int daemon(int, int); +#ifndef __minix #ifndef __LIBC12_SOURCE__ __aconst char *devname(dev_t, mode_t) __RENAME(__devname50); #endif +#endif /* !__minix */ #define HN_DECIMAL 0x01 #define HN_NOSPACE 0x02 @@ -280,7 +284,9 @@ int humanize_number(char *, size_t, int64_t, const char *, int, int); int dehumanize_number(const char *, int64_t *); +#ifndef __minix devmajor_t getdevmajor(const char *, mode_t); +#endif /* !__minix */ int getloadavg(double [], int); int getenv_r(const char *, char *, size_t); diff -ru nbsdsrc/src/include/time.h nbsd_include/time.h --- nbsdsrc/src/include/time.h +++ nbsd_include/time.h @@ -65,12 +65,18 @@ #undef _BSD_CLOCKID_T_ #endif +#ifndef __minix #ifdef _BSD_TIMER_T_ typedef _BSD_TIMER_T_ timer_t; #undef _BSD_TIMER_T_ #endif +#endif /* !__minix */ +#ifdef __minix +#define CLOCKS_PER_SEC 60 +#else #define CLOCKS_PER_SEC 100 +#endif struct tm { int tm_sec; /* seconds after the minute [0-61] */ @@ -110,7 +116,11 @@ * need to include unistd.h */ long __sysconf(int); +#ifdef __minix +#define CLK_TCK (__sysconf(3)) +#else #define CLK_TCK (__sysconf(39)) +#endif /* !__minix */ #endif #endif @@ -143,22 +153,28 @@ struct sigevent; struct itimerspec; #ifndef __LIBC12_SOURCE__ +#ifndef __minix int clock_getres(clockid_t, struct timespec *) __RENAME(__clock_getres50); int clock_gettime(clockid_t, struct timespec *) __RENAME(__clock_gettime50); int clock_settime(clockid_t, const struct timespec *) __RENAME(__clock_settime50); +#endif /* !__minix */ int nanosleep(const struct timespec *, struct timespec *) __RENAME(__nanosleep50); +#ifndef __minix int timer_gettime(timer_t, struct itimerspec *) __RENAME(__timer_gettime50); int timer_settime(timer_t, int, const struct itimerspec * __restrict, struct itimerspec * __restrict) __RENAME(__timer_settime50); +#endif /* !__minix */ #endif +#ifndef __minix int timer_create(clockid_t, struct sigevent * __restrict, timer_t * __restrict); int timer_delete(timer_t); int timer_getoverrun(timer_t); +#endif /* __minix */ #endif /* _POSIX_C_SOURCE >= 199309 || _XOPEN_SOURCE >= 500 || ... */ #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \ @@ -204,6 +220,10 @@ __attribute__((__format__(__strftime__, 4, 0))); #endif /* _NETBSD_SOURCE */ + +#ifdef _MINIX +int stime(time_t *_top); +#endif /* _MINIX */ __END_DECLS diff -ru nbsdsrc/src/include/unistd.h nbsd_include/unistd.h --- nbsdsrc/src/include/unistd.h +++ nbsd_include/unistd.h @@ -88,7 +88,7 @@ int access(const char *, int); unsigned int alarm(unsigned int); int chdir(const char *); -#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) +#if !defined(__minix) && (defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) int chown(const char *, uid_t, gid_t) __RENAME(__posix_chown); #else int chown(const char *, uid_t, gid_t); @@ -133,7 +133,9 @@ #endif int rmdir(const char *); int setgid(gid_t); +#ifndef __minix int setpgid(pid_t, pid_t); +#endif /* !__minix */ pid_t setsid(void); int setuid(uid_t); unsigned int sleep(unsigned int); @@ -192,7 +194,9 @@ */ #if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \ defined(_NETBSD_SOURCE) +#ifndef __minix int fdatasync(int); +#endif /* !__minix */ int fsync(int); #endif @@ -222,7 +226,9 @@ __aconst char *crypt(const char *, const char *); int encrypt(char *, int); char *getpass(const char *); +#ifndef __minix pid_t getsid(pid_t); +#endif /* !__minix */ #endif @@ -243,7 +249,7 @@ int brk(void *); int fchdir(int); -#if defined(_XOPEN_SOURCE) +#if !defined(__minix) && defined(_XOPEN_SOURCE) int fchown(int, uid_t, gid_t) __RENAME(__posix_fchown); #else int fchown(int, uid_t, gid_t); @@ -253,29 +259,37 @@ int gethostname(char *, size_t); __pure int getpagesize(void); /* legacy */ +#ifndef __minix pid_t getpgid(pid_t); +#endif /* !__minix */ +#ifndef __minix #if defined(_XOPEN_SOURCE) int lchown(const char *, uid_t, gid_t) __RENAME(__posix_lchown); #else int lchown(const char *, uid_t, gid_t); #endif +#endif /* !__minix */ int lockf(int, int, off_t); #if __SSP_FORTIFY_LEVEL == 0 ssize_t readlink(const char * __restrict, char * __restrict, size_t); #endif void *sbrk(intptr_t); +#ifndef __minix /* XXX prototype wrong! */ int setpgrp(pid_t, pid_t); /* obsoleted by setpgid() */ int setregid(gid_t, gid_t); int setreuid(uid_t, uid_t); +#endif /* !__minix */ void swab(const void * __restrict, void * __restrict, ssize_t); int symlink(const char *, const char *); void sync(void); useconds_t ualarm(useconds_t, useconds_t); int usleep(useconds_t); +#ifndef __minix #ifndef __LIBC12_SOURCE__ pid_t vfork(void) __RENAME(__vfork14); #endif +#endif /* !__minix */ #ifndef __AUDIT__ char *getwd(char *); /* obsoleted by getcwd() */ @@ -295,9 +309,15 @@ /* * Implementation-defined extensions */ +#if defined(__minix) +int lseek64(int fd, u64_t _offset, int _whence, u64_t *_newpos); +#endif /* !__minix */ + #if defined(_NETBSD_SOURCE) +#ifndef __minix int acct(const char *); int closefrom(int); +#endif /* !__minix */ int des_cipher(const char *, char *, long, int); int des_setkey(const char *); void endusershell(void); @@ -315,15 +335,23 @@ int iruserok(uint32_t, int, const char *, const char *); int issetugid(void); int nfssvc(int, void *); +#ifndef __minix int profil(char *, size_t, u_long, u_int); #ifndef __PSIGNAL_DECLARED #define __PSIGNAL_DECLARED /* also in signal.h */ void psignal(int, const char *); #endif /* __PSIGNAL_DECLARED */ +#endif /* !__minix */ int rcmd(char **, int, const char *, const char *, const char *, int *); +#ifdef __minix +int reboot(int, ...); +#else int reboot(int, char *); +#endif +#ifndef __minix int revoke(const char *); +#endif int rresvport(int *); int ruserok(const char *, int, const char *, const char *); int setdomainname(const char *, size_t); @@ -341,8 +369,10 @@ /* backwards-compatibility; also in string.h */ __aconst char *strsignal(int); #endif /* __STRSIGNAL_DECLARED */ +#ifndef __minix int swapctl(int, void *, int); int swapon(const char *); /* obsoleted by swapctl() */ +#endif /* !__minix */ int syscall(int, ...); quad_t __syscall(quad_t, ...); int undelete(const char *); @@ -364,4 +394,10 @@ #endif __END_DECLS + +#ifdef __minix +/* Minix expects RBT_* flags to be included with */ +#include +#endif + #endif /* !_UNISTD_H_ */ diff -ru nbsdsrc/src/include/utmp.h nbsd_include/utmp.h --- nbsdsrc/src/include/utmp.h +++ nbsd_include/utmp.h @@ -39,12 +39,26 @@ #ifndef _UTMP_H_ #define _UTMP_H_ +#ifdef __minix +#define _PATH_UTMP "/etc/utmp" +#define _PATH_WTMP "/usr/adm/wtmp" +#define _PATH_BTMP "/usr/adm/btmp" +#define _PATH_LASTLOG "/usr/adm/lastlog" +#define UTMP _PATH_UTMP +#define WTMP _PATH_WTMP +#define BTMP _PATH_BTMP +#else #define _PATH_UTMP "/var/run/utmp" #define _PATH_WTMP "/var/log/wtmp" #define _PATH_LASTLOG "/var/log/lastlog" +#endif #define UT_NAMESIZE 8 +#ifdef __minix +#define UT_LINESIZE 12 +#else #define UT_LINESIZE 8 +#endif #define UT_HOSTSIZE 16 struct lastlog { @@ -53,12 +67,34 @@ char ll_host[UT_HOSTSIZE]; }; +#ifdef __minix struct utmp { + char ut_name[UT_NAMESIZE]; /* user name */ + char ut_id[4]; /* /etc/inittab ID */ + char ut_line[UT_LINESIZE]; /* terminal name */ + char ut_host[UT_HOSTSIZE]; /* host name, when remote */ + short ut_pid; /* process id */ + short int ut_type; /* type of entry */ + long ut_time; /* login/logout time */ +}; + +/* Definitions for ut_type. */ +#define RUN_LVL 1 /* this is a RUN_LEVEL record */ +#define BOOT_TIME 2 /* this is a REBOOT record */ +#define INIT_PROCESS 5 /* this process was spawned by INIT */ +#define LOGIN_PROCESS 6 /* this is a 'getty' process waiting */ +#define USER_PROCESS 7 /* any other user process */ +#define DEAD_PROCESS 8 /* this process has died (wtmp only) */ + +#else /* !__minix */ + +struct utmp { char ut_line[UT_LINESIZE]; char ut_name[UT_NAMESIZE]; char ut_host[UT_HOSTSIZE]; time_t ut_time; }; +#endif /* __minix */ __BEGIN_DECLS int utmpname(const char *);