/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ #ifndef _PLAN9_SOURCE This header file is an extension to ANSI/POSIX #endif #ifndef __QLOCK_H_ #define __QLOCK_H_ #pragma lib "/$M/lib/ape/lib9.a" #include #include typedef struct QLp QLp; struct QLp { int inuse; QLp *next; char state; }; typedef struct QLock { Lock lock; int locked; QLp *head; QLp *tail; } QLock; #ifdef __cplusplus extern "C" { #endif extern void qlock(QLock*); extern void qunlock(QLock*); extern int canqlock(QLock*); #ifdef __cplusplus } #endif #endif