28 lines
903 B
C
28 lines
903 B
C
/* @(#)monitor.h 1.1 94/10/31 Copyr 1987 Sun Micro */
|
|
/* Copyright (C) 1987. Sun Microsystems, Inc. */
|
|
|
|
#ifndef _lwp_monitor_h
|
|
#define _lwp_monitor_h
|
|
|
|
/* definition of a monitor */
|
|
typedef struct monitor_t {
|
|
qheader_t mon_waiting; /* queue of waiting lwps */
|
|
struct lwp_t *mon_owner; /* lwp owning mon (LWPNULL if unowned) */
|
|
struct monitor_t *mon_set; /* prev mon in nested call */
|
|
int mon_nestlevel; /* # of times same lwp reenters mon */
|
|
int mon_lock; /* lock for validity check */
|
|
} monitor_t;
|
|
#define MONNULL ((struct monitor_t *) 0)
|
|
|
|
/* for keeping list of all monitors in the system */
|
|
typedef struct monps_t {
|
|
struct monps_t *monps_next; /* next monitor in list */
|
|
monitor_t *monps_monid; /* monitor identity */
|
|
} monps_t;
|
|
#define MONPSNULL ((monps_t *) 0)
|
|
|
|
extern qheader_t __MonitorQ; /* list of all monitors in the system */
|
|
extern void __init_mon();
|
|
|
|
#endif /*!_lwp_monitor_h*/
|