VirtualBox

source: vbox/trunk/src/VBox/VMM/VMMR3/PGMPhysRWTmpl.h@ 56017

Last change on this file since 56017 was 55899, checked in by vboxsync, 10 years ago

PGM: Added an access origin to memory read & write calls that respects handlers. This will later be passed to the access handler, so that things like the page pool (and potentially others) can query IEM about instruction details when needed.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
1/* $Id: PGMPhysRWTmpl.h 55899 2015-05-18 09:47:57Z vboxsync $ */
2/** @file
3 * PGM - Page Manager and Monitor, Physical Memory Access Template.
4 */
5
6/*
7 * Copyright (C) 2006-2015 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18
19/**
20 * Read physical memory. (one byte/word/dword)
21 *
22 * This API respects access handlers and MMIO. Use PGMPhysSimpleReadGCPhys() if you
23 * want to ignore those.
24 *
25 * @param pVM Pointer to the VM.
26 * @param GCPhys Physical address start reading from.
27 * @param enmOrigin Who is calling.
28 */
29VMMDECL(PGMPHYS_DATATYPE) PGMPHYSFN_READNAME(PVM pVM, RTGCPHYS GCPhys, PGMACCESSORIGIN enmOrigin)
30{
31 Assert(VM_IS_EMT(pVM));
32 PGMPHYS_DATATYPE val;
33 PGMPhysRead(pVM, GCPhys, &val, sizeof(val), enmOrigin);
34 return val;
35}
36
37
38/**
39 * Write to physical memory. (one byte/word/dword)
40 *
41 * This API respects access handlers and MMIO. Use PGMPhysSimpleReadGCPhys() if you
42 * want to ignore those.
43 *
44 * @param pVM Pointer to the VM.
45 * @param GCPhys Physical address to write to.
46 * @param val What to write.
47 * @param enmOrigin Who is calling.
48 */
49VMMDECL(void) PGMPHYSFN_WRITENAME(PVM pVM, RTGCPHYS GCPhys, PGMPHYS_DATATYPE val, PGMACCESSORIGIN enmOrigin)
50{
51 Assert(VM_IS_EMT(pVM));
52 PGMPhysWrite(pVM, GCPhys, &val, sizeof(val), enmOrigin);
53}
54
55#undef PGMPHYSFN_READNAME
56#undef PGMPHYSFN_WRITENAME
57#undef PGMPHYS_DATATYPE
58#undef PGMPHYS_DATASIZE
59
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette