Remove support for Solaris pre-8
[openafs.git] / src / afs / SOLARIS / osi_machdep.h
index 744dbab..b38d1e3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
@@ -18,7 +18,7 @@
 #ifndef _OSI_MACHDEP_H_
 #define _OSI_MACHDEP_H_
 
-#ifdef AFS_SUN57_64BIT_ENV
+#ifdef AFS_SUN5_64BIT_ENV
 #include <sys/model.h>         /* for get_udatamodel() */
 #endif
 
   */
 #define NFSSRV                 "/kernel/misc/nfssrv"
 #define NFSSRV_V9      "/kernel/misc/sparcv9/nfssrv"
+#define NFSSRV_AMD64   "/kernel/misc/amd64/nfssrv"
 
-#define AFS_UCRED cred
-#define AFS_PROC struct proc
+typedef struct cred afs_ucred_t;
+typedef struct proc afs_proc_t;
 
-/* 
+/*
  * Time related macros
  */
 #define        afs_hz      hz
@@ -53,12 +54,25 @@ local_osi_Time()
 #define osi_Time() (hrestime.tv_sec)
 #endif
 
-#undef afs_osi_Alloc_NoSleep
-extern void *afs_osi_Alloc_NoSleep(size_t size);
+#define osi_vnhold(avc, r)  do {    \
+    struct vnode *vp = AFSTOV(avc); \
+    uint_t prevcount;               \
+                                    \
+    mutex_enter(&vp->v_lock);       \
+    prevcount = vp->v_count++;      \
+    mutex_exit(&vp->v_lock);        \
+                                    \
+    if (prevcount == 0) {           \
+       VFS_HOLD(afs_globalVFS);    \
+    }                               \
+} while(0)
 
-#define osi_vnhold(avc, r)  do { VN_HOLD(AFSTOV(avc)); } while(0)
 #define gop_rdwr(rw,gp,base,len,offset,segflg,ioflag,ulimit,cr,aresid) \
   vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(ioflag),(ulimit),(cr),(aresid))
+#define gop_lookupname(fnamep,segflg,followlink,compvpp) \
+  lookupname((fnamep),(segflg),(followlink),NULL,(compvpp))
+#define gop_lookupname_user(fnamep,segflg,followlink,compvpp) \
+  lookupname((fnamep),(segflg),(followlink),NULL,(compvpp))
 
 
 #if defined(AFS_SUN510_ENV)
@@ -67,9 +81,8 @@ extern void *afs_osi_Alloc_NoSleep(size_t size);
 #define afs_suser(x)        suser(x)
 #endif
 
-#ifdef KERNEL
 /*
- * Global lock support. 
+ * Global lock support.
  */
 #include <sys/mutex.h>
 extern kmutex_t afs_global_lock;
@@ -77,6 +90,8 @@ extern kmutex_t afs_global_lock;
 #define AFS_GLOCK()    mutex_enter(&afs_global_lock);
 #define AFS_GUNLOCK()  mutex_exit(&afs_global_lock);
 #define ISAFS_GLOCK()  mutex_owned(&afs_global_lock)
+#define osi_InitGlock() \
+       mutex_init(&afs_global_lock, "afs_global_lock", MUTEX_DEFAULT, NULL);
 #endif
 
 
@@ -94,14 +109,33 @@ extern kmutex_t afs_global_lock;
 #define        IO_SYNC         FSYNC
 #endif
 
-#if    defined(AFS_SUN56_ENV)
 /*
-** Macro returns 1 if file is larger than 2GB; else returns 0 
+** Macro returns 1 if file is larger than 2GB; else returns 0
 */
 #undef AfsLargeFileUio
 #define AfsLargeFileUio(uio)       ( (uio)->_uio_offset._p._u ? 1 : 0 )
 #undef AfsLargeFileSize
 #define AfsLargeFileSize(pos, off) ( ((offset_t)(pos)+(offset_t)(off) > (offset_t)0x7fffffff)?1:0)
-#endif
+
+#if defined(AFS_SUN510_ENV)
+#include "h/sunddi.h"
+extern ddi_taskq_t *afs_taskq;
+extern krwlock_t afsifinfo_lock;
+
+/* this should be in rx/SOLARIS/rx_knet.c accessed via accessor functions,
+   eventually */
+#include "net/if.h"
+/* Global interface info struct */
+struct afs_ifinfo {
+  char        ifname[LIFNAMSIZ];
+  ipaddr_t    ipaddr;
+  ipaddr_t    netmask;
+  uint_t      mtu;
+  uint64_t    flags;
+  int         metric;
+  ipaddr_t    dstaddr;
+};
+
+#define osi_procname(procname, size) strncpy(procname, PTOU(ttoproc(curthread))->u_comm, size)
 
 #endif /* _OSI_MACHDEP_H_ */