file name: irqtemp.hpp
classification: pure simulation
contents: class CInterruptList
derived from: class ACObjectList
use: a list class for storing pointers to clock interrupt processes
with an integer as the key (the integer is the bit number in the interrupt
register and in the range of 0..63)
Note: the class was generated from listtemp.hpp.
Note: CInterruptList does not use the key structure SKey, but a pointer to int. Therefore, all references to SKey were replaced by int. Nevertheless, the file was not tested.
Functions Delete() and DeleteAll() were modified: since the interrupts are processes, some things have to be done before they can be deleted. So the delete object statement in the functions was replaced with a call to a new function:
void DeleteProcess
(ACProcess* object): the functions calls Cancel() and terminate()
for the process. If C++SIM uses resource control, processes must not be
deleted. Instead, they are unreferenced calling Resource::unref().
If resource control is used, NO_RESOURCE is defined. So the function
checks if NO_RESOURCE is defined, and if it is, it just calls
Resource::unref() with the object. Otherwise, it deletes the object.
The function was not tested, but since it does not produce any errors both
in DOS and in Linux, it is assumed to be correct.
global items used: