[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 3/3] tools/xen-access: Use the new mem_access APIs



On 14/04/14 23:02, Aravindh Puthiyaparambil wrote:
> Modify the xen-access test program to use the new mem_access APIs.
>
> Signed-off-by: Aravindh Puthiyaparambil <aravindp@xxxxxxxxx>
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>

This patch must be folded into the previous patch which makes the
changes in libxc, or the build will break.

~Andrew

> ---
> Changes from version 1 of the patch:
> Remove extra "gfn" parameter from xc_mem_access_resume() call.
>
> diff --git a/tools/tests/xen-access/xen-access.c 
> b/tools/tests/xen-access/xen-access.c
> index f6522a1..0a84bd5 100644
> --- a/tools/tests/xen-access/xen-access.c
> +++ b/tools/tests/xen-access/xen-access.c
> @@ -410,8 +410,7 @@ static int xenaccess_resume_page(xenaccess_t *paging, 
> mem_event_response_t *rsp)
>          goto out;
>  
>      /* Tell Xen page is ready */
> -    ret = xc_mem_access_resume(paging->xc_handle, 
> paging->mem_event.domain_id,
> -                               rsp->gfn);
> +    ret = xc_mem_access_resume(paging->xc_handle, 
> paging->mem_event.domain_id);
>      ret = xc_evtchn_notify(paging->mem_event.xce_handle,
>                             paging->mem_event.port);
>  
> @@ -440,8 +439,8 @@ int main(int argc, char *argv[])
>      int rc = -1;
>      int rc1;
>      xc_interface *xch;
> -    hvmmem_access_t default_access = HVMMEM_access_rwx;
> -    hvmmem_access_t after_first_access = HVMMEM_access_rwx;
> +    xenmem_access_t default_access = XENMEM_access_rwx;
> +    xenmem_access_t after_first_access = XENMEM_access_rwx;
>      int required = 0;
>      int int3 = 0;
>      int shutting_down = 0;
> @@ -475,13 +474,13 @@ int main(int argc, char *argv[])
>  
>      if ( !strcmp(argv[0], "write") )
>      {
> -        default_access = HVMMEM_access_rx;
> -        after_first_access = HVMMEM_access_rwx;
> +        default_access = XENMEM_access_rx;
> +        after_first_access = XENMEM_access_rwx;
>      }
>      else if ( !strcmp(argv[0], "exec") )
>      {
> -        default_access = HVMMEM_access_rw;
> -        after_first_access = HVMMEM_access_rwx;
> +        default_access = XENMEM_access_rw;
> +        after_first_access = XENMEM_access_rwx;
>      }
>      else if ( !strcmp(argv[0], "int3") )
>      {
> @@ -520,15 +519,15 @@ int main(int argc, char *argv[])
>      }
>  
>      /* Set the default access type and convert all pages to it */
> -    rc = xc_hvm_set_mem_access(xch, domain_id, default_access, ~0ull, 0);
> +    rc = xc_set_mem_access(xch, domain_id, default_access, ~0ull, 0);
>      if ( rc < 0 )
>      {
>          ERROR("Error %d setting default mem access type\n", rc);
>          goto exit;
>      }
>  
> -    rc = xc_hvm_set_mem_access(xch, domain_id, default_access, 0,
> -                               xenaccess->domain_info->max_pages);
> +    rc = xc_set_mem_access(xch, domain_id, default_access, 0,
> +                           xenaccess->domain_info->max_pages);
>      if ( rc < 0 )
>      {
>          ERROR("Error %d setting all memory to access type %d\n", rc,
> @@ -554,8 +553,9 @@ int main(int argc, char *argv[])
>              DPRINTF("xenaccess shutting down on signal %d\n", interrupted);
>  
>              /* Unregister for every event */
> -            rc = xc_hvm_set_mem_access(xch, domain_id, HVMMEM_access_rwx, 
> ~0ull, 0);
> -            rc = xc_hvm_set_mem_access(xch, domain_id, HVMMEM_access_rwx, 0, 
> xenaccess->domain_info->max_pages);
> +            rc = xc_set_mem_access(xch, domain_id, XENMEM_access_rwx, ~0ull, 
> 0);
> +            rc = xc_set_mem_access(xch, domain_id, XENMEM_access_rwx, 0,
> +                                   xenaccess->domain_info->max_pages);
>              rc = xc_set_hvm_param(xch, domain_id, 
> HVM_PARAM_MEMORY_EVENT_INT3, HVMPME_mode_disabled);
>  
>              shutting_down = 1;
> @@ -575,7 +575,7 @@ int main(int argc, char *argv[])
>  
>          while ( 
> RING_HAS_UNCONSUMED_REQUESTS(&xenaccess->mem_event.back_ring) )
>          {
> -            hvmmem_access_t access;
> +            xenmem_access_t access;
>  
>              rc = get_request(&xenaccess->mem_event, &req);
>              if ( rc != 0 )
> @@ -591,7 +591,7 @@ int main(int argc, char *argv[])
>  
>              switch (req.reason) {
>              case MEM_EVENT_REASON_VIOLATION:
> -                rc = xc_hvm_get_mem_access(xch, domain_id, req.gfn, &access);
> +                rc = xc_get_mem_access(xch, domain_id, req.gfn, &access);
>                  if (rc < 0)
>                  {
>                      ERROR("Error %d getting mem_access event\n", rc);
> @@ -611,8 +611,8 @@ int main(int argc, char *argv[])
>  
>                  if ( default_access != after_first_access )
>                  {
> -                    rc = xc_hvm_set_mem_access(xch, domain_id,
> -                                               after_first_access, req.gfn, 
> 1);
> +                    rc = xc_set_mem_access(xch, domain_id, 
> after_first_access,
> +                                           req.gfn, 1);
>                      if (rc < 0)
>                      {
>                          ERROR("Error %d setting gfn to access_type %d\n", rc,


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.