59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
// system.h
|
|
// All global variables used in Nachos are defined here.
|
|
//
|
|
// Copyright (c) 1992-1993 The Regents of the University of California.
|
|
// All rights reserved. See copyright.h for copyright notice and limitation
|
|
// of liability and disclaimer of warranty provisions.
|
|
|
|
#ifndef SYSTEM_H
|
|
#define SYSTEM_H
|
|
|
|
#include "copyright.h"
|
|
#include "utility.h"
|
|
#include "thread.h"
|
|
#include "scheduler.h"
|
|
#include "interrupt.h"
|
|
#include "stats.h"
|
|
#include "timer.h"
|
|
|
|
// Initialization and cleanup routines
|
|
extern void Initialize (int argc, char **argv); // Initialization,
|
|
// called before anything else
|
|
extern void Cleanup (); // Cleanup, called when
|
|
// Nachos is done.
|
|
|
|
extern Thread *currentThread; // the thread holding the CPU
|
|
extern Thread *threadToBeDestroyed; // the thread that just finished
|
|
extern Scheduler *scheduler; // the ready list
|
|
extern Interrupt *interrupt; // interrupt status
|
|
extern Statistics *stats; // performance metrics
|
|
extern Timer *timer; // the hardware alarm clock
|
|
|
|
#ifdef USER_PROGRAM
|
|
#include "machine.h"
|
|
extern Machine *machine; // user program memory and registers
|
|
|
|
#ifdef CHANGED
|
|
#define MAX_STRING_SIZE 8
|
|
#include "consoledriver.h"
|
|
extern ConsoleDriver *consoledriver; // add console driver
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifdef FILESYS_NEEDED // FILESYS or FILESYS_STUB
|
|
#include "filesys.h"
|
|
extern FileSystem *fileSystem;
|
|
#endif
|
|
|
|
#ifdef FILESYS
|
|
#include "synchdisk.h"
|
|
extern SynchDisk *synchDisk;
|
|
#endif
|
|
|
|
#ifdef NETWORK
|
|
#include "post.h"
|
|
extern PostOffice *postOffice;
|
|
#endif
|
|
|
|
#endif // SYSTEM_H
|