From cfebe5825512d187ce2d4ff98ee74e8da8eb901e Mon Sep 17 00:00:00 2001 From: Lucas Fryzek Date: Sun, 7 Jul 2024 20:12:12 +0100 Subject: Initial commit --- buildenv | 1 + drvemu.c | 25 +++++++++++++++++++++++++ meson.build | 10 ++++++++++ qemu-mips | 7 +++++++ 4 files changed, 43 insertions(+) create mode 100644 buildenv create mode 100644 drvemu.c create mode 100644 meson.build create mode 100644 qemu-mips diff --git a/buildenv b/buildenv new file mode 100644 index 0000000..01f775c --- /dev/null +++ b/buildenv @@ -0,0 +1 @@ +export QEMU_LD_PREFIX=/home/lfryzek/Documents/projects/hw/ci20/images/rootfs_2015_09_09 diff --git a/drvemu.c b/drvemu.c new file mode 100644 index 0000000..d16c44f --- /dev/null +++ b/drvemu.c @@ -0,0 +1,25 @@ +#include +#include +#include +#include +#include + +#define PROLOG(func) \ + static typeof(func) *orig_##func = NULL; \ + if(!orig_##func) \ + orig_##func = dlsym(RTLD_NEXT, #func); + +int open64(const char *pathname, int flags, ...) { + printf("Called open64 on %s (%d)\n", pathname, flags); + PROLOG(open64); + int fd = orig_open64(pathname, flags); + //check_fd(fd, pathname); + return fd; +} + +int openat(int dirfd, const char *pathname, int flags, ...) { + assert(false && "openat not implemented"); + printf("Called openat on %s (%d) (%d)\n", pathname, dirfd, flags); + PROLOG(openat); + return orig_openat(dirfd, pathname, flags); +} diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..53e52d9 --- /dev/null +++ b/meson.build @@ -0,0 +1,10 @@ +project('drvemu', 'c', + default_options : ['c_std=gnu99']) +add_project_arguments('-D_GNU_SOURCE', language: 'c') + +dl = dependency('dl') + +shared_library('drvemu', + 'drvemu.c', + build_by_default: true, + dependencies: dl) diff --git a/qemu-mips b/qemu-mips new file mode 100644 index 0000000..e0fd507 --- /dev/null +++ b/qemu-mips @@ -0,0 +1,7 @@ +[binaries] +c = ['qemu-mipsel', '/home/lfryzek/Documents/projects/hw/ci20/images/rootfs_2015_09_09/usr/bin/gcc'] +ar = ['qemu-mipsel', '/home/lfryzek/Documents/projects/hw/ci20/images/rootfs_2015_09_09/usr/bin/as'] +strip = ['qemu-mipsel', '/home/lfryzek/Documents/projects/hw/ci20/images/rootfs_2015_09_09/usr/bin/strip'] + +[built-in options] +c_args = ['--sysroot=/home/lfryzek/Documents/projects/hw/ci20/images/rootfs_2015_09_09'] -- cgit