The following structures are used by AINT to interface with the back-end simulator:
class thread; // Defined in thread.h
class path; // Defined in path.h
class inflight_inst; // Defined in ifi.h
class icode; // Defined in icode.h
Each thread has a unique tid, which is an index into the global array Threads[], of pointers to the thread structures created by AINT.
Each inflight_inst in the pipeline (i.e., fetched but not committed/killed) contains a pointer to the icode corresponding to the static instruction of which it is a dynamic instance.
The inflight_inst belongs to a path, which in turn belongs to a thread. Each process has at least one thread, and the back-end must call AINT_create_path() to create the main path in each thread.
The functions that constitute the interface between AINT and the back-end are declared in sim.h.