50 lines · 921 B · C
RawDownload
/*  * 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 <u.h>#include <lock.h> typedef struct QLp QLp;struct QLp{	int	inuse;	QLp	*next;	char	state;}; typedefstruct QLock{	Lock	lock;	int	locked;	QLp	*head;	QLp 	*tail;} QLock; #ifdef __cplusplusextern "C" {#endif extern	void	qlock(QLock*);extern	void	qunlock(QLock*);extern	int	canqlock(QLock*); #ifdef __cplusplus}#endif #endif