afs: Always define our own osi_timeval32_t
[openafs.git] / src / afs / SOLARIS / osi_machdep.h
index 065d6cd..45ee8de 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 struct 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,10 +54,6 @@ 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 { 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) \
@@ -71,17 +68,17 @@ 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;
 
-#define AFS_GLOCK()    mutex_enter(&afs_global_lock);
-#define AFS_GUNLOCK()  mutex_exit(&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)
-#endif
+#define osi_InitGlock() \
+       mutex_init(&afs_global_lock, "afs_global_lock", MUTEX_DEFAULT, NULL);
 
 
 /* Associate the Berkley signal equivalent lock types to System V's */
@@ -98,15 +95,13 @@ 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"
@@ -126,5 +121,17 @@ struct afs_ifinfo {
   int         metric;
   ipaddr_t    dstaddr;
 };
-#endif
+#endif /* AFS_SUN510_ENV */
+
+#define osi_procname(procname, size) strncpy(procname, PTOU(ttoproc(curthread))->u_comm, size)
+
+static_inline void
+osi_GetTime(osi_timeval32_t *atv)
+{
+    struct timeval32 now;
+    uniqtime32(&now);
+    atv->tv_sec = now.tv_sec;
+    atv->tv_usec = now.tv_usec;
+}
+
 #endif /* _OSI_MACHDEP_H_ */