ppn_set
uint64_t num_consume_pages, struct ppn_set *ppn_set)
!num_consume_pages || !ppn_set)
if (ppn_set->initialized)
ppn_set->num_produce_pages = num_produce_pages;
ppn_set->num_consume_pages = num_consume_pages;
ppn_set->produce_ppns = produce_ppns;
ppn_set->consume_ppns = consume_ppns;
ppn_set->initialized = true;
vmci_free_ppn_set(struct ppn_set *ppn_set)
ASSERT(ppn_set);
if (ppn_set->initialized) {
ASSERT(ppn_set->produce_ppns && ppn_set->consume_ppns);
vmci_free_kernel_mem(ppn_set->produce_ppns,
ppn_set->num_produce_pages *
sizeof(*ppn_set->produce_ppns));
vmci_free_kernel_mem(ppn_set->consume_ppns,
ppn_set->num_consume_pages *
sizeof(*ppn_set->consume_ppns));
memset(ppn_set, 0, sizeof(*ppn_set));
vmci_populate_ppn_list(uint8_t *call_buf, const struct ppn_set *ppn_set)
ASSERT(call_buf && ppn_set && ppn_set->initialized);
memcpy(call_buf, ppn_set->produce_ppns,
ppn_set->num_produce_pages * sizeof(*ppn_set->produce_ppns));
memcpy(call_buf + ppn_set->num_produce_pages *
sizeof(*ppn_set->produce_ppns), ppn_set->consume_ppns,
ppn_set->num_consume_pages * sizeof(*ppn_set->consume_ppns));
struct ppn_set *ppn_set);
void vmci_free_ppn_set(struct ppn_set *ppn_set);
int vmci_populate_ppn_list(uint8_t *call_buf, const struct ppn_set *ppnset);
struct ppn_set ppn_set;
memset(&entry->ppn_set, 0, sizeof(entry->ppn_set));
vmci_free_ppn_set(&entry->ppn_set);
sizeof(*alloc_msg), &entry->ppn_set);
my_consume_q, num_consume_pages, &queue_pair_entry->ppn_set);