source: trunk/source/lisp-kernel/platform-win64.h @ 13638

Last change on this file since 13638 was 13638, checked in by gb, 11 years ago

Move more PPC exception stuff, x86 exception stuff to platform heeaders.
Introduce OS headers; so far, just signal constants. Include the applicable
os-*.h in platform-*.h.
Ensure that Makefiles have constants.h, os*.h in CHEADERS.
Will try to smoke-test & fix typos before sleeping.

File size: 1.7 KB
Line 
1/*
2   Copyright (C) 2010 Clozure Associates
3   Copyright (C) 1994-2001 Digitool, Inc
4   This file is part of Clozure CL. 
5
6   Clozure CL is licensed under the terms of the Lisp Lesser GNU Public
7   License , known as the LLGPL and distributed with Clozure CL as the
8   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,
9   which is distributed with Clozure CL as the file "LGPL".  Where these
10   conflict, the preamble takes precedence. 
11
12   Clozure CL is referenced in the preamble as the "LIBRARY."
13
14   The LLGPL is also available online at
15   http://opensource.franz.com/preamble.html
16*/
17
18#define WORD_SIZE 64
19#define PLATFORM_OS PLATFORM_OS_WINDOWS
20#define PLATFORM_CPU PLATFORM_CPU_X86
21#define PLATFORM_WORD_SIZE PLATFORM_WORD_SIZE_64
22
23#include <windows.h>
24
25typedef CONTEXT ExceptionInformation;
26
27#include "windows-inttypes.h"
28
29/* Supposedly, the high-end version of Vista allow 128GB of pageable memory */
30#define MAXIMUM_MAPPABLE_MEMORY (512LL<<30LL)
31#define IMAGE_BASE_ADDRESS 0x100000000LL
32
33#include "lisptypes.h"
34#include "x86-constants64.h"
35
36#define xpGPRvector(x) ((DWORD64 *)(&(x)->Rax))
37#define xpGPR(x,gprno) (xpGPRvector(x)[gprno])
38#define xpPC(x) xpGPR(x,Iip)
39#define eflags_register(xp) xp->EFlags
40#define xpMXCSRptr(x) (DWORD *)(&(x->MxCsr))
41
42#ifdef SOLARIS
43#define SIGNUM_FOR_INTN_TRAP SIGSEGV
44#ifdef X8664
45#define IS_MAYBE_INT_TRAP(info,xp) ((xpGPR(xp,REG_TRAPNO)==0xd)&&((xpGPR(xp,REG_ERR)&7)==2))
46#define IS_PAGE_FAULT(info,xp) (xpGPR(xp,REG_TRAPNO)==0xe)
47#else
48#define IS_MAYBE_INT_TRAP(info,xp) ((xpGPR(xp,TRAPNO)==0xd)&&((xpGPR(xp,ERR)&7)==2))
49#define IS_PAGE_FAULT(info,xp) (xpGPR(xp,TRAPNO)==0xe)
50#endif
51#define SIGRETURN(context) setcontext(context)
52#endif
53
54#include "os-windows.h"
Note: See TracBrowser for help on using the repository browser.