// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#include <signal.h>
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <wincon.h>

enum {
	$PROT_NONE = 0,
	$PROT_READ = 1,
	$PROT_WRITE = 2,
	$PROT_EXEC = 4,

	$MAP_ANON = 1,
	$MAP_PRIVATE = 2,

	$DUPLICATE_SAME_ACCESS = DUPLICATE_SAME_ACCESS,
	$THREAD_PRIORITY_HIGHEST = THREAD_PRIORITY_HIGHEST,

	$SIGINT = SIGINT,
	$CTRL_C_EVENT = CTRL_C_EVENT,
	$CTRL_BREAK_EVENT = CTRL_BREAK_EVENT,

	$CONTEXT_CONTROL = CONTEXT_CONTROL,
	$CONTEXT_FULL = CONTEXT_FULL,

	$EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION,
	$EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT,
	$EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND,
	$EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO,
	$EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT,
	$EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW,
	$EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW,
	$EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO,
	$EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW,
};

typedef SYSTEM_INFO $SystemInfo;
typedef EXCEPTION_RECORD $ExceptionRecord;
#ifdef _X86_
typedef FLOATING_SAVE_AREA $FloatingSaveArea;
#endif
#ifdef _AMD64_
typedef M128A $M128a;
#endif
typedef CONTEXT $Context;
