[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v2 0/6] Native Library Calls
From: |
Yeqi Fu |
Subject: |
[RFC v2 0/6] Native Library Calls |
Date: |
Thu, 8 Jun 2023 00:47:44 +0800 |
This patch introduces a set of feature instructions for native calls
and provides helpers to translate these instructions to corresponding
native functions. A shared library is also implemented, where native
functions are rewritten as feature instructions. At runtime, user
programs load the shared library, and feature instructions are
executed when native functions are called. This patch is applicable
to user programs with architectures x86, x86_64, arm, aarch64, mips,
and mips64. To build, compile libnative.c into a shared library for
the user program's architecture and run the
'../configure --enable-user-native-call && make' command.
Yeqi Fu (6):
build: Add configure options for native calls
Add the libnative library
target/i386: Add native library calls
target/mips: Add native library calls
target/arm: Add native library calls
linux-user: Add '-native-bypass' option
Makefile | 4 ++
common-user/native/Makefile.include | 9 ++++
common-user/native/Makefile.target | 22 ++++++++++
common-user/native/libnative.c | 65 ++++++++++++++++++++++++++++
configure | 50 +++++++++++++++++++++
docs/devel/build-system.rst | 4 ++
include/native/libnative.h | 11 +++++
include/native/native-func.h | 11 +++++
include/qemu/envlist.h | 1 +
linux-user/main.c | 23 ++++++++++
meson.build | 8 ++++
meson_options.txt | 2 +
scripts/meson-buildoptions.sh | 4 ++
target/arm/helper.c | 47 ++++++++++++++++++++
target/arm/helper.h | 6 +++
target/arm/tcg/translate-a64.c | 22 ++++++++++
target/arm/tcg/translate.c | 25 ++++++++++-
target/arm/tcg/translate.h | 19 ++++++++
target/i386/helper.h | 6 +++
target/i386/tcg/translate.c | 20 +++++++++
target/i386/tcg/user/meson.build | 1 +
target/i386/tcg/user/native_helper.c | 65 ++++++++++++++++++++++++++++
target/mips/helper.h | 6 +++
target/mips/tcg/meson.build | 1 +
target/mips/tcg/native_helper.c | 55 +++++++++++++++++++++++
target/mips/tcg/translate.c | 20 ++++++++-
target/mips/tcg/translate.h | 12 +++++
util/envlist.c | 56 ++++++++++++++++++++++++
28 files changed, 573 insertions(+), 2 deletions(-)
create mode 100644 common-user/native/Makefile.include
create mode 100644 common-user/native/Makefile.target
create mode 100644 common-user/native/libnative.c
create mode 100644 include/native/libnative.h
create mode 100644 include/native/native-func.h
create mode 100644 target/i386/tcg/user/native_helper.c
create mode 100644 target/mips/tcg/native_helper.c
--
2.34.1
- [RFC v2 0/6] Native Library Calls,
Yeqi Fu <=