LCOV - code coverage report
Current view: top level - zephyr/xen - gnttab.h Hit Total Coverage
Test: new.info Lines: 0 9 0.0 %
Date: 2024-12-21 18:13:37

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2021-2022 EPAM Systems
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : #ifndef __XEN_GNTTAB_H__
       7             : #define __XEN_GNTTAB_H__
       8             : 
       9             : #include <zephyr/xen/public/grant_table.h>
      10             : 
      11             : /*
      12             :  * Assigns gref and permits access to 4K page for specific domain.
      13             :  *
      14             :  * @param domid - id of the domain you sharing gref with
      15             :  * @param gfn - guest frame number of page, where grant will be located
      16             :  * @param readonly - permit readonly access to shared grant
      17             :  * @return - gref assigned to shared grant
      18             :  */
      19           0 : grant_ref_t gnttab_grant_access(domid_t domid, unsigned long gfn,
      20             :                 bool readonly);
      21             : 
      22             : /*
      23             :  * Finished access for previously shared grant. Does NOT
      24             :  * free memory, if it was previously allocated by
      25             :  * gnttab_alloc_and_grant().
      26             :  *
      27             :  * @param gref - grant reference that need to be closed
      28             :  * @return - zero on success, non-zero on failure
      29             :  */
      30           0 : int gnttab_end_access(grant_ref_t gref);
      31             : 
      32             : /*
      33             :  * Allocates 4K page for grant and share it via returned
      34             :  * gref. Need to k_free memory, which was allocated in
      35             :  * @map parameter after grant releasing.
      36             :  *
      37             :  * @param map - double pointer to memory, where grant will be allocated
      38             :  * @param readonly - permit readonly access to allocated grant
      39             :  * @return -  grant ref on success or negative errno on failure
      40             :  */
      41           0 : int32_t gnttab_alloc_and_grant(void **map, bool readonly);
      42             : 
      43             : /*
      44             :  * Provides interface to acquire free page, that can be used for
      45             :  * mapping of foreign frames. Should be freed by gnttab_put_page()
      46             :  * after usage.
      47             :  *
      48             :  * @return - pointer to page start address, that can be used as host_addr
      49             :  *           in struct gnttab_map_grant_ref, NULL on error.
      50             :  */
      51           0 : void *gnttab_get_page(void);
      52             : 
      53             : /*
      54             :  * Releases provided page, that was used for mapping foreign grant frame,
      55             :  * should be called after unmapping.
      56             :  *
      57             :  * @param page_addr - pointer to start address of used page.
      58             :  */
      59           0 : void gnttab_put_page(void *page_addr);
      60             : 
      61             : /*
      62             :  * Maps foreign grant ref to Zephyr address space.
      63             :  *
      64             :  * @param map_ops - array of prepared gnttab_map_grant_ref's for mapping
      65             :  * @param count - number of grefs in map_ops array
      66             :  * @return - zero on success or negative errno on failure
      67             :  *           also per-page status will be set in map_ops[i].status (GNTST_*)
      68             :  *
      69             :  * To map foreign frame you need 4K-aligned 4K memory page, which will be
      70             :  * used as host_addr for grant mapping - it should be acquired by gnttab_get_page()
      71             :  * function.
      72             :  */
      73           0 : int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops, unsigned int count);
      74             : 
      75             : /*
      76             :  * Unmap foreign grant refs. The gnttab_put_page() should be used after this for
      77             :  * each page, that was successfully unmapped.
      78             :  *
      79             :  * @param unmap_ops - array of prepared gnttab_map_grant_ref's for unmapping
      80             :  * @param count - number of grefs in unmap_ops array
      81             :  * @return - @count on success or negative errno on failure
      82             :  *           also per-page status will be set in unmap_ops[i].status (GNTST_*)
      83             :  */
      84           0 : int gnttab_unmap_refs(struct gnttab_map_grant_ref *unmap_ops, unsigned int count);
      85             : 
      86             : /*
      87             :  * Convert grant ref status codes (GNTST_*) to text messages.
      88             :  *
      89             :  * @param status - negative GNTST_* code, that needs to be converted
      90             :  * @return - constant pointer to text message, associated with @status
      91             :  */
      92           0 : const char *gnttabop_error(int16_t status);
      93             : 
      94             : #endif /* __XEN_GNTTAB_H__ */

Generated by: LCOV version 1.14