88 lines
1.1 KiB
C
88 lines
1.1 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
nxamd64.w
|
|
|
|
Abstract:
|
|
|
|
User mode visible AMD64 specific structures and constants.
|
|
|
|
This file contains platform specific definitions that are included
|
|
after all other files have been included from nt.h.
|
|
|
|
Author:
|
|
|
|
David N. Cutler (davec) 6-May-2000
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _NXAMD64_
|
|
#define _NXAMD64_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// Define platform specific functions to access the TEB.
|
|
//
|
|
|
|
// begin_winnt
|
|
|
|
#if defined(_M_AMD64) && !defined(__midl)
|
|
|
|
// end_winnt
|
|
|
|
__forceinline
|
|
PTEB
|
|
NtCurrentTeb (
|
|
VOID
|
|
)
|
|
|
|
{
|
|
return (PTEB)__readgsqword(FIELD_OFFSET(NT_TIB, Self));
|
|
}
|
|
|
|
// begin_winnt
|
|
|
|
__forceinline
|
|
PVOID
|
|
GetCurrentFiber (
|
|
VOID
|
|
)
|
|
|
|
{
|
|
|
|
return (PVOID)__readgsqword(FIELD_OFFSET(NT_TIB, FiberData));
|
|
}
|
|
|
|
__forceinline
|
|
PVOID
|
|
GetFiberData (
|
|
VOID
|
|
)
|
|
|
|
{
|
|
|
|
return *(PVOID *)GetCurrentFiber();
|
|
}
|
|
|
|
#endif // _M_AMD64 && !defined(__midl)
|
|
|
|
// end_winnt
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _NXAMD64_
|