Minix1.5/amoeba/kernel/mpx.H
/****************************************************************************/
/* */
/* (c) Copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands */
/* */
/* This product is part of the Amoeba distributed operating system. */
/* */
/* Permission to use, sell, duplicate or disclose this software must be */
/* obtained in writing. Requests for such permissions may be sent to */
/* */
/* */
/* Dr. Andrew S. Tanenbaum */
/* Dept. of Mathematics and Computer Science */
/* Vrije Universiteit */
/* Postbus 7161 */
/* 1007 MC Amsterdam */
/* The Netherlands */
/* */
/****************************************************************************/
struct mpx {
short MX_active; /* is a transaction in progress */
unshort MX_flags; /* flags - see below */
int MX_proc_nr; /* task identifier */
header MX_hdr; /* storage space for header */
} tk_mpx;
#ifdef MPX
#define mx_flags tk_mpx.MX_flags
#define mx_active tk_mpx.MX_active
#define mx_proc_nr tk_mpx.MX_proc_nr
#define mx_hdr tk_mpx.MX_hdr
/* bits in flags: */
#define RUNNABLE bit(0) /* task is runnable */
#define NESTED bit(1) /* nested getreq, trans or putrep */
#define BETWEEN bit(2) /* between getreq and putrep */
#else
#define tk_mpx tk_dummy /* other modules must not touch it */
#endif