/*************************************************************************
* *
* Header: tproc.h *
* *
* realizzato dal Gruppo 17 di Lab2 Anno Accademico 1995/96 *
* *
* Lorenzo Claudio Valerio Riccardo Emiliano *
* Coronati Lanconelli Paolini Solmi Trentini *
* *
**************************************************************************/
#ifndef _TPROC_H
#define _TPROC_H
#include "../h/syscallt.h"
typedef struct tproc_t {
/* thread che ha creato il T-process (init) */
thr_t *T_parent;
/* identificatore del process */
void *T_process;
/* i thread che compongono il T-process */
thr_t *T_mainthread;
thr_t *T_sysservt;
thr_t *T_memmant;
thr_t *T_progt;
thr_t *T_syscallt;
/* dati per il syscall thread */
vqueue_t *T_waitsend; /* Wait for a VSend queue */
vqueue_t *T_waitrecv; /* Wait for a VRecv queue */
vqueue_t *T_waitrply; /* Wait for a VReply queue */
vqueue_t *T_vqfp; /* VQueue free pointer */
vqueue_t T_vqueue[VQUEUENO]; /* VQueue table */
vmsg_t T_vbuffers[VBUFNO];
/* dati riguardanti la memoria virtuale */
sd_t T_usrsegtable[NOSEGS]; /* tabella dei segmenti in user-mode */
sd_t T_supsegtable[NOSEGS]; /* tabella dei segmenti del support level */
pd_t T_segPpagetable[NOPAGES]; /* tabella di pagine del segmento privato */
} tproc_t;
#endif