annotate mem_win.c @ 987:1f09994e92c5

Initial stab at implementing address error exceptions. Need to fill in the value of IR, undefined bits of last stack frame word and properly deal with address errors that occur during exception processing.
author Michael Pavone <pavone@retrodev.com>
date Tue, 26 Apr 2016 23:13:37 -0700
parents bce97fc0bb8a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 /*
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 Copyright 2013 Michael Pavone
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 This file is part of BlastEm.
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 */
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 #include "mem.h"
795
bce97fc0bb8a Fix mingw-w64 build and cross-compilation
=?UTF-8?q?Higor=20Eur=C3=ADpedes?= <heuripedes@gmail.com>
parents: 741
diff changeset
8 #include <windows.h>
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 void * alloc_code(size_t *size)
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 {
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 *size += PAGE_SIZE - (*size & (PAGE_SIZE - 1));
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 return VirtualAlloc(NULL, *size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 }