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

[mini-os master] gnttab: add function to obtain memory address from grantref



commit c164be54095314ef0c417765eba94f4182a66995
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Tue Jul 15 15:29:34 2025 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Jul 16 15:04:56 2025 +0200

    gnttab: add function to obtain memory address from grantref
    
    Add a new function gnttab_get_addr() to obtain a memory pointer for a
    given grant reference.
    
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Jason Andryuk <jason.andryuk@xxxxxxx>
---
 gnttab.c         | 10 ++++++++++
 include/gnttab.h |  1 +
 2 files changed, 11 insertions(+)

diff --git a/gnttab.c b/gnttab.c
index 6bac090..52d6792 100644
--- a/gnttab.c
+++ b/gnttab.c
@@ -149,6 +149,16 @@ gnttab_end_transfer(grant_ref_t ref)
 }
 EXPORT_SYMBOL(gnttab_end_transfer);
 
+void *gnttab_get_addr(grant_ref_t ref)
+{
+    BUG_ON(ref >= NR_GRANT_ENTRIES || ref < NR_RESERVED_ENTRIES);
+
+    if ( !gnttab_table[ref].flags )
+        return NULL;
+
+    return mfn_to_virt(gnttab_table[ref].frame);
+}
+
 static const char * const gnttabop_error_msgs[] = GNTTABOP_error_msgs;
 
 const char *
diff --git a/include/gnttab.h b/include/gnttab.h
index 108c442..46e72a3 100644
--- a/include/gnttab.h
+++ b/include/gnttab.h
@@ -9,6 +9,7 @@ grant_ref_t gnttab_grant_access(domid_t domid, unsigned long 
frame,
 grant_ref_t gnttab_grant_transfer(domid_t domid, unsigned long pfn);
 unsigned long gnttab_end_transfer(grant_ref_t gref);
 int gnttab_end_access(grant_ref_t ref);
+void *gnttab_get_addr(grant_ref_t ref);
 const char *gnttabop_error(int16_t status);
 void fini_gnttab(void);
 void suspend_gnttab(void);
--
generated by git-patchbot for /home/xen/git/mini-os.git#master



 


Rackspace

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