[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mach branch, master, updated. v1.8-621-g660bc8ab
From: |
Samuel Thibault |
Subject: |
[SCM] GNU Mach branch, master, updated. v1.8-621-g660bc8ab |
Date: |
Sun, 30 Apr 2023 20:00:43 -0400 (EDT) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mach".
The branch, master has been updated
via 660bc8ab3813737b3857648b7ec60d88494aeed1 (commit)
from 589735c3220793d1e9423bf6ec751b4625309aac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 660bc8ab3813737b3857648b7ec60d88494aeed1
Author: Luca Dariz <luca@orpolo.org>
Date: Wed Apr 19 21:47:02 2023 +0200
x86_64: add 64-bit syscall entry point
While theoretically we could still use the same call gate as for
32-bit userspace, it doesn't seem very common, and gcc seems to not
encode properly the instruction. Instead we use syscall/sysret as
other kernels (e.g. XNU,Linux). This version still has some
limitations, but should be enough to start working on the 64-bit user
space.
* i386/i386/i386asm.sym: add more constants to fill pcb->iss
* i386/i386/ldt.c: configure 64-bit syscall entry point. We can just
check for the SEP bit as MSR are always available on x86_64.
* i386/i386/ldt.h: swap CS/DS segments order if !USER32 as required by
sysret
* i386/i386/locore.h: add syscall64 prototype
* i386/i386/msr.h: add MSR definitions and C read/write helpers
* i386/include/mach/i386/syscall_sw.h: remove old BSD_TRAP
* x86_64/Makefrag.am: selectively install syscall_sw.h depending on
USER32
* x86_64/include/syscall_sw.h: add entry point template from user
space
* x86_64/locore.S: implement syscall64 entry point and use it when a
64-bit user-space is configured
Message-Id: <20230419194703.410575-4-luca@orpolo.org>
-----------------------------------------------------------------------
Summary of changes:
i386/i386/i386asm.sym | 15 ++
i386/i386/ldt.c | 16 ++-
i386/i386/ldt.h | 9 +-
i386/i386/locore.h | 1 +
i386/i386/msr.h | 56 ++++++++
i386/include/mach/i386/syscall_sw.h | 12 +-
x86_64/Makefrag.am | 7 +-
.../mach/policy.h => x86_64/include/syscall_sw.h | 27 ++--
x86_64/locore.S | 158 ++++++++++++++++++++-
9 files changed, 265 insertions(+), 36 deletions(-)
create mode 100644 i386/i386/msr.h
copy include/mach/policy.h => x86_64/include/syscall_sw.h (74%)
hooks/post-receive
--
GNU Mach
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mach branch, master, updated. v1.8-621-g660bc8ab,
Samuel Thibault <=