+/* If sys/types.h does not supply intXX_t, supply them ourselves */
+/* (or die trying) */
+#ifndef HAVE_INTXX_T
+# if (SIZEOF_SHORT_INT == 2)
+# define int16_t short int
+# else
+# error "16 bit int type not found."
+# endif
+# if (SIZEOF_INT == 4)
+# define int32_t int
+# else
+# error "32 bit int type not found."
+# endif
+# if (SIZEOF_LONG_INT == 8)
+# define int64_t long int
+# else
+# if (SIZEOF_LONG_LONG_INT == 8)
+# define int64_t long long int
+# else
+# error "64 bit int type not found."
+# endif
+# endif
+#endif
+
+/* If sys/types.h does not supply u_intXX_t, supply them ourselves */
+#ifndef HAVE_U_INTXX_T
+# ifdef HAVE_UINTXX_T
+# define u_int16_t uint16_t
+# define u_int32_t uint32_t
+# define u_int64_t uint64_t
+# else
+# if (SIZEOF_SHORT_INT == 2)
+# define u_int16_t unsigned short int
+# else
+# error "16 bit int type not found."
+# endif
+# if (SIZEOF_INT == 4)
+# define u_int32_t unsigned int
+# else
+# error "32 bit int type not found."
+# endif
+# if (SIZEOF_LONG_INT == 8)
+# define u_int64_t unsigned long int
+# else
+# if (SIZEOF_LONG_LONG_INT == 8)
+# define u_int64_t unsigned long long int
+# else
+# error "64 bit int type not found."
+# endif
+# endif
+# endif
+#endif
+
+/* If quad_t is not supplied, then supply it now. We can rely on int64_t */
+/* being defined by the above */
+#ifndef HAVE_QUAD_T
+# define quad_t int64_t
+#endif
+
+#ifndef _PATH_LASTLOG
+# ifdef LASTLOG_LOCATION
+# define _PATH_LASTLOG LASTLOG_LOCATION
+# endif
+#endif
+
+#ifndef _PATH_UTMP
+# ifdef UTMP_FILE
+# define _PATH_UTMP UTMP_FILE
+# else
+# define _PATH_UTMP "/var/adm/utmp"
+# endif
+#endif
+
+#ifndef _PATH_WTMP
+# ifdef WTMP_FILE
+# define _PATH_WTMP WTMP_FILE
+# else
+# define _PATH_WTMP "/var/adm/wtmp"
+# endif
+#endif
+
+#ifndef _PATH_BSHELL
+# define _PATH_BSHELL "/bin/sh"
+#endif
+
+#ifndef _PATH_STDPATH
+# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:"
+#endif
+
+#ifndef _PATH_DEVNULL
+# define _PATH_DEVNULL "/dev/null"
+#endif
+
+#ifndef _PATH_MAILDIR
+# ifdef MAILDIR
+# define _PATH_MAILDIR MAILDIR
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a,b) (((a)>(b))?(a):(b))
+# define MIN(a,b) (((a)<(b))?(a):(b))
+#endif
+
+#ifndef timersub
+#define timersub(a, b, result) \
+ do { \
+ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((result)->tv_usec < 0) { \
+ --(result)->tv_sec; \
+ (result)->tv_usec += 1000000; \
+ } \
+ } while (0)
+