//
void MakePrime(BIGNUM *n, unsigned char *residues);
protected:
- bool Map(int f, unsigned char *data, int l);
+ virtual bool Map(int f, unsigned char *data, int l);
};
const unsigned char cMap0101::primes[] = {
virtual void Stepper(void);
virtual void TimerHandler(unsigned int num);
virtual void AddMapCycles(unsigned int num);
- virtual unsigned int MapCycles(void) { return Cycles(); }
+ virtual unsigned int CpuCycles(void) { return Cycles(); }
public:
cN2Prov0101(int Id, int Flags);
virtual bool PostProcAU(int id, unsigned char *data);
class cMap0501 : public cMapCore {
protected:
- bool Map(int f, unsigned char *data, int l);
+ virtual bool Map(int f, unsigned char *data, int l);
};
bool cMap0501::Map(int f, unsigned char *data, int l)
class cMap4101 : public cMapCore {
protected:
- bool Map(int f, unsigned char *data, int l);
+ virtual bool Map(int f, unsigned char *data, int l);
};
bool cMap4101::Map(int f, unsigned char *data, int l)
{
PRINTF(L_SYS_MAP,"%04x: calling function %02X",mapid,f);
cycles=0;
- unsigned int startcycles=MapCycles();
+ unsigned int startcycles=CpuCycles();
interrupted=false; interruptible=true;
try {
if(!Map(f,data,l) && !MapGeneric(f,data,l))
PRINTF(L_SYS_MAP,"%04x: unsupported call %02x",mapid,f);
+ if(cycles) {
+ unsigned int elapsed=CpuCycles()-startcycles;
+ if(cycles>elapsed) AddMapCycles(cycles-elapsed);
+ }
} catch(int) { interrupted=true; }
interruptible=false;
- if(!interrupted && cycles)
- AddMapCycles(MapCycles()-startcycles);
+ cycles=CpuCycles()-startcycles;
}
bool cMapCore::MapGeneric(int f, unsigned char *data, int l)
bool Interruptible(void) { return interruptible; }
bool Interrupted(void) { return interrupted; }
virtual void AddMapCycles(unsigned int num) {}
- virtual unsigned int MapCycles(void) { return 0; }
+ unsigned int MapCycles(void) { return cycles; }
+ virtual unsigned int CpuCycles(void) { return 0; }
public:
cMapCore(void);
virtual ~cMapCore() {}