VirtualBox

Changeset 106417 in vbox


Ignore:
Timestamp:
Oct 17, 2024 9:45:49 AM (5 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165236
Message:

include/iprt/nt/nt.h: Make it work for win.arm64, bugref:10392

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/nt/nt.h

    r106061 r106417  
    841841# ifdef RT_ARCH_X86
    842842#  define KI_USER_SHARED_DATA           UINT32_C(0xffdf0000)
    843 # elif defined(RT_ARCH_AMD64)
     843# elif defined(RT_ARCH_AMD64) || defined(RT_ARCH_ARM64)
    844844#  define KI_USER_SHARED_DATA           UINT64_C(0xfffff78000000000)
    845845# else
     
    16191619DECL_FORCE_INLINE(NTSTATUS) RTNtLastStatusValue(void) { return (NTSTATUS)__readgsdword(RT_UOFFSETOF(TEB_COMMON, LastStatusValue)); }
    16201620DECL_FORCE_INLINE(uint32_t) RTNtLastErrorValue(void)  { return __readgsdword(RT_UOFFSETOF(TEB_COMMON, LastErrorValue)); }
     1621# elif defined(RT_ARCH_ARM64)
     1622DECL_FORCE_INLINE(PTEB)     RTNtCurrentTeb(void) { return (PTEB)__getReg(18); } /* The pointer to the TEB lives in x18. */
     1623DECL_FORCE_INLINE(PPEB)     RTNtCurrentPeb(void) { return RTNtCurrentTeb()->ProcessEnvironmentBlock; }
     1624DECL_FORCE_INLINE(uint32_t) RTNtCurrentThreadId(void) { return (uint32_t)(uintptr_t)RTNtCurrentTeb()->ClientId.UniqueThread; }
     1625DECL_FORCE_INLINE(NTSTATUS) RTNtLastStatusValue(void) { return RTNtCurrentTeb()->LastStatusValue; }
     1626DECL_FORCE_INLINE(uint32_t) RTNtLastErrorValue(void)  { return RTNtCurrentTeb()->LastErrorValue; }
    16211627# else
    16221628#  error "Port me"
     
    23962402typedef FILE_DESIRED_STORAGE_CLASS_INFORMATION *PFILE_DESIRED_STORAGE_CLASS_INFORMATION;
    23972403# endif
     2404# if !defined(IPRT_NT_USE_WINTERNL) || (WDK_NTDDI_VERSION < NTDDI_WIN11_GE) /* Available since at least SDK 10.0.26100.0 (didn't bother to check for earlier version). */
    23982405typedef struct _FILE_STAT_INFORMATION
    23992406{
     
    24112418} FILE_STAT_INFORMATION;
    24122419typedef FILE_STAT_INFORMATION *PFILE_STAT_INFORMATION;
     2420# endif
     2421# ifndef LX_FILE_METADATA_HAS_UID
    24132422typedef struct _FILE_STAT_LX_INFORMATION
    24142423{
     
    24322441} FILE_STAT_LX_INFORMATION;
    24332442typedef FILE_STAT_LX_INFORMATION *PFILE_STAT_LX_INFORMATION;
     2443# endif
     2444# ifndef FILE_CS_FLAG_CASE_SENSITIVE_DIR
    24342445typedef struct _FILE_CASE_SENSITIVE_INFORMATION
    24352446{
     
    24372448} FILE_CASE_SENSITIVE_INFORMATION;
    24382449typedef FILE_CASE_SENSITIVE_INFORMATION *PFILE_CASE_SENSITIVE_INFORMATION;
     2450# endif
    24392451
    24402452typedef enum _FILE_INFORMATION_CLASS
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette