|
@@ -23,9 +23,13 @@
|
|
|
#define CCWCHAIN_LEN_MAX 256
|
|
|
|
|
|
struct pfn_array {
|
|
|
+ /* Starting guest physical I/O address. */
|
|
|
unsigned long pa_iova;
|
|
|
+ /* Array that stores PFNs of the pages need to pin. */
|
|
|
unsigned long *pa_iova_pfn;
|
|
|
+ /* Array that receives PFNs of the pages pinned. */
|
|
|
unsigned long *pa_pfn;
|
|
|
+ /* Number of pages to pin/pinned from @pa_iova. */
|
|
|
int pa_nr;
|
|
|
};
|
|
|
|
|
@@ -53,14 +57,8 @@ struct ccwchain {
|
|
|
* Attempt to pin user pages in memory.
|
|
|
*
|
|
|
* Usage of pfn_array:
|
|
|
- * @pa->pa_iova starting guest physical I/O address. Assigned by caller.
|
|
|
- * @pa->pa_iova_pfn array that stores PFNs of the pages need to pin. Allocated
|
|
|
- * by caller.
|
|
|
- * @pa->pa_pfn array that receives PFNs of the pages pinned. Allocated by
|
|
|
- * caller.
|
|
|
- * @pa->pa_nr number of pages from @pa->pa_iova to pin. Assigned by
|
|
|
- * caller.
|
|
|
- * number of pages pinned. Assigned by callee.
|
|
|
+ * Any field in this structure should be initialized by caller.
|
|
|
+ * We expect @pa->pa_nr > 0, and its value will be assigned by callee.
|
|
|
*
|
|
|
* Returns:
|
|
|
* Number of pages pinned on success.
|