• Home
  • Raw
  • Download

Lines Matching refs:entry

99 		struct dbell_entry *entry;  in vmci_dbell_get_priv_flags()  local
107 entry = container_of(resource, struct dbell_entry, resource); in vmci_dbell_get_priv_flags()
108 *priv_flags = entry->priv_flags; in vmci_dbell_get_priv_flags()
145 static void dbell_index_table_add(struct dbell_entry *entry) in dbell_index_table_add() argument
150 vmci_resource_get(&entry->resource); in dbell_index_table_add()
194 entry->idx = new_notify_idx; in dbell_index_table_add()
195 bucket = VMCI_DOORBELL_HASH(entry->idx); in dbell_index_table_add()
196 hlist_add_head(&entry->node, &vmci_doorbell_it.entries[bucket]); in dbell_index_table_add()
205 static void dbell_index_table_remove(struct dbell_entry *entry) in dbell_index_table_remove() argument
209 hlist_del_init(&entry->node); in dbell_index_table_remove()
212 if (entry->idx == max_notify_idx - 1) { in dbell_index_table_remove()
225 last_notify_idx_released = entry->idx; in dbell_index_table_remove()
229 vmci_resource_put(&entry->resource); in dbell_index_table_remove()
290 struct dbell_entry *entry = container_of(work, in dbell_delayed_dispatch() local
293 entry->notify_cb(entry->client_data); in dbell_delayed_dispatch()
294 vmci_resource_put(&entry->resource); in dbell_delayed_dispatch()
302 struct dbell_entry *entry; in vmci_dbell_host_context_notify() local
319 entry = container_of(resource, struct dbell_entry, resource); in vmci_dbell_host_context_notify()
320 if (entry->run_delayed) { in vmci_dbell_host_context_notify()
321 if (!schedule_work(&entry->work)) in vmci_dbell_host_context_notify()
324 entry->notify_cb(entry->client_data); in vmci_dbell_host_context_notify()
419 struct dbell_entry *entry; in vmci_doorbell_create() local
427 entry = kmalloc(sizeof(*entry), GFP_KERNEL); in vmci_doorbell_create()
428 if (entry == NULL) { in vmci_doorbell_create()
470 entry->idx = 0; in vmci_doorbell_create()
471 INIT_HLIST_NODE(&entry->node); in vmci_doorbell_create()
472 entry->priv_flags = priv_flags; in vmci_doorbell_create()
473 INIT_WORK(&entry->work, dbell_delayed_dispatch); in vmci_doorbell_create()
474 entry->run_delayed = flags & VMCI_FLAG_DELAYED_CB; in vmci_doorbell_create()
475 entry->notify_cb = notify_cb; in vmci_doorbell_create()
476 entry->client_data = client_data; in vmci_doorbell_create()
477 atomic_set(&entry->active, 0); in vmci_doorbell_create()
479 result = vmci_resource_add(&entry->resource, in vmci_doorbell_create()
488 new_handle = vmci_resource_handle(&entry->resource); in vmci_doorbell_create()
490 dbell_index_table_add(entry); in vmci_doorbell_create()
491 result = dbell_link(new_handle, entry->idx); in vmci_doorbell_create()
495 atomic_set(&entry->active, 1); in vmci_doorbell_create()
503 dbell_index_table_remove(entry); in vmci_doorbell_create()
504 vmci_resource_remove(&entry->resource); in vmci_doorbell_create()
506 kfree(entry); in vmci_doorbell_create()
520 struct dbell_entry *entry; in vmci_doorbell_destroy() local
534 entry = container_of(resource, struct dbell_entry, resource); in vmci_doorbell_destroy()
536 if (!hlist_unhashed(&entry->node)) { in vmci_doorbell_destroy()
539 dbell_index_table_remove(entry); in vmci_doorbell_destroy()
566 vmci_resource_put(&entry->resource); in vmci_doorbell_destroy()
567 vmci_resource_remove(&entry->resource); in vmci_doorbell_destroy()
569 kfree(entry); in vmci_doorbell_destroy()