linux-4.4.1/ion_heap_deferred_free()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#l0e4918f]
#backlinks
*説明 [#e423bb9c]
-パス: [[linux-4.4.1/drivers/staging/android/ion/ion_heap...
-FIXME: これは何?
--ION バッファの遅延削除を行うカーネルスレッドのメイン関...
**引数 [#eb2dd8a0]
-void *data
--ION ヒープへのポインタ
**返り値 [#b32b0d88]
-int
--常に 0 だが、このカーネルスレッドは終了しないので意味なし
**参考 [#uadfa1c7]
free_list に ION バッファを追加する(つまり ION バッファ...
-[[linux-4.4.1/ion_heap_freelist_add()]]
*実装 [#adbf127e]
static int ion_heap_deferred_free(void *data)
{
struct ion_heap *heap = data;
-スレッドの引数(kthread_run の第二引数など)を参照。
--[[linux-4.4.1/ion_heap]]
while (true) {
struct ion_buffer *buffer;
-
--[[linux-4.4.1/ion_buffer]]
wait_event_freezable(heap->waitqueue,
ion_heap_freelist_size(heap) > 0);
-free_list にバッファが追加されるまで待つ。
--[[linux-4.4.1/wait_event_freezable()]]
--[[linux-4.4.1/ion_heap_freelist_size()]]
spin_lock(&heap->free_lock);
if (list_empty(&heap->free_list)) {
spin_unlock(&heap->free_lock);
continue;
}
buffer = list_first_entry(&heap->free_list, struct ion...
list);
list_del(&buffer->list);
heap->free_list_size -= buffer->size;
spin_unlock(&heap->free_lock);
-free_list から遅延削除対象のバッファを 1つ取ってくる。
--[[linux-4.4.1/spin_lock()]]
--[[linux-4.4.1/spin_unlock()]]
--[[linux-4.4.1/list_empty()]]
--[[linux-4.4.1/list_first_entry()]]
--[[linux-4.4.1/list_del()]]
ion_buffer_destroy(buffer);
-ION バッファを削除する。
--[[linux-4.4.1/ion_buffer_destroy()]]
}
return 0;
}
*コメント [#z3fcf387]
終了行:
*参照元 [#l0e4918f]
#backlinks
*説明 [#e423bb9c]
-パス: [[linux-4.4.1/drivers/staging/android/ion/ion_heap...
-FIXME: これは何?
--ION バッファの遅延削除を行うカーネルスレッドのメイン関...
**引数 [#eb2dd8a0]
-void *data
--ION ヒープへのポインタ
**返り値 [#b32b0d88]
-int
--常に 0 だが、このカーネルスレッドは終了しないので意味なし
**参考 [#uadfa1c7]
free_list に ION バッファを追加する(つまり ION バッファ...
-[[linux-4.4.1/ion_heap_freelist_add()]]
*実装 [#adbf127e]
static int ion_heap_deferred_free(void *data)
{
struct ion_heap *heap = data;
-スレッドの引数(kthread_run の第二引数など)を参照。
--[[linux-4.4.1/ion_heap]]
while (true) {
struct ion_buffer *buffer;
-
--[[linux-4.4.1/ion_buffer]]
wait_event_freezable(heap->waitqueue,
ion_heap_freelist_size(heap) > 0);
-free_list にバッファが追加されるまで待つ。
--[[linux-4.4.1/wait_event_freezable()]]
--[[linux-4.4.1/ion_heap_freelist_size()]]
spin_lock(&heap->free_lock);
if (list_empty(&heap->free_list)) {
spin_unlock(&heap->free_lock);
continue;
}
buffer = list_first_entry(&heap->free_list, struct ion...
list);
list_del(&buffer->list);
heap->free_list_size -= buffer->size;
spin_unlock(&heap->free_lock);
-free_list から遅延削除対象のバッファを 1つ取ってくる。
--[[linux-4.4.1/spin_lock()]]
--[[linux-4.4.1/spin_unlock()]]
--[[linux-4.4.1/list_empty()]]
--[[linux-4.4.1/list_first_entry()]]
--[[linux-4.4.1/list_del()]]
ion_buffer_destroy(buffer);
-ION バッファを削除する。
--[[linux-4.4.1/ion_buffer_destroy()]]
}
return 0;
}
*コメント [#z3fcf387]
ページ名: