/*
+ * $Id$
+ */
+
+/*
+copyright 2002
+the regents of the university of michigan
+all rights reserved
+
+permission is granted to use, copy, create derivative works
+and redistribute this software and such derivative works
+for any purpose, so long as the name of the university of
+michigan is not used in any advertising or publicity
+pertaining to the use or distribution of this software
+without specific, written prior authorization. if the
+above copyright notice or any other identification of the
+university of michigan is included in any copy of any
+portion of this software, then the disclaimer below must
+also be included.
+
+this software is provided as is, without representation
+from the university of michigan as to its fitness for any
+purpose, and without warranty by the university of
+michigan of any kind, either express or implied, including
+without limitation the implied warranties of
+merchantability and fitness for a particular purpose. the
+regents of the university of michigan shall not be liable
+for any damages, including special, indirect, incidental, or
+consequential damages, with respect to any claim arising
+out of or in connection with the use of the software, even
+if it has been or is hereafter advised of the possibility of
+such damages.
+*/
+
+/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
*
* directory or online at http://www.openafs.org/dl/license10.html
*/
-
#include <afsconfig.h>
#include "afs/param.h"
endTime = osi_Time() + (ams / 1000);
if (ahandle)
ahandle->proc = (caddr_t) curproc;
+ AFS_ASSERT_GLOCK();
+ AFS_GUNLOCK();
do {
if (aintok) {
code = tsleep(&waitV, PCATCH | (PZERO+8), "afs_osi_Wait", timo);
break;
}
} while (osi_Time() < endTime);
+ AFS_GLOCK();
return code;
}
+void afs_osi_Sleep(void *event)
+{
+ AFS_ASSERT_GLOCK();
+ AFS_GUNLOCK();
+ tsleep(event, PVFS, "afs", 0);
+ AFS_GLOCK();
+}
+
int afs_osi_SleepSig(void *event)
{
- afs_osi_Sleep(event);
+ AFS_ASSERT_GLOCK();
+ AFS_GUNLOCK();
+ tsleep(event, PVFS, "afs", 0);
+ AFS_GLOCK();
return 0;
}
+
+int afs_osi_Wakeup(void *event)
+{
+ wakeup(event);
+ return 1;
+}