/*
 * wait.h
 *
 * Copyright 2004, Minoru Murashima. All rights reserved.
 * Distributed under the terms of the BSD License.
 */


#ifndef wait_h
#define wait_h


#include<types.h>
#include<proc.h>


#ifndef ASM_FILE


/* プロセスリンク構造体 */
typedef struct PROC_LINK{
	struct PROC_LINK *next;
	struct PROC_LINK *prev;
}PROC_LINK;

/* プロセスウエイトロックキュー構造体 */
typedef struct WAIT_QUEUE{
	void  *wait_next;		/* ウエイトリンクの次のプロセス。 */
	void  *wait_prev;		/* ウエイトリンクの前のプロセス。 */
	ushort update;			/* 書き込みフラグ。 */
	ushort cnt;				/* Wait count. */
	int    gate;			/* Lock gate. */
}WAIT_QUEUE;


extern void waitSemaphore(WAIT_QUEUE*);
extern void wakeSemaphore(WAIT_QUEUE*);


#endif


#endif
