55 lines
		
	
	
		
			980 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			980 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (c) 2021-2023 Barcelona Supercomputing Center (BSC)
 | 
						|
 * SPDX-License-Identifier: GPL-3.0-or-later */
 | 
						|
 | 
						|
#ifndef EMU_H
 | 
						|
#define EMU_H
 | 
						|
 | 
						|
#include "bay.h"
 | 
						|
#include "trace.h"
 | 
						|
#include "emu_args.h"
 | 
						|
#include "system.h"
 | 
						|
#include "player.h"
 | 
						|
#include "model.h"
 | 
						|
#include "emu_ev.h"
 | 
						|
#include "recorder.h"
 | 
						|
#include "emu_stat.h"
 | 
						|
 | 
						|
enum error_values {
 | 
						|
	ST_BAD = 666,
 | 
						|
	ST_TOO_MANY_TH = 777,
 | 
						|
};
 | 
						|
 | 
						|
struct emu {
 | 
						|
	struct bay bay;
 | 
						|
 | 
						|
	struct emu_args args;
 | 
						|
	struct trace trace;
 | 
						|
	struct system system;
 | 
						|
	struct player player;
 | 
						|
	struct model model;
 | 
						|
	struct recorder recorder;
 | 
						|
	struct emu_stat stat;
 | 
						|
 | 
						|
	int finished;
 | 
						|
 | 
						|
	/* Quick access */
 | 
						|
	struct stream *stream;
 | 
						|
	struct emu_ev *ev;
 | 
						|
	struct thread *thread;
 | 
						|
	struct proc *proc;
 | 
						|
	struct loom *loom;
 | 
						|
};
 | 
						|
 | 
						|
int emu_init(struct emu *emu, int argc, char *argv[]);
 | 
						|
int emu_connect(struct emu *emu);
 | 
						|
int emu_step(struct emu *emu);
 | 
						|
int emu_finish(struct emu *emu);
 | 
						|
 | 
						|
static inline struct emu *
 | 
						|
emu_get(void *ptr)
 | 
						|
{
 | 
						|
	return (struct emu *) ptr;
 | 
						|
}
 | 
						|
 | 
						|
#endif /* EMU_H */
 |