*参照元 [#uc616b60]
#backlinks

*説明 [#wd74b82f]
-パス: [[linux-4.4.1/drivers/staging/android/ion/ion.c]]

-FIXME: これは何?
--説明


**引数 [#e1935930]
-struct kref *kref
--
--[[linux-4.4.1/kref]]


**返り値 [#v1a4ce4e]
-なし


**参考 [#jfe1a4d1]


*実装 [#g52131c2]
 static void ion_handle_destroy(struct kref *kref)
 {
 	struct ion_handle *handle = container_of(kref, struct ion_handle, ref);
 	struct ion_client *client = handle->client;
 	struct ion_buffer *buffer = handle->buffer;
 
-
--[[linux-4.4.1/ion_handle]]
--[[linux-4.4.1/container_of()]]
--[[linux-4.4.1/ion_client]]
--[[linux-4.4.1/ion_buffer]]

 	mutex_lock(&buffer->lock);
 	while (handle->kmap_cnt)
 		ion_handle_kmap_put(handle);
 	mutex_unlock(&buffer->lock);
 
-
--[[linux-4.4.1/mutex_lock()]]
--[[linux-4.4.1/mutex_unlock()]]
--[[linux-4.4.1/ion_handle_kmap_put()]]

 	idr_remove(&client->idr, handle->id);
 	if (!RB_EMPTY_NODE(&handle->node))
 		rb_erase(&handle->node, &client->handles);
 
-
--[[linux-4.4.1/idr_remove()]]
--[[linux-4.4.1/RB_EMPTY_NODE()]]
--[[linux-4.4.1/rb_erase()]]

 	ion_buffer_remove_from_handle(buffer);
 	ion_buffer_put(buffer);
 
-
--[[linux-4.4.1/ion_buffer_remove_from_handle()]]
--[[linux-4.4.1/ion_buffer_put()]]

 	kfree(handle);
-
--[[linux-4.4.1/kfree()]]

 }


*コメント [#k5ff85d8]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS