#ifndef CBUS_H #define CBUS_H #include #include "memory.h" enum{ BROADCAST=0, REQUEST }; //use this struct to keep the processor queue for the bus in a //doubly linked list struct PQ { int PE; //the processor # long int address; int job; struct PQ* next; struct PQ* last; }; class CBus { public: CBus::CBus(void); CBus::CBus(int bsize); int CBus::getBusyCycles(void); long int CBus::getTotBusyCycles(void); void CBus::setBusyCycles(int); void CBus::addProcToQueue(int procnum, long int address, int job); int CBus::executeNextRequest(CMemory* cm); void CBus::decBusyCycles(void); struct PQ* CBus::getProcQueue(void); private: int BusyCycles; long int TotBusyCycles; struct PQ* ProcQueue; int BlockSize; }; #endif