[Top][All Lists]

[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 <>
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
    * 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
    * 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/ selectively install syscall_sw.h depending on
    * x86_64/include/syscall_sw.h: add entry point template from user
    * x86_64/locore.S: implement syscall64 entry point and use it when a
      64-bit user-space is configured
    Message-Id: <>


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/                                 |   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%)

GNU Mach

reply via email to

[Prev in Thread] Current Thread [Next in Thread]