/*************************************************************************
* *
* Modulo contenente le variabili globali *
* *
* realizzato dal Gruppo 17 di Lab2 Anno Accademico 1995/96 *
* *
* Lorenzo Claudio Valerio Riccardo Emiliano *
* Coronati Lanconelli Paolini Solmi Trentini *
* *
**************************************************************************/
#include "../h/const.h"
#include "../h/nucconst.h"
#include "../h/thrqueue.h"
#include "../h/proctree.h"
#include "../h/globals.h"
proc_t *ready_queue = (proc_t *) NULL; /* coda processi pronti */
proc_t *run_proc = (proc_t *) NULL; /* processo in esecuzione */
thr_t *run_thread = (thr_t *) NULL; /* thread in esecuzione */
thr_t wait_thread; /* thread vuoto */
#ifndef SUPPORT
thr_t *SSI;
#endif
/*
* puntatori usati per gestire l'accesso alle aree di sistema trap
* ed interrupt
*/
state_area *trap_area = (state_area *) BEGINTRAP;
state_area *intr_area = (state_area *) BEGININTR;
long next_clock; /* prossima scadenza dello pseudoclock */
long time_left; /* tempo di esecuzione rimasto al thread
* attivo */
long last_start; /* tempo di partenza del thread attivo */
long time_now; /* memorizza il tempo del timer */
int no_wait = 0; /* utilizzata nel controllo per deadlock */
thr_t *clock_reply = NULL;
ioreply_t io_reply[NODEVICES];
#ifdef NUC_DEBUG
int nuc_stl; /* per individuare trap innestate */
#endif
#ifdef NUC_PROFILE
long wait_time = 0;
long wait_start;
long ini_time;
long intr_time = 0;
#endif