Files
xen/tools/libxc/xc_mem_access.c
T
Razvan Cojocaru 51c2291e14 vm_event: remove xc_mem_access_enable_emulate() and friends
xc_mem_access_enable_emulate() and xc_mem_access_disable_emulate()
are currently no-ops, that is all they do is set a flag that
nobody else checks. The user can already set the EMULATE flags in
the vm_event response if emulation is desired, and having an extra
check above that is not inherently safer, but it does complicate
(currenly unnecessarily) the API. This patch removes these
functions and the corresponding hypervisor code.

Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
2016-02-15 14:13:31 +01:00

73 lines
1.9 KiB
C

/******************************************************************************
*
* tools/libxc/xc_mem_access.c
*
* Interface to low-level memory access mode functionality
*
* Copyright (c) 2011 Virtuata, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; If not, see <http://www.gnu.org/licenses/>.
*/
#include "xc_private.h"
#include <xen/memory.h>
int xc_set_mem_access(xc_interface *xch,
domid_t domain_id,
xenmem_access_t access,
uint64_t first_pfn,
uint32_t nr)
{
xen_mem_access_op_t mao =
{
.op = XENMEM_access_op_set_access,
.domid = domain_id,
.access = access,
.pfn = first_pfn,
.nr = nr
};
return do_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao));
}
int xc_get_mem_access(xc_interface *xch,
domid_t domain_id,
uint64_t pfn,
xenmem_access_t *access)
{
int rc;
xen_mem_access_op_t mao =
{
.op = XENMEM_access_op_get_access,
.domid = domain_id,
.pfn = pfn
};
rc = do_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao));
if ( rc == 0 )
*access = mao.access;
return rc;
}
/*
* Local variables:
* mode: C
* c-file-style: "BSD"
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/