[MINI-OS PATCH 17/19] gnttab: add function to obtain memory address from grantref

Juergen Gross posted 19 patches 4 months ago
There is a newer version of this series
[MINI-OS PATCH 17/19] gnttab: add function to obtain memory address from grantref
Posted by Juergen Gross 4 months ago
Add a new function gnttab_get_addr() to obtain a memory pointer for a
given grant reference.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 gnttab.c         | 10 ++++++++++
 include/gnttab.h |  1 +
 2 files changed, 11 insertions(+)

diff --git a/gnttab.c b/gnttab.c
index 6bac0905..52d6792a 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 108c4425..46e72a36 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);
-- 
2.43.0
Re: [MINI-OS PATCH 17/19] gnttab: add function to obtain memory address from grantref
Posted by Jason Andryuk 3 months, 2 weeks ago
On 2025-07-02 04:12, Juergen Gross wrote:
> Add a new function gnttab_get_addr() to obtain a memory pointer for a
> given grant reference.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Maybe you want to name it gnttab_get_vaddr() to be a little more 
explicit in its return value?  Either way:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Re: [MINI-OS PATCH 17/19] gnttab: add function to obtain memory address from grantref
Posted by Juergen Gross 3 months, 2 weeks ago
On 14.07.25 23:23, Jason Andryuk wrote:
> On 2025-07-02 04:12, Juergen Gross wrote:
>> Add a new function gnttab_get_addr() to obtain a memory pointer for a
>> given grant reference.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> Maybe you want to name it gnttab_get_vaddr() to be a little more explicit in its 
> return value?

I think this isn't necessary. In case a physical address would be handed
back I'd agree to add 'p' for qualifying the address, but I don't think
we need to qualify virtual addresses as such.


Juergen