Main Page | Alphabetical List | Class List | File List | Class Members | File Members

utility.h File Reference

#include "copyright.h"
#include "sysdep.h"

Go to the source code of this file.

Defines

#define TRUE   1
#define FALSE   0
#define min(a, b)   (((a) < (b)) ? (a) : (b))
#define max(a, b)   (((a) > (b)) ? (a) : (b))
#define divRoundDown(n, s)   ((n) / (s))
#define divRoundUp(n, s)   (((n) / (s)) + ((((n) % (s)) > 0) ? 1 : 0))
#define ASSERT(condition)

Typedefs

typedef void(* VoidFunctionPtr )(int arg)
typedef void(* VoidNoArgFunctionPtr )()

Functions

void DebugInit (char *flags)
bool DebugIsEnabled (char flag)
void DEBUG (char flag, char *format,...)


Define Documentation

#define ASSERT condition   ) 
 

Value:

if (!(condition)) { \ fprintf(stderr, "Assertion failed: line %d, file \"%s\"\n", \ __LINE__, __FILE__); \ fflush(stderr); \ Abort(); \ }
Definition at line 78 of file utility.h.

Referenced by AssignNameToSocket(), Thread::CheckOverflow(), Network::CheckPktAvail(), Close(), Disk::Disk(), Thread::Finish(), Initialize(), Lseek(), main(), Machine::OneInstruction(), OpenForReadWrite(), OpenForWrite(), OpenSocket(), PollFile(), Console::PutChar(), Read(), ReadFromSocket(), Machine::ReadMem(), Machine::ReadRegister(), Disk::ReadRequest(), SynchList::Remove(), Interrupt::Schedule(), Network::Send(), SendToSocket(), Interrupt::SetLevel(), Thread::Suspend(), Machine::Translate(), Condition::Wait(), WriteFile(), Machine::WriteMem(), Machine::WriteRegister(), Disk::WriteRequest(), Thread::Yield(), and Thread::~Thread().

#define divRoundDown n,
 )     ((n) / (s))
 

Definition at line 41 of file utility.h.

#define divRoundUp n,
 )     (((n) / (s)) + ((((n) % (s)) > 0) ? 1 : 0))
 

Definition at line 42 of file utility.h.

#define FALSE   0
 

Definition at line 32 of file utility.h.

Referenced by Disk::ComputeLatency(), Console::Console(), Machine::Debugger(), DebugIsEnabled(), Disk::Disk(), Disk::HandleInterrupt(), Interrupt::Idle(), Initialize(), Interrupt::Interrupt(), List::IsEmpty(), Machine::Machine(), Network::Network(), Machine::OneInstruction(), Interrupt::OneTick(), PollFile(), Console::PutChar(), Machine::ReadMem(), Disk::ReadRequest(), Network::Send(), Network::SendDone(), Interrupt::SetLevel(), Condition::Wait(), Console::WriteDone(), and Machine::WriteMem().

#define max a,
 )     (((a) > (b)) ? (a) : (b))
 

Definition at line 38 of file utility.h.

#define min a,
 )     (((a) < (b)) ? (a) : (b))
 

Definition at line 37 of file utility.h.

#define TRUE   1
 

Definition at line 31 of file utility.h.

Referenced by Console::Console(), Interrupt::Idle(), Initialize(), List::IsEmpty(), Machine::OneInstruction(), PollFile(), Console::PutChar(), Machine::ReadMem(), Disk::ReadRequest(), Machine::Translate(), Machine::WriteMem(), Disk::WriteRequest(), and Interrupt::YieldOnReturn().


Typedef Documentation

typedef void(* VoidFunctionPtr)(int arg)
 

Definition at line 53 of file utility.h.

Referenced by CallOnUserAbort(), Console::Console(), Disk::Disk(), Thread::Fork(), SynchList::Mapcar(), List::Mapcar(), Network::Network(), PendingInterrupt::PendingInterrupt(), Scheduler::Print(), Interrupt::Schedule(), and Timer::Timer().

typedef void(* VoidNoArgFunctionPtr)()
 

Definition at line 54 of file utility.h.

Referenced by CallOnUserAbort().


Function Documentation

void DEBUG char  flag,
char *  format,
  ...
 

Definition at line 66 of file utility.cc.

References DebugIsEnabled().

Referenced by AssignNameToSocket(), Network::CheckPktAvail(), Disk::ComputeLatency(), Disk::Disk(), Thread::Finish(), Thread::Fork(), Interrupt::Idle(), main(), List::Mapcar(), Machine::OneInstruction(), Interrupt::OneTick(), Semaphore::P(), Machine::RaiseException(), Machine::ReadMem(), Disk::ReadRequest(), schedule(), Interrupt::Schedule(), Network::Send(), Thread::Suspend(), Machine::Translate(), Semaphore::V(), Machine::WriteMem(), Disk::WriteRequest(), Thread::Yield(), and Thread::~Thread().

00067 { 00068 if (DebugIsEnabled(flag)) { 00069 va_list ap; 00070 // You will get an unused variable message here -- ignore it. 00071 va_start(ap, format); 00072 vfprintf(stdout, format, ap); 00073 va_end(ap); 00074 fflush(stdout); 00075 } 00076 }

void DebugInit char *  flags  ) 
 

Definition at line 39 of file utility.cc.

Referenced by Initialize().

00040 { 00041 enableFlags = flagList; 00042 }

bool DebugIsEnabled char  flag  ) 
 

Definition at line 50 of file utility.cc.

References FALSE.

Referenced by DEBUG(), Machine::OneInstruction(), Disk::ReadRequest(), Machine::Run(), and Disk::WriteRequest().

00051 { 00052 if (enableFlags != NULL) 00053 return (strchr(enableFlags, flag) != 0) 00054 || (strchr(enableFlags, '+') != 0); 00055 else 00056 return FALSE; 00057 }


Generated on Thu Sep 16 12:33:47 2004 for NachOS by doxygen 1.3.8