X-Git-Url: http://git.squeep.com/?p=dcpu16;a=blobdiff_plain;f=dcpu16.h;fp=dcpu16.h;h=38203edfc52eee41553f9d28a1f9812d4b4c648f;hp=f2bf787b52a589525961ec69fd75cdf03bc1c565;hb=ce296c260b229bb5c2e866db7842f3a46ea8c4b7;hpb=ca03eaaf8fc937a38221cb724857276ece6fd816 diff --git a/dcpu16.h b/dcpu16.h index f2bf787..38203ed 100644 --- a/dcpu16.h +++ b/dcpu16.h @@ -40,6 +40,7 @@ struct dcpu16 { size_t hw_table_entries_; /* hardware list maintenance */ size_t hw_table_allocated_; /* hardware list maintenance */ + unsigned long long cycle_; /* number of cycles this core has executed */ unsigned int skip_ : 1; /* skip execution of next instruction */ unsigned int interrupts_deferred_ : 1; /* queue software interrupts */ unsigned int on_fire_ : 1; /* cpu is on fire */ @@ -48,7 +49,6 @@ struct dcpu16 { size_t interrupts_head_; /* interrupt queue maintenance */ size_t interrupts_tail_; /* interrupt queue maintenance */ - unsigned long long cycle; /* number of cycles this core has executed */ DCPU16_WORD reg[DCPU16_REG__NUM]; /* system registers, a b c x y z i j */ DCPU16_WORD ram[DCPU16_RAM]; /* memory */ }; @@ -116,6 +116,7 @@ void dcpu16_step(struct dcpu16 *); void dcpu16_delete(struct dcpu16 **); int dcpu16_interrupt(struct dcpu16 *, DCPU16_WORD); +void dcpu16_cycle_inc(struct dcpu16 *, unsigned int); /* register callbacks to handle warning and debug messages, default is writing to stderr, may be set to null */ void dcpu16_warn_cb_set(void (*)(char *, ...));