Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
253a2e2e
Commit
253a2e2e
authored
Dec 08, 2021
by
Jinoh Kang
Committed by
Alexandre Julliard
May 31, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Define fast fail codes and the __fastfail() intrinsic.
Signed-off-by:
Jinoh Kang
<
jinoh.kang.kr@gmail.com
>
parent
66fb3bf6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
87 additions
and
0 deletions
+87
-0
winnt.h
include/winnt.h
+87
-0
No files found.
include/winnt.h
View file @
253a2e2e
...
...
@@ -934,6 +934,78 @@ NTSYSAPI PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(PSLIST_HEADER, PSLIST_
NTSYSAPI
WORD
WINAPI
RtlQueryDepthSList
(
PSLIST_HEADER
);
/* Fast fail (__fastfail) codes */
#define FAST_FAIL_LEGACY_GS_VIOLATION 0
#define FAST_FAIL_VTGUARD_CHECK_FAILURE 1
#define FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2
#define FAST_FAIL_CORRUPT_LIST_ENTRY 3
#define FAST_FAIL_INCORRECT_STACK 4
#define FAST_FAIL_INVALID_ARG 5
#define FAST_FAIL_GS_COOKIE_INIT 6
#define FAST_FAIL_FATAL_APP_EXIT 7
#define FAST_FAIL_RANGE_CHECK_FAILURE 8
#define FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9
#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10
#define FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11
#define FAST_FAIL_INVALID_FIBER_SWITCH 12
#define FAST_FAIL_INVALID_SET_OF_CONTEXT 13
#define FAST_FAIL_INVALID_REFERENCE_COUNT 14
#define FAST_FAIL_INVALID_JUMP_BUFFER 18
#define FAST_FAIL_MRDATA_MODIFIED 19
#define FAST_FAIL_CERTIFICATION_FAILURE 20
#define FAST_FAIL_INVALID_EXCEPTION_CHAIN 21
#define FAST_FAIL_CRYPTO_LIBRARY 22
#define FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23
#define FAST_FAIL_INVALID_IMAGE_BASE 24
#define FAST_FAIL_DLOAD_PROTECTION_FAILURE 25
#define FAST_FAIL_UNSAFE_EXTENSION_CALL 26
#define FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27
#define FAST_FAIL_INVALID_BUFFER_ACCESS 28
#define FAST_FAIL_INVALID_BALANCED_TREE 29
#define FAST_FAIL_INVALID_NEXT_THREAD 30
#define FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31
#define FAST_FAIL_APCS_DISABLED 32
#define FAST_FAIL_INVALID_IDLE_STATE 33
#define FAST_FAIL_MRDATA_PROTECTION_FAILURE 34
#define FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35
#define FAST_FAIL_INVALID_LOCK_STATE 36
#define FAST_FAIL_GUARD_JUMPTABLE 37
#define FAST_FAIL_INVALID_LONGJUMP_TARGET 38
#define FAST_FAIL_INVALID_DISPATCH_CONTEXT 39
#define FAST_FAIL_INVALID_THREAD 40
#define FAST_FAIL_INVALID_SYSCALL_NUMBER 41
#define FAST_FAIL_INVALID_FILE_OPERATION 42
#define FAST_FAIL_LPAC_ACCESS_DENIED 43
#define FAST_FAIL_GUARD_SS_FAILURE 44
#define FAST_FAIL_LOADER_CONTINUITY_FAILURE 45
#define FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46
#define FAST_FAIL_INVALID_CONTROL_STACK 47
#define FAST_FAIL_SET_CONTEXT_DENIED 48
#define FAST_FAIL_INVALID_IAT 49
#define FAST_FAIL_HEAP_METADATA_CORRUPTION 50
#define FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51
#define FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52
#define FAST_FAIL_ENCLAVE_CALL_FAILURE 53
#define FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54
#define FAST_FAIL_ADMINLESS_ACCESS_DENIED 55
#define FAST_FAIL_UNEXPECTED_CALL 56
#define FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57
#define FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58
#define FAST_FAIL_FLAGS_CORRUPTION 59
#define FAST_FAIL_VEH_CORRUPTION 60
#define FAST_FAIL_ETW_CORRUPTION 61
#define FAST_FAIL_RIO_ABORT 62
#define FAST_FAIL_INVALID_PFN 63
#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64
#define FAST_FAIL_CAST_GUARD 65
#define FAST_FAIL_HOST_VISIBILITY_CHANGE 66
#define FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67
#define FAST_FAIL_PATCH_CALLBACK_FAILED 68
#define FAST_FAIL_NTDLL_PATCH_FAILED 69
#define FAST_FAIL_INVALID_FLS_DATA 70
#define FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF
/* Heap flags */
#define HEAP_NO_SERIALIZE 0x00000001
...
...
@@ -6318,6 +6390,7 @@ typedef enum _PROCESS_MITIGATION_POLICY
#pragma intrinsic(_InterlockedDecrement16)
#pragma intrinsic(_InterlockedOr)
#pragma intrinsic(_InterlockedXor)
#pragma intrinsic(__fastfail)
BOOLEAN
_BitScanForward
(
unsigned
long
*
,
unsigned
long
);
BOOLEAN
_BitScanReverse
(
unsigned
long
*
,
unsigned
long
);
...
...
@@ -6332,6 +6405,7 @@ long _InterlockedIncrement(long volatile*);
short
_InterlockedIncrement16
(
short
volatile
*
);
long
_InterlockedOr
(
long
volatile
*
,
long
);
long
_InterlockedXor
(
long
volatile
*
,
long
);
DECLSPEC_NORETURN
void
__fastfail
(
unsigned
int
);
static
FORCEINLINE
long
InterlockedAdd
(
long
volatile
*
dest
,
long
val
)
{
...
...
@@ -6514,6 +6588,19 @@ static FORCEINLINE void MemoryBarrier(void)
__sync_synchronize
();
}
static
FORCEINLINE
DECLSPEC_NORETURN
void
__fastfail
(
unsigned
int
code
)
{
#if defined(__x86_64__) || defined(__i386__)
for
(;;)
__asm__
__volatile__
(
"int $0x29"
::
"c"
((
ULONG_PTR
)
code
)
:
"memory"
);
#elif defined(__aarch64__)
register
ULONG_PTR
val
__asm__
(
"x0"
)
=
code
;
for
(;;)
__asm__
__volatile__
(
"brk #0xf003"
::
"r"
(
val
)
:
"memory"
);
#elif defined(__arm__)
register
ULONG_PTR
val
__asm__
(
"r0"
)
=
code
;
for
(;;)
__asm__
__volatile__
(
"udf #0xfb"
::
"r"
(
val
)
:
"memory"
);
#endif
}
#endif
/* __GNUC__ */
#ifdef _WIN64
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment