tviced: project viced vlserver libafsrpc libafsauthent
case ${SYS_NAME} in \
- alpha_dux*|sgi_*|sun*_*|rs_aix*|*linux*|hp_ux110) \
+ alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux110) \
${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \
*) \
echo Not building MT viced for ${SYS_NAME} ;; \
vfsck: vol
set -x; \
case ${SYS_NAME} in \
- sgi_* | *linux* | rs_aix42 | ppc_darwin* | hp_ux* | *fbsd* | *_obsd* ) \
+ sgi_* | *linux* | rs_aix42 | ppc_darwin* | hp_ux* | *fbsd* | *_obsd* | sun*_4* ) \
echo skip vfsck for ${SYS_NAME} ;; \
* ) \
${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
libuafs: libuafs_setup ${UKERNELDIR}
set -x; \
case ${SYS_NAME} in \
- hp_ux102* | *_obsd* ) \
+ hp_ux102* | *_obsd* | sun*_4* ) \
echo Skipping libuafs for ${SYS_NAME} ;; \
* ) \
${COMPILE_PART1} libuafs ${COMPILE_PART2} ;; \
#undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
#undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
#undef STRUCT_INODE_HAS_I_DEVICES
+#undef ssize_t
/* glue for RedHat kernel bug */
#undef ENABLE_REDHAT_BUILDSYS
SOLARIS_UFSVFS_HAS_DQRWLOCK
SOLARIS_PROC_HAS_P_COREFILE
;;
+ *-sunos*)
+ MKAFS_OSTYPE=SUNOS
+ enable_kernel_module=no
+ AC_MSG_RESULT(sun4)
+ ;;
*-hpux*)
MKAFS_OSTYPE=HPUX
AC_MSG_RESULT(hp_ux)
sparc-sun-solaris2.9)
AFS_SYSNAME="sun4x_59"
;;
+ sparc-sun-sunos4*)
+ AFS_SYSNAME="sun4_413"
+ ;;
i386-pc-solaris2.7)
AFS_SYSNAME="sunx86_57"
;;
AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h)
AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
-AC_CHECK_FUNCS(setprogname getprogname)
+AC_CHECK_FUNCS(setprogname getprogname sigaction)
+AC_CHECK_TYPE(ssize_t, int)
dnl Directory PATH handling
if test "x$enable_transarc_paths" = "xyes" ; then
case ${SYS_NAME} in \
sgi_* ) \
gencat -m afszcm.cat afs_trace.msf ;; \
+ sun*_4* ) \
+ /usr/etc/gencat afszcm.cat afs_trace.msf ;; \
*_linux* ) \
gencat --new afszcm.cat afs_trace.msf ;; \
ppc_darwin* | i386_fbsd*) \
--- /dev/null
+#error kernel code not supported on SunOS 4
#if AFS_HAVE_STATVFS
#include <sys/statvfs.h>
#else
+#if defined(AFS_SUN_ENV)
+#include <sys/vfs.h>
+#else
#if !defined(AFS_OSF_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_XBSD_ENV)
#include <sys/statfs.h>
#endif
#endif
+#endif
#undef VIRTUE
#undef VICE
#include "cellconfig.h"
#include "keys.h"
+#ifndef T_AFSDB
+#define T_AFSDB 18 /* per RFC1183 section 1 */
+#endif
+
static ParseHostLine();
static ParseCellLine();
static afsconf_OpenInternal();
#include <afs/fileutil.h>
#include "bnode.h"
-#ifdef AFS_AIX_ENV
+#if defined(AFS_AIX_ENV) || defined(AFS_SUN4_ENV)
/* All known versions of AIX lack WCOREDUMP but this works */
#define WCOREDUMP(x) ((x) & 0x80)
#endif
else \
sprintf(dumpname, "%s (DumpId %u)", name, dbDumpId);
-#if defined(AFS_NT40_ENV) || defined(AFS_DARWIN_ENV)
+#if defined(AFS_NT40_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_SUN4_ENV)
localtime_r(t, tm)
time_t *t;
struct tm *tm;
--- /dev/null
+# Copyright 2000, International Business Machines Corporation and others.
+# All Rights Reserved.
+#
+# This software has been released under the terms of the IBM Public
+# License. For details, see the LICENSE file in the top-level source
+# directory or online at http://www.openafs.org/dl/license10.html
+
+# Keep macros within each section in sorted order for clean diff displays.
+#
+# AFS_OSTYPE used to indicate suffixes and os specific subdirectories.
+AFS_OSTYPE = SUNOS
+
+# compilation and link editor flags
+XCFLAGS=
+LWP_OPTMZ=-O
+OPTMZ=-O
+DBG=-g
+#
+# libraries
+XLIBS=@LIB_AFSDB@
+TXLIBS=-lcurses -ltermcap
+XLIBELFA=-lelf
+XLIBKVM=-lkvm
+SHLIB_SUFFIX=so
+SHLIB_CFLAGS=-PIC
+#
+# programs
+AR=ar
+AS=as
+CC=gcc
+MT_CC=gcc
+CP=/bin/cp
+LEX=lex
+LD= ld
+LORDER = lorder
+MV=mv
+RANLIB=ranlib
+RM=rm
+STRIP= strip
+INSTALL=${TOP_SRCDIR}/pinstall/pinstall
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */
+#define AFS_ENV 1
+#define AFS_SUN_ENV 1
+#define AFS_SUN4_ENV 1
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */
+#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */
+
+#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
+#define AFS_SYSCALL 31
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS "afs"
+
+/* Machine / Operating system information */
+#define sys_sun4_413 1
+#define SYS_NAME "sun4_413"
+#define SYS_NAME_ID SYS_NAME_ID_sun4_411
+#define AFSBIG_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+/* sun definitions here */
+#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_fmode uio_fmode
+#define afsio_resid uio_resid
+#define AFS_UIOSYS UIO_SYSSPACE
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES MCLBYTES
+#define AFS_MINCHANGE 2
+#define osi_GetTime(x) uniqtime(x)
+#define AFS_KALLOC(n) kmem_alloc(n, KMEM_SLEEP)
+#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KMEM_NOSLEEP)
+#define AFS_KFREE kmem_free
+#define VATTR_NULL vattr_null
+#endif /* KERNEL */
+#define memset(A, B, S) bzero(A, S)
+#define memcpy(B, A, S) bcopy(A, B, S)
+#define memcmp(A, B, S) bcmp(A, B, S)
+#define memmove(B, A, S) bcopy(A, B, S)
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#endif /* AFS_PARAM_H */
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+#define UKERNEL
+#define AFS_ENV 1
+/* define AFS_USR_XXX_ENV XXX */
+
+#include <afs/afs_sysnames.h>
+
+#define RXK_LISTENER_ENV 1
+#define AFS_USERSPACE_IP_ADDR 1
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+
+#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
+#define AFS_SYSCALL 31
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS 1
+
+/* Machine / Operating system information */
+#define sys_sun4_413 1
+#define SYS_NAME "sun4_413"
+#define SYS_NAME_ID SYS_NAME_ID_sun4_411
+#define AFSBIG_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+/* sun definitions here */
+#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_fmode uio_fmode
+#define afsio_resid uio_resid
+#define AFS_UIOSYS 1
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES MCLBYTES
+#define AFS_MINCHANGE 2
+#define VATTR_NULL usr_vattr_null
+#endif /* KERNEL */
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#endif /* AFS_PARAM_H */
#define VIOC_STATISTICS _VICEIOCTL(68) /* arla: fetch statistics */
/* Coordinated 'C' pioctl's */
-#define VIOC_NEWALIAS _VICEIOCTL2('C', 1) /* create new cell alias */
-#define VIOC_GETALIAS _VICEIOCTL2('C', 2) /* get alias info */
+#define VIOC_NEWALIAS _CVICEIOCTL(1) /* create new cell alias */
+#define VIOC_GETALIAS _CVICEIOCTL(2) /* get alias info */
#endif /* AFS_VENUS_H */
#else
#include <sys/time.h>
#include <signal.h>
-#include <ucontext.h>
#include "lwp.h"
#include "preempt.h"
char PRE_Block = 0; /* used in lwp.c and process.s */
#endif
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
static void AlarmHandler(sig, st, scp)
int sig;
siginfo_t *st;
ucontext_t *scp;
+#else
+static void AlarmHandler(sig, code, scp)
+ int sig, code;
+ struct sigcontext *scp;
+#endif
{
if (PRE_Block == 0 && lwp_cpptr->level == 0)
{
PRE_BeginCritical();
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
sigprocmask(SIG_SETMASK, &scp->uc_sigmask, NULL);
+#else
+ sigsetmask(scp->sc_mask);
+#endif
LWP_DispatchProcess();
PRE_EndCritical();
}
struct timeval *slice;
{
struct itimerval itv;
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
struct sigaction action;
+#else
+ struct sigvec vec;
+#endif
if (lwp_cpptr == 0) return (LWP_EINIT);
itv.it_interval = itv.it_value = *slice;
}
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
memset((char *)&action, 0, sizeof(action));
action.sa_sigaction = AlarmHandler;
action.sa_flags = SA_SIGINFO;
if ((sigaction(SIGALRM, &action, (struct sigaction *)0) == -1) ||
(setitimer(ITIMER_REAL, &itv, (struct itimerval *) 0) == -1))
return(LWP_ESYSTEM);
+#else
+ memset((char *)&vec, 0, sizeof(vec));
+ vec.sv_handler = AlarmHandler;
+ vec.sv_mask = vec.sv_onstack = 0;
+
+ if ((sigvec(SIGALRM, &vec, (struct sigvec *)0) == -1) ||
+ (setitimer(ITIMER_REAL, &itv, (struct itimerval *) 0) == -1))
+ return(LWP_ESYSTEM);
+#endif
return(LWP_SUCCESS);
}
int PRE_EndPreempt()
{
struct itimerval itv;
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
struct sigaction action;
+#else
+ struct sigvec vec;
+#endif
if (lwp_cpptr == 0) return (LWP_EINIT);
itv.it_value.tv_sec = itv.it_value.tv_usec = 0;
+#if HAVE_SIGACTION && defined(SA_SIGINFO)
memset((char *)&action, 0, sizeof(action));
action.sa_handler = SIG_DFL;
if ((setitimer(ITIMER_REAL, &itv, (struct itimerval *) 0) == -1) ||
(sigaction(SIGALRM, &action, (struct sigaction *)0) == -1))
return(LWP_ESYSTEM);
+#else
+ memset((char *)&vec, 0, sizeof(vec));
+ vec.sv_handler = SIG_DFL;
+ vec.sv_mask = vec.sv_onstack = 0;
+
+ if ((setitimer(ITIMER_REAL, &itv, (struct itimerval *) 0) == -1) ||
+ (sigvec(SIGALRM, &vec, (struct sigvec *)0) == -1))
+ return(LWP_ESYSTEM);
+#endif
return(LWP_SUCCESS);
}
#endif /* AFS_HPUX_ENV */
char pnametmp[1024];
int pnamelen;
-#if defined (AFS_AIX_ENV) || defined(AFS_XBSD_ENV)
afs_int32 newcode;
static char diskBuffer[BUFSIZE]; /* must be static to avoid compiler bugs for large stuff */
-#endif
char myHostName[100];
struct timeval tvp[2];
int isDir;
--- /dev/null
+#error kernel code not supported on SunOS 4
--- /dev/null
+#error kernel code not supported on SunOS 4
extern void osi_AssertFailU(const char *expr, const char *file, int line);
#define osi_Assert(e) (void)((e) || (osi_AssertFailU(#e, __FILE__, __LINE__), 0))
-#if !defined(_ANSI_C_SOURCE) || defined(AFS_SUN_ENV)
-#if defined(AFS_SUN_ENV) && !defined(AFS_SUN5_ENV)
-extern int fprintf();
-#endif
-#endif /* ANSI_C_SOURCE */
-
#define osi_Msg fprintf)(stderr,
#endif /* RX_USER_INCLUDE */
#ifdef AFS_DARWIN_ENV
#include <sys/ioccom.h>
#endif
-#include <sys/mtio.h>
-#endif /* AFS_AIX_ENV */
-#if defined(AFS_DUX40_ENV) || defined(AFS_OBSD_ENV)
+#if defined(AFS_DUX40_ENV) || defined(AFS_OBSD_ENV) || defined(AFS_SUN4_ENV)
#include <sys/ioctl.h>
#endif
+#include <sys/mtio.h>
+#endif /* AFS_AIX_ENV */
#include <afs/debug.h>
#include "usd.h"
RCSID("$Header$");
-#if defined(AFS_OSF20_ENV) && !defined(AFS_DUX50_ENV) || defined(AFS_AIX32_ENV) || (defined(AFS_SUN55_ENV) && !defined(AFS_SUN56_ENV))
+#if defined(AFS_OSF20_ENV) && !defined(AFS_DUX50_ENV) || defined(AFS_AIX32_ENV) || (defined(AFS_SUN55_ENV) && !defined(AFS_SUN56_ENV)) || !defined(HAVE_SNPRINTF)
#include <sys/types.h>
#include <stdarg.h>
#include <stdio.h>
#include <ctype.h>
#include <netinet/in.h>
#include <netdb.h>
-#if defined(AFS_AIX32_ENV) || defined(AFS_SUN55_ENV)
+#if defined(AFS_AIX32_ENV) || defined(AFS_SUN_ENV)
#include <sys/socket.h>
#endif
* between user processes and Venus.
*/
#include <afs/param.h>
-#ifdef AFS_SUN5_ENV
+#ifdef AFS_SUN_ENV
#include <sys/ioccom.h>
#endif
#define _VICEIOCTL(id) ((unsigned int ) _IOW('V', id, struct ViceIoctl))
#define _VICEIOCTL2(dev, id) ((unsigned int ) _IOW(dev, id, struct ViceIoctl))
#endif
+#define _CVICEIOCTL(id) _VICEIOCTL2('C', id)
+#define _OVICEIOCTL(id) _VICEIOCTL2('O', id)
/* Use this macro to define up to 256 vice ioctl's. These ioctl's
all potentially have in/out parameters--this depends upon the
case ${SYS_NAME} in \
sun4_411 | sun4c_411 | sun4m_412 ) \
${CCXPG2} -g -I${TOP_SRCDIR}/config -I${TOP_INCDIR} -I${TOP_INCDIR} -c fstrace.c ;; \
+ sun*_4* ) \
+ ${CC} -I/usr/xpg2include -I/usr/5include -g -I${TOP_SRCDIR}/config -I${TOP_INCDIR} -I${TOP_INCDIR} -c fstrace.c ;; \
* ) \
${CC} ${CFLAGS} -g -I${TOP_SRCDIR}/config -I${TOP_INCDIR} -I${TOP_INCDIR} -c fstrace.c ;; \
esac
${CC} ${CFLAGS} -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a /usr/lib/libi.a ;; \
sun4_411 | sun4c_411 | sun4m_412 ) \
${CCXPG2} ${CFLAGS} -g -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a ;; \
+ sun*_4* ) \
+ ${CC} -L/usr/xpg2lib -L/usr/5lib ${CFLAGS} -g -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a -lxpg ;; \
hp700_ux100 | hp800_ux100 | hp?00_ux10? | hp_ux10? | hp_ux11?) \
${CC} -I${TOP_SRCDIR}/config -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a ;; \
* ) \
#include <sys/file.h>
#include <netinet/in.h>
#include <netdb.h>
-#include <sys/resource.h>
#include <unistd.h> /* sysconf() */
#ifndef ITIMER_REAL
#include <sys/time.h>
#endif /* ITIMER_REAL */
+#include <sys/resource.h>
#endif /* AFS_NT40_ENV */
#include <afs/stds.h>
#undef SHARED
RCSID("$Header$");
#ifndef AFS_NAMEI_ENV
-#ifdef AFS_LINUX20_ENV
+#if defined(AFS_LINUX20_ENV) || defined(AFS_SUN4_ENV)
/* ListViceInodes
*
* Return codes:
int (*judgeInode)();
int *forcep, forceR;
{
- Log("ListViceInodes not implemented for Linux\n");
+ Log("ListViceInodes not implemented for this platform!\n");
return -1;
}
#else
#else
#if defined(AFS_SUN_ENV)
#include <sys/vfs.h>
+#ifndef AFS_SUN5_ENV
+#include <mntent.h>
+#endif
#endif
#ifdef AFS_SUN5_ENV
#include <unistd.h>
#include <sys/time.h>
#endif /* ITIMER_REAL */
#endif
-#if defined(AFS_AIX_ENV)
+#if defined(AFS_AIX_ENV) || defined(AFS_SUN4_ENV)
#define WCOREDUMP(x) (x & 0200)
#endif
#include <rx/xdr.h>
#endif
#endif
#include <fcntl.h>
-#ifndef AFS_NT40_ENV
-#include <afs/osi_inode.h>
-#endif
#include <afs/cmd.h>
#include <afs/afsutil.h>
#include <afs/fileutil.h>
#endif /* AFS_PTHREAD_ENV */
#include "vutils.h"
#include "fssync.h"
-#if !defined(AFS_NT40_ENV) && !defined(AFS_NAMEI_ENV)
-#include <afs/osi_inode.h>
-#endif
#ifndef AFS_NT40_ENV
#include <unistd.h>
#endif