Remove emu prefix from trace and stream
This commit is contained in:
parent
242ea71ee6
commit
8ed9063488
@ -19,8 +19,8 @@ add_library(emu STATIC
|
||||
emu_ev.c
|
||||
emu_model.c
|
||||
emu_player.c
|
||||
emu_stream.c
|
||||
emu_trace.c
|
||||
stream.c
|
||||
trace.c
|
||||
loom.c
|
||||
metadata.c
|
||||
mux.c
|
||||
|
@ -18,7 +18,7 @@ emu_init(struct emu *emu, int argc, char *argv[])
|
||||
emu_args_init(&emu->args, argc, argv);
|
||||
|
||||
/* Load the streams into the trace */
|
||||
if (emu_trace_load(&emu->trace, emu->args.tracedir) != 0) {
|
||||
if (trace_load(&emu->trace, emu->args.tracedir) != 0) {
|
||||
err("cannot load trace '%s'\n", emu->args.tracedir);
|
||||
return -1;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
#define EMU_H
|
||||
|
||||
#include "bay.h"
|
||||
#include "emu_trace.h"
|
||||
#include "trace.h"
|
||||
#include "emu_args.h"
|
||||
#include "system.h"
|
||||
#include "emu_player.h"
|
||||
@ -22,14 +22,14 @@ struct emu {
|
||||
struct bay bay;
|
||||
|
||||
struct emu_args args;
|
||||
struct emu_trace trace;
|
||||
struct trace trace;
|
||||
struct system system;
|
||||
struct emu_player player;
|
||||
struct emu_model model;
|
||||
struct recorder recorder;
|
||||
|
||||
/* Quick access */
|
||||
struct emu_stream *stream;
|
||||
struct stream *stream;
|
||||
struct emu_ev *ev;
|
||||
struct thread *thread;
|
||||
struct proc *proc;
|
||||
|
@ -15,13 +15,13 @@
|
||||
static inline int
|
||||
stream_cmp(heap_node_t *a, heap_node_t *b)
|
||||
{
|
||||
struct emu_stream *sa, *sb;
|
||||
struct stream *sa, *sb;
|
||||
|
||||
sa = heap_elem(a, struct emu_stream, hh);
|
||||
sb = heap_elem(b, struct emu_stream, hh);
|
||||
sa = heap_elem(a, struct stream, hh);
|
||||
sb = heap_elem(b, struct stream, hh);
|
||||
|
||||
int64_t ca = emu_stream_lastclock(sa);
|
||||
int64_t cb = emu_stream_lastclock(sb);
|
||||
int64_t ca = stream_lastclock(sa);
|
||||
int64_t cb = stream_lastclock(sb);
|
||||
|
||||
/* Return the opposite, so we have min-heap */
|
||||
if (ca < cb)
|
||||
@ -33,12 +33,12 @@ stream_cmp(heap_node_t *a, heap_node_t *b)
|
||||
}
|
||||
|
||||
static int
|
||||
step_stream(struct emu_player *player, struct emu_stream *stream)
|
||||
step_stream(struct emu_player *player, struct stream *stream)
|
||||
{
|
||||
if (!stream->active)
|
||||
return +1;
|
||||
|
||||
int ret = emu_stream_step(stream);
|
||||
int ret = stream_step(stream);
|
||||
|
||||
if (ret < 0) {
|
||||
err("step_stream: cannot step stream '%s'\n",
|
||||
@ -54,7 +54,7 @@ step_stream(struct emu_player *player, struct emu_stream *stream)
|
||||
}
|
||||
|
||||
int
|
||||
emu_player_init(struct emu_player *player, struct emu_trace *trace)
|
||||
emu_player_init(struct emu_player *player, struct trace *trace)
|
||||
{
|
||||
memset(player, 0, sizeof(struct emu_player));
|
||||
|
||||
@ -64,7 +64,7 @@ emu_player_init(struct emu_player *player, struct emu_trace *trace)
|
||||
player->stream = NULL;
|
||||
|
||||
/* Load initial streams and events */
|
||||
struct emu_stream *stream;
|
||||
struct stream *stream;
|
||||
DL_FOREACH(trace->streams, stream) {
|
||||
int ret = step_stream(player, stream);
|
||||
if (ret > 0) {
|
||||
@ -80,7 +80,7 @@ emu_player_init(struct emu_player *player, struct emu_trace *trace)
|
||||
}
|
||||
|
||||
static int
|
||||
update_clocks(struct emu_player *player, struct emu_stream *stream)
|
||||
update_clocks(struct emu_player *player, struct stream *stream)
|
||||
{
|
||||
/* This can happen if two events are not ordered in the stream, but the
|
||||
* emulator picks other events in the middle. Example:
|
||||
@ -95,7 +95,7 @@ update_clocks(struct emu_player *player, struct emu_stream *stream)
|
||||
* 12
|
||||
* ...
|
||||
* */
|
||||
int64_t sclock = emu_stream_lastclock(stream);
|
||||
int64_t sclock = stream_lastclock(stream);
|
||||
|
||||
if (player->first_event) {
|
||||
player->first_event = 0;
|
||||
@ -133,7 +133,7 @@ emu_player_step(struct emu_player *player)
|
||||
if (node == NULL)
|
||||
return +1;
|
||||
|
||||
struct emu_stream *stream = heap_elem(node, struct emu_stream, hh);
|
||||
struct stream *stream = heap_elem(node, struct stream, hh);
|
||||
|
||||
if (stream == NULL) {
|
||||
err("emu_player_step: heap_elem() returned NULL\n");
|
||||
@ -147,8 +147,8 @@ emu_player_step(struct emu_player *player)
|
||||
|
||||
player->stream = stream;
|
||||
|
||||
struct ovni_ev *oev = emu_stream_ev(stream);
|
||||
int64_t sclock = emu_stream_evclock(stream, oev);
|
||||
struct ovni_ev *oev = stream_ev(stream);
|
||||
int64_t sclock = stream_evclock(stream, oev);
|
||||
emu_ev(&player->ev, oev, sclock, player->deltaclock);
|
||||
|
||||
return 0;
|
||||
@ -160,7 +160,7 @@ emu_player_ev(struct emu_player *player)
|
||||
return &player->ev;
|
||||
}
|
||||
|
||||
struct emu_stream *
|
||||
struct stream *
|
||||
emu_player_stream(struct emu_player *player)
|
||||
{
|
||||
return player->stream;
|
||||
|
@ -4,7 +4,7 @@
|
||||
#ifndef EMU_PLAYER_H
|
||||
#define EMU_PLAYER_H
|
||||
|
||||
#include "emu_trace.h"
|
||||
#include "trace.h"
|
||||
#include "emu_ev.h"
|
||||
|
||||
#include <linux/limits.h>
|
||||
@ -15,13 +15,13 @@ struct emu_player {
|
||||
int64_t lastclock;
|
||||
int64_t deltaclock;
|
||||
int first_event;
|
||||
struct emu_stream *stream;
|
||||
struct stream *stream;
|
||||
struct emu_ev ev;
|
||||
};
|
||||
|
||||
int emu_player_init(struct emu_player *player, struct emu_trace *trace);
|
||||
int emu_player_init(struct emu_player *player, struct trace *trace);
|
||||
int emu_player_step(struct emu_player *player);
|
||||
struct emu_ev *emu_player_ev(struct emu_player *player);
|
||||
struct emu_stream *emu_player_stream(struct emu_player *player);
|
||||
struct stream *emu_player_stream(struct emu_player *player);
|
||||
|
||||
#endif /* EMU_PLAYER_H */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Copyright (c) 2021-2023 Barcelona Supercomputing Center (BSC)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
#include "emu_stream.h"
|
||||
#include "stream.h"
|
||||
|
||||
#include "ovni.h"
|
||||
#include <sys/stat.h>
|
||||
@ -10,7 +10,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
static int
|
||||
check_stream_header(struct emu_stream *stream)
|
||||
check_stream_header(struct stream *stream)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
@ -42,7 +42,7 @@ check_stream_header(struct emu_stream *stream)
|
||||
}
|
||||
|
||||
static int
|
||||
load_stream_fd(struct emu_stream *stream, int fd)
|
||||
load_stream_fd(struct stream *stream, int fd)
|
||||
{
|
||||
struct stat st;
|
||||
if (fstat(fd, &st) < 0) {
|
||||
@ -70,35 +70,35 @@ load_stream_fd(struct emu_stream *stream, int fd)
|
||||
}
|
||||
|
||||
int
|
||||
emu_stream_load(struct emu_stream *stream, const char *tracedir, const char *relpath)
|
||||
stream_load(struct stream *stream, const char *tracedir, const char *relpath)
|
||||
{
|
||||
int fd;
|
||||
|
||||
if (snprintf(stream->path, PATH_MAX, "%s/%s", tracedir, relpath) >= PATH_MAX) {
|
||||
err("emu_stream_load: path too long: %s/%s\n", tracedir, relpath);
|
||||
err("stream_load: path too long: %s/%s\n", tracedir, relpath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (snprintf(stream->relpath, PATH_MAX, "%s", relpath) >= PATH_MAX) {
|
||||
err("emu_stream_load: path too long: %s\n", relpath);
|
||||
err("stream_load: path too long: %s\n", relpath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
dbg("emu_stream_load: loading %s\n", stream->relpath);
|
||||
dbg("stream_load: loading %s\n", stream->relpath);
|
||||
|
||||
if ((fd = open(stream->path, O_RDWR)) == -1) {
|
||||
err("emu_stream_load: open failed: %s\n", stream->path);
|
||||
err("stream_load: open failed: %s\n", stream->path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (load_stream_fd(stream, fd) != 0) {
|
||||
err("emu_stream_load: load_stream_fd failed for stream '%s'\n",
|
||||
err("stream_load: load_stream_fd failed for stream '%s'\n",
|
||||
stream->path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (check_stream_header(stream) != 0) {
|
||||
err("emu_stream_load: stream '%s' has bad header\n",
|
||||
err("stream_load: stream '%s' has bad header\n",
|
||||
stream->path);
|
||||
return -1;
|
||||
}
|
||||
@ -112,7 +112,7 @@ emu_stream_load(struct emu_stream *stream, const char *tracedir, const char *rel
|
||||
err("warning: stream '%s' has zero events\n", stream->relpath);
|
||||
stream->active = 0;
|
||||
} else {
|
||||
err("emu_stream_load: impossible, offset %ld bigger than size %ld\n",
|
||||
err("stream_load: impossible, offset %ld bigger than size %ld\n",
|
||||
stream->offset, stream->size);
|
||||
return -1;
|
||||
}
|
||||
@ -127,28 +127,28 @@ emu_stream_load(struct emu_stream *stream, const char *tracedir, const char *rel
|
||||
}
|
||||
|
||||
void
|
||||
emu_stream_data_set(struct emu_stream *stream, void *data)
|
||||
stream_data_set(struct stream *stream, void *data)
|
||||
{
|
||||
stream->data = data;
|
||||
}
|
||||
|
||||
void *
|
||||
emu_stream_data_get(struct emu_stream *stream)
|
||||
stream_data_get(struct stream *stream)
|
||||
{
|
||||
return stream->data;
|
||||
}
|
||||
|
||||
int
|
||||
emu_stream_clkoff_set(struct emu_stream *stream, int64_t clkoff)
|
||||
stream_clkoff_set(struct stream *stream, int64_t clkoff)
|
||||
{
|
||||
if (stream->cur_ev) {
|
||||
die("emu_stream_clkoff_set: cannot set clokoff in started stream '%s'\n",
|
||||
die("stream_clkoff_set: cannot set clokoff in started stream '%s'\n",
|
||||
stream->relpath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (stream->clock_offset != 0) {
|
||||
err("emu_stream_clkoff_set: stream '%s' already has a clock offset\n",
|
||||
err("stream_clkoff_set: stream '%s' already has a clock offset\n",
|
||||
stream->relpath);
|
||||
return -1;
|
||||
}
|
||||
@ -159,28 +159,28 @@ emu_stream_clkoff_set(struct emu_stream *stream, int64_t clkoff)
|
||||
}
|
||||
|
||||
struct ovni_ev *
|
||||
emu_stream_ev(struct emu_stream *stream)
|
||||
stream_ev(struct stream *stream)
|
||||
{
|
||||
return stream->cur_ev;
|
||||
}
|
||||
|
||||
int64_t
|
||||
emu_stream_evclock(struct emu_stream *stream, struct ovni_ev *ev)
|
||||
stream_evclock(struct stream *stream, struct ovni_ev *ev)
|
||||
{
|
||||
return (int64_t) ovni_ev_get_clock(ev) + stream->clock_offset;
|
||||
}
|
||||
|
||||
int64_t
|
||||
emu_stream_lastclock(struct emu_stream *stream)
|
||||
stream_lastclock(struct stream *stream)
|
||||
{
|
||||
return stream->lastclock;
|
||||
}
|
||||
|
||||
int
|
||||
emu_stream_step(struct emu_stream *stream)
|
||||
stream_step(struct stream *stream)
|
||||
{
|
||||
if (!stream->active) {
|
||||
err("emu_stream_step: stream is inactive, cannot step\n");
|
||||
err("stream_step: stream is inactive, cannot step\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ emu_stream_step(struct emu_stream *stream)
|
||||
|
||||
/* It cannot pass the size, otherwise we are reading garbage */
|
||||
if (stream->offset > stream->size) {
|
||||
err("emu_stream_step: stream offset %ld exceeds size %ld\n",
|
||||
err("stream_step: stream offset %ld exceeds size %ld\n",
|
||||
stream->offset, stream->size);
|
||||
return -1;
|
||||
}
|
||||
@ -207,13 +207,13 @@ emu_stream_step(struct emu_stream *stream)
|
||||
|
||||
/* Ensure the event fits */
|
||||
if (stream->offset + ovni_ev_size(stream->cur_ev) > stream->size) {
|
||||
err("emu_stream_step: stream '%s' ends with incomplete event\n",
|
||||
err("stream_step: stream '%s' ends with incomplete event\n",
|
||||
stream->relpath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Ensure the clock grows monotonically */
|
||||
int64_t clock = emu_stream_evclock(stream, stream->cur_ev);
|
||||
int64_t clock = stream_evclock(stream, stream->cur_ev);
|
||||
if (clock < stream->lastclock) {
|
||||
err("clock goes backwards %ld -> %ld in stream '%s' at offset %ld\n",
|
||||
stream->lastclock,
|
||||
@ -228,7 +228,7 @@ emu_stream_step(struct emu_stream *stream)
|
||||
}
|
||||
|
||||
double
|
||||
emu_stream_progress(struct emu_stream *stream)
|
||||
stream_progress(struct stream *stream)
|
||||
{
|
||||
if (stream->usize == 0)
|
||||
return 1.0;
|
@ -9,9 +9,9 @@
|
||||
#include <stdint.h>
|
||||
#include <linux/limits.h>
|
||||
|
||||
struct emu_stream;
|
||||
struct stream;
|
||||
|
||||
struct emu_stream {
|
||||
struct stream {
|
||||
char path[PATH_MAX];
|
||||
char relpath[PATH_MAX]; /* To tracedir */
|
||||
|
||||
@ -28,26 +28,26 @@ struct emu_stream {
|
||||
int64_t clock_offset;
|
||||
|
||||
heap_node_t hh;
|
||||
struct emu_stream *next;
|
||||
struct emu_stream *prev;
|
||||
struct stream *next;
|
||||
struct stream *prev;
|
||||
|
||||
struct ovni_ev *cur_ev;
|
||||
|
||||
void *data; /* To hold system details */
|
||||
};
|
||||
|
||||
int emu_stream_load(struct emu_stream *stream,
|
||||
int stream_load(struct stream *stream,
|
||||
const char *tracedir, const char *relpath);
|
||||
|
||||
int emu_stream_clkoff_set(struct emu_stream *stream, int64_t clock_offset);
|
||||
int stream_clkoff_set(struct stream *stream, int64_t clock_offset);
|
||||
|
||||
double emu_stream_progress(struct emu_stream *stream);
|
||||
int emu_stream_step(struct emu_stream *stream);
|
||||
struct ovni_ev *emu_stream_ev(struct emu_stream *stream);
|
||||
int64_t emu_stream_evclock(struct emu_stream *stream, struct ovni_ev *ev);
|
||||
int64_t emu_stream_lastclock(struct emu_stream *stream);
|
||||
double stream_progress(struct stream *stream);
|
||||
int stream_step(struct stream *stream);
|
||||
struct ovni_ev *stream_ev(struct stream *stream);
|
||||
int64_t stream_evclock(struct stream *stream, struct ovni_ev *ev);
|
||||
int64_t stream_lastclock(struct stream *stream);
|
||||
|
||||
void emu_stream_data_set(struct emu_stream *stream, void *data);
|
||||
void *emu_stream_data_get(struct emu_stream *stream);
|
||||
void stream_data_set(struct stream *stream, void *data);
|
||||
void *stream_data_get(struct stream *stream);
|
||||
|
||||
#endif /* EMU_STREAM_H */
|
@ -137,7 +137,7 @@ create_loom(struct system *sys, const char *relpath)
|
||||
}
|
||||
|
||||
static int
|
||||
create_system(struct system *sys, struct emu_trace *trace)
|
||||
create_system(struct system *sys, struct trace *trace)
|
||||
{
|
||||
const char *dir = trace->tracedir;
|
||||
|
||||
@ -149,7 +149,7 @@ create_system(struct system *sys, struct emu_trace *trace)
|
||||
}
|
||||
|
||||
size_t i = 0;
|
||||
for (struct emu_stream *s = trace->streams; s ; s = s->next) {
|
||||
for (struct stream *s = trace->streams; s ; s = s->next) {
|
||||
if (!loom_matches(s->relpath)) {
|
||||
err("warning: ignoring unknown stream %s", s->relpath);
|
||||
continue;
|
||||
@ -180,7 +180,7 @@ create_system(struct system *sys, struct emu_trace *trace)
|
||||
lpt->proc = proc;
|
||||
lpt->thread = thread;
|
||||
|
||||
emu_stream_data_set(s, lpt);
|
||||
stream_data_set(s, lpt);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -396,7 +396,7 @@ parse_clkoff_entry(struct loom *looms, struct clkoff_entry *entry)
|
||||
}
|
||||
|
||||
static int
|
||||
init_offsets(struct system *sys, struct emu_trace *trace)
|
||||
init_offsets(struct system *sys, struct trace *trace)
|
||||
{
|
||||
struct clkoff *table = &sys->clkoff;
|
||||
int n = clkoff_count(table);
|
||||
@ -419,7 +419,7 @@ init_offsets(struct system *sys, struct emu_trace *trace)
|
||||
}
|
||||
}
|
||||
|
||||
for (struct emu_stream *s = trace->streams; s; s = s->next) {
|
||||
for (struct stream *s = trace->streams; s; s = s->next) {
|
||||
struct lpt *lpt = system_get_lpt(s);
|
||||
if (lpt == NULL) {
|
||||
err("cannot get stream lpt");
|
||||
@ -427,7 +427,7 @@ init_offsets(struct system *sys, struct emu_trace *trace)
|
||||
}
|
||||
|
||||
int64_t offset = lpt->loom->clock_offset;
|
||||
if (emu_stream_clkoff_set(s, offset) != 0) {
|
||||
if (stream_clkoff_set(s, offset) != 0) {
|
||||
err("cannot set clock offset");
|
||||
return -1;
|
||||
}
|
||||
@ -471,7 +471,7 @@ init_end_system(struct system *sys)
|
||||
}
|
||||
|
||||
int
|
||||
system_init(struct system *sys, struct emu_args *args, struct emu_trace *trace)
|
||||
system_init(struct system *sys, struct emu_args *args, struct trace *trace)
|
||||
{
|
||||
memset(sys, 0, sizeof(struct system));
|
||||
sys->args = args;
|
||||
@ -522,9 +522,9 @@ system_init(struct system *sys, struct emu_args *args, struct emu_trace *trace)
|
||||
}
|
||||
|
||||
struct lpt *
|
||||
system_get_lpt(struct emu_stream *stream)
|
||||
system_get_lpt(struct stream *stream)
|
||||
{
|
||||
struct lpt *lpt = emu_stream_data_get(stream);
|
||||
struct lpt *lpt = stream_data_get(stream);
|
||||
|
||||
if (lpt->stream != stream)
|
||||
die("inconsistent stream in lpt map");
|
||||
|
@ -5,8 +5,8 @@
|
||||
#define EMU_SYSTEM_H
|
||||
|
||||
#include "emu_args.h"
|
||||
#include "emu_trace.h"
|
||||
#include "emu_stream.h"
|
||||
#include "trace.h"
|
||||
#include "stream.h"
|
||||
#include "loom.h"
|
||||
#include "proc.h"
|
||||
#include "thread.h"
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
/* Map from stream to lpt */
|
||||
struct lpt {
|
||||
struct emu_stream *stream; /* Redundancy */
|
||||
struct stream *stream; /* Redundancy */
|
||||
struct loom *loom;
|
||||
struct proc *proc;
|
||||
struct thread *thread;
|
||||
@ -43,9 +43,9 @@ struct system {
|
||||
//struct model_ctx ctx;
|
||||
};
|
||||
|
||||
int system_init(struct system *sys, struct emu_args *args, struct emu_trace *trace);
|
||||
int system_init(struct system *sys, struct emu_args *args, struct trace *trace);
|
||||
int system_connect(struct system *sys, struct bay *bay, struct recorder *rec);
|
||||
struct lpt *system_get_lpt(struct emu_stream *stream);
|
||||
struct lpt *system_get_lpt(struct stream *stream);
|
||||
//struct emu_cpu *system_find_cpu(struct emu_loom *loom, int cpuid);
|
||||
//int model_ctx_set(struct model_ctx *ctx, int model, void *data);
|
||||
//int model_ctx_get(struct model_ctx *ctx, int model, void *data);
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#define _XOPEN_SOURCE 500
|
||||
|
||||
#include "emu_trace.h"
|
||||
#include "trace.h"
|
||||
#include "utlist.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -11,19 +11,19 @@
|
||||
|
||||
/* See the nftw(3) manual to see why we need a global variable here:
|
||||
* https://pubs.opengroup.org/onlinepubs/9699919799/functions/nftw.html */
|
||||
static struct emu_trace *cur_trace = NULL;
|
||||
static struct trace *cur_trace = NULL;
|
||||
|
||||
static void
|
||||
add_stream(struct emu_trace *trace, struct emu_stream *stream)
|
||||
add_stream(struct trace *trace, struct stream *stream)
|
||||
{
|
||||
DL_APPEND(trace->streams, stream);
|
||||
trace->nstreams++;
|
||||
}
|
||||
|
||||
static int
|
||||
load_stream(struct emu_trace *trace, const char *path)
|
||||
load_stream(struct trace *trace, const char *path)
|
||||
{
|
||||
struct emu_stream *stream = calloc(1, sizeof(struct emu_stream));
|
||||
struct stream *stream = calloc(1, sizeof(struct stream));
|
||||
|
||||
if (stream == NULL) {
|
||||
perror("calloc failed");
|
||||
@ -36,7 +36,7 @@ load_stream(struct emu_trace *trace, const char *path)
|
||||
/* Skip begin slashes */
|
||||
while (relpath[0] == '/') relpath++;
|
||||
|
||||
if (emu_stream_load(stream, trace->tracedir, relpath) != 0) {
|
||||
if (stream_load(stream, trace->tracedir, relpath) != 0) {
|
||||
err("load_stream: emu_steam_load failed\n");
|
||||
return -1;
|
||||
}
|
||||
@ -82,15 +82,15 @@ cb_nftw(const char *fpath, const struct stat *sb,
|
||||
}
|
||||
|
||||
static int
|
||||
cmp_streams(struct emu_stream *a, struct emu_stream *b)
|
||||
cmp_streams(struct stream *a, struct stream *b)
|
||||
{
|
||||
return strcmp(a->relpath, b->relpath);
|
||||
}
|
||||
|
||||
int
|
||||
emu_trace_load(struct emu_trace *trace, const char *tracedir)
|
||||
trace_load(struct trace *trace, const char *tracedir)
|
||||
{
|
||||
memset(trace, 0, sizeof(struct emu_trace));
|
||||
memset(trace, 0, sizeof(struct trace));
|
||||
|
||||
cur_trace = trace;
|
||||
|
@ -4,17 +4,17 @@
|
||||
#ifndef EMU_TRACE_H
|
||||
#define EMU_TRACE_H
|
||||
|
||||
#include "emu_stream.h"
|
||||
#include "stream.h"
|
||||
|
||||
#include <linux/limits.h>
|
||||
|
||||
struct emu_trace {
|
||||
struct trace {
|
||||
char tracedir[PATH_MAX];
|
||||
|
||||
long nstreams;
|
||||
struct emu_stream *streams;
|
||||
struct stream *streams;
|
||||
};
|
||||
|
||||
int emu_trace_load(struct emu_trace *trace, const char *tracedir);
|
||||
int trace_load(struct trace *trace, const char *tracedir);
|
||||
|
||||
#endif /* EMU_TRACE_H */
|
@ -15,10 +15,10 @@ unit_test(mux.c)
|
||||
unit_test(value.c)
|
||||
unit_test(prv.c)
|
||||
#unit_test(ovni_model.c)
|
||||
unit_test(emu_trace.c)
|
||||
unit_test(trace.c)
|
||||
unit_test(emu.c)
|
||||
unit_test(clkoff.c)
|
||||
unit_test(emu_stream.c)
|
||||
unit_test(stream.c)
|
||||
unit_test(loom.c)
|
||||
unit_test(thread.c)
|
||||
unit_test(proc.c)
|
||||
|
@ -1,14 +0,0 @@
|
||||
#include "emu/emu_trace.h"
|
||||
#include "common.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *tracedir = "/home/ram/bsc/ovni/traces/test/ovni";
|
||||
|
||||
struct emu_trace trace;
|
||||
|
||||
if (emu_trace_load(&trace, tracedir) != 0)
|
||||
die("emu_trace_load failed\n");
|
||||
|
||||
return 0;
|
||||
}
|
@ -24,10 +24,10 @@ test_ok(char *fname)
|
||||
|
||||
fclose(f);
|
||||
|
||||
struct emu_stream stream;
|
||||
struct stream stream;
|
||||
const char *relpath = &fname[5];
|
||||
if (emu_stream_load(&stream, "/tmp", relpath) != 0)
|
||||
die("emu_stream_load failed");
|
||||
if (stream_load(&stream, "/tmp", relpath) != 0)
|
||||
die("stream_load failed");
|
||||
|
||||
if (stream.active)
|
||||
die("stream is active\n");
|
||||
@ -51,10 +51,10 @@ test_bad(char *fname)
|
||||
|
||||
fclose(f);
|
||||
|
||||
struct emu_stream stream;
|
||||
struct stream stream;
|
||||
const char *relpath = &fname[5];
|
||||
if (emu_stream_load(&stream, "/tmp", relpath) == 0)
|
||||
die("emu_stream_load didn't fail");
|
||||
if (stream_load(&stream, "/tmp", relpath) == 0)
|
||||
die("stream_load didn't fail");
|
||||
}
|
||||
|
||||
int main(void)
|
14
test/unit/trace.c
Normal file
14
test/unit/trace.c
Normal file
@ -0,0 +1,14 @@
|
||||
#include "emu/trace.h"
|
||||
#include "common.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *tracedir = "/home/ram/bsc/ovni/traces/test/ovni";
|
||||
|
||||
struct trace trace;
|
||||
|
||||
if (trace_load(&trace, tracedir) != 0)
|
||||
die("trace_load failed\n");
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user