| /linux/drivers/md/dm-vdo/ |
| H A D | completion.h | 19 static inline void vdo_run_completion(struct vdo_completion *completion) in vdo_run_completion() argument 21 if ((completion->result != VDO_SUCCESS) && (completion->error_handler != NULL)) { in vdo_run_completion() 22 completion->error_handler(completion); in vdo_run_completion() 26 completion->callback(completion); in vdo_run_completion() 29 void vdo_set_completion_result(struct vdo_completion *completion, int result); 31 void vdo_initialize_completion(struct vdo_completion *completion, struct vdo *vdo, 38 static inline void vdo_reset_completion(struct vdo_completion *completion) in vdo_reset_completion() argument 40 completion->result = VDO_SUCCESS; in vdo_reset_completion() 41 completion->complete = false; in vdo_reset_completion() 44 void vdo_launch_completion_with_priority(struct vdo_completion *completion, [all …]
|
| H A D | completion.c | 51 void vdo_initialize_completion(struct vdo_completion *completion, in vdo_initialize_completion() argument 55 memset(completion, 0, sizeof(*completion)); in vdo_initialize_completion() 56 completion->vdo = vdo; in vdo_initialize_completion() 57 completion->type = type; in vdo_initialize_completion() 58 vdo_reset_completion(completion); in vdo_initialize_completion() 61 static inline void assert_incomplete(struct vdo_completion *completion) in assert_incomplete() argument 63 VDO_ASSERT_LOG_ONLY(!completion->complete, "completion is not complete"); in assert_incomplete() 73 void vdo_set_completion_result(struct vdo_completion *completion, int result) in vdo_set_completion_result() argument 75 assert_incomplete(completion); in vdo_set_completion_result() 76 if (completion->result == VDO_SUCCESS) in vdo_set_completion_result() [all …]
|
| H A D | vdo.c | 67 struct completion completion; member 519 vdo_initialize_completion(&vdo->admin.completion, vdo, VDO_ADMIN_COMPLETION); in initialize_vdo() 806 static void finish_reading_super_block(struct vdo_completion *completion) in finish_reading_super_block() argument 809 container_of(as_vio(completion), struct vdo_super_block, vio); in finish_reading_super_block() 811 vdo_continue_completion(vdo_forget(completion->parent), in finish_reading_super_block() 821 static void handle_super_block_read_error(struct vdo_completion *completion) in handle_super_block_read_error() argument 823 vio_record_metadata_io_error(as_vio(completion)); in handle_super_block_read_error() 824 finish_reading_super_block(completion); in handle_super_block_read_error() 830 struct vdo_completion *parent = vio->completion.parent; in read_super_block_endio() 843 vdo->super_block.vio.completion.parent = parent; in vdo_load_super_block() [all …]
|
| H A D | vio.h | 43 static inline struct vio *as_vio(struct vdo_completion *completion) in as_vio() argument 45 vdo_assert_completion_type(completion, VIO_COMPLETION); in as_vio() 46 return container_of(completion, struct vio, completion); in as_vio() 58 return vio->completion.vdo->thread_config.bio_threads[vio->bio_zone]; in get_vio_bio_zone_thread_id() 120 vdo_initialize_completion(&vio->completion, vdo, VIO_COMPLETION); in initialize_vio() 164 vdo_set_completion_result(&vio->completion, result); in continue_vio() 166 vdo_enqueue_completion(&vio->completion, VDO_WORK_Q_DEFAULT_PRIORITY); in continue_vio() 182 vdo_set_completion_callback(&vio->completion, callback, thread); in continue_vio_after_io()
|
| /linux/include/linux/ |
| H A D | completion.h | 26 struct completion { struct 32 static inline void complete_acquire(struct completion *x) {} in complete_acquire() argument 33 static inline void complete_release(struct completion *x) {} in complete_release() 53 struct completion work = COMPLETION_INITIALIZER(work) 69 struct completion work = COMPLETION_INITIALIZER_ONSTACK(work) 71 struct completion work = COMPLETION_INITIALIZER_ONSTACK_MAP(work, map) 84 static inline void init_completion(struct completion *x) in init_completion() 97 static inline void reinit_completion(struct completion *x) in reinit_completion() 102 extern void wait_for_completion(struct completion *); 103 extern void wait_for_completion_io(struct completion *); [all …]
|
| /linux/Documentation/translations/zh_CN/scheduler/ |
| H A D | completion.rst | 3 :Original: Documentation/scheduler/completion.rst 26 调用和completion()来代替。 33 事件被简化为 ``struct completion`` 中的一个简单标志,被恰如其名地称为‘done’。 35 由于完成与调度有关,代码可以在kernel/sched/completion.c中找到。 43 - 'struct completion' 同步对象的初始化 51 要使用完成API,你需要#include <linux/completion.h>并创建一个静态或动态的 52 ``struct completion`` 类型的变量,它只有两个字段:: 54 struct completion { 134 void wait_for_completion(struct completion *done) 140 struct completion setup_done; [all …]
|
| /linux/kernel/sched/ |
| H A D | completion.c | 21 static void complete_with_flags(struct completion *x, int wake_flags) in complete_with_flags() 33 void complete_on_current_cpu(struct completion *x) in complete_on_current_cpu() 50 void complete(struct completion *x) in complete() 72 void complete_all(struct completion *x) in complete_all() 86 do_wait_for_common(struct completion *x, in do_wait_for_common() 113 __wait_for_common(struct completion *x, in __wait_for_common() 130 wait_for_common(struct completion *x, long timeout, int state) in wait_for_common() 136 wait_for_common_io(struct completion *x, long timeout, int state) in wait_for_common_io() 151 void __sched wait_for_completion(struct completion *x) in wait_for_completion() 170 wait_for_completion_timeout(struct completion *x, unsigned long timeout) in wait_for_completion_timeout() [all …]
|
| /linux/Documentation/scheduler/ |
| H A D | completion.rst | 2 Completions - "wait for completion" barrier APIs 27 is reduced to a simple flag in 'struct completion', appropriately called "done". 30 kernel/sched/completion.c. 38 - the initialization of the 'struct completion' synchronization object 45 to have marked a completion as 'done' before another thread checks whether 48 To use completions you need to #include <linux/completion.h> and 49 create a static or dynamic variable of type 'struct completion', 52 struct completion { 58 the ->done completion flag for indicating whether it's completed or not. 67 Good, intuitive naming (as always) helps code readability. Naming a completion [all …]
|
| /linux/drivers/net/wwan/iosm/ |
| H A D | iosm_ipc_task_queue.c | 28 if (args->completion) in ipc_task_queue_handler() 29 complete(args->completion); in ipc_task_queue_handler() 42 args->completion = NULL; in ipc_task_queue_handler() 64 if (args->completion) in ipc_task_queue_cleanup() 65 complete(args->completion); in ipc_task_queue_cleanup() 85 struct completion completion; in ipc_task_queue_add_task() local 90 init_completion(&completion); in ipc_task_queue_add_task() 111 ipc_task->args[pos].completion = wait ? &completion : NULL; in ipc_task_queue_add_task() 130 wait_for_completion(&completion); in ipc_task_queue_add_task()
|
| /linux/net/wireless/ |
| H A D | debugfs.c | 160 struct completion completion; in wiphy_locked_debugfs_read() 169 complete(&w->completion); in wiphy_locked_debugfs_read() 178 complete(&w->completion); in wiphy_locked_debugfs_read() 200 .completion = COMPLETION_INITIALIZER_ONSTACK(work.completion), 214 wait_for_completion(&work.completion); in wiphy_locked_debugfs_write_work() 240 struct completion completion; in wiphy_locked_debugfs_write() 249 complete(&w->completion); in wiphy_locked_debugfs_write() 127 struct completion completion; global() member 207 struct completion completion; global() member [all...] |
| /linux/drivers/scsi/aic94xx/ |
| H A D | aic94xx_tmf.c | 67 complete(ascb->completion); in asd_clear_nexus_tasklet_complete() 78 complete(ascb->completion); in asd_clear_nexus_timedout() 85 DECLARE_COMPLETION_ONSTACK(completion); \ 94 ascb->completion = &completion; \ 106 wait_for_completion(&completion); \ 252 complete(ascb->completion); in asd_tmf_timedout() 320 complete(ascb->completion); in asd_tmf_tasklet_complete() 329 DECLARE_COMPLETION_ONSTACK(completion); in asd_clear_nexus() 332 tascb->completion = &completion; in asd_clear_nexus() 339 leftover = wait_for_completion_timeout(&completion, in asd_clear_nexus() [all …]
|
| /linux/Documentation/driver-api/usb/ |
| H A D | URB.rst | 36 - Each URB has a completion handler, which is called after the action 38 context-pointer for passing information to the completion handler. 42 data to an endpoint while your driver handles completion of another. 60 // (IN) all urbs need completion routines 61 void *context; // context for completion routine 62 usb_complete_t complete; // pointer to completion routine 64 // (OUT) status after each completion 110 returned to you in a completion callback. It will automatically be 122 length, the completion handler, and its context. Take a look at the some 156 never look at that value except in your completion callback. [all …]
|
| /linux/drivers/s390/char/ |
| H A D | sclp_cmd.c | 53 struct completion *completion = data; in sclp_sync_callback() local 55 complete(completion); in sclp_sync_callback() 65 struct completion completion; in sclp_sync_request_timeout() local 78 request->callback_data = &completion; in sclp_sync_request_timeout() 79 init_completion(&completion); in sclp_sync_request_timeout() 84 wait_for_completion(&completion); in sclp_sync_request_timeout()
|
| H A D | sclp_ftp.c | 38 struct completion *completion = data; in sclp_ftp_txcb() local 44 complete(completion); in sclp_ftp_txcb() 89 struct completion completion; in sclp_ftp_et7() local 130 req->callback_data = &completion; in sclp_ftp_et7() 132 init_completion(&completion); in sclp_ftp_et7() 139 wait_for_completion(&completion); in sclp_ftp_et7()
|
| H A D | sclp_cpi_sys.c | 73 struct completion *completion = data; in cpi_callback() local 75 complete(completion); in cpi_callback() 127 struct completion completion; in cpi_req() local 146 init_completion(&completion); in cpi_req() 147 req->callback_data = &completion; in cpi_req() 154 wait_for_completion(&completion); in cpi_req()
|
| /linux/include/linux/raspberrypi/ |
| H A D | vchiq_arm.h | 69 struct completion insert_event; 70 struct completion remove_event; 71 struct completion close_event; 86 struct completion insert_event; 87 struct completion remove_event;
|
| H A D | vchiq_core.h | 217 struct completion remove_event; 218 struct completion bulk_remove_event; 239 struct completion msg_queue_pop; 240 struct completion msg_queue_push; 254 struct completion quota_event; 354 struct completion connect; 447 struct completion slot_available_event; 450 struct completion data_quota_event; 496 struct completion event;
|
| /linux/Documentation/admin-guide/blockdev/drbd/ |
| H A D | disk-states-8.dot | 11 Consistent -> Failed [ label = "io completion error" ] 12 Outdated -> Failed [ label = "io completion error" ] 13 UpToDate -> Failed [ label = "io completion error" ] 14 Inconsistent -> Failed [ label = "io completion error" ]
|
| /linux/drivers/scsi/pm8001/ |
| H A D | pm8001_sas.c | 232 DECLARE_COMPLETION_ONSTACK(completion); in pm8001_phy_control() 259 pm8001_ha->phy[phy_id].enable_completion = &completion; in pm8001_phy_control() 261 wait_for_completion(&completion); in pm8001_phy_control() 268 pm8001_ha->phy[phy_id].enable_completion = &completion; in pm8001_phy_control() 270 wait_for_completion(&completion); in pm8001_phy_control() 277 pm8001_ha->phy[phy_id].enable_completion = &completion; in pm8001_phy_control() 279 wait_for_completion(&completion); in pm8001_phy_control() 349 DECLARE_COMPLETION_ONSTACK(completion); in pm8001_scan_start() 355 pm8001_ha->phy[i].enable_completion = &completion; in pm8001_scan_start() 357 wait_for_completion(&completion); in pm8001_scan_start() [all …]
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| H A D | core.h | 597 struct completion tpc_complete; 627 struct completion started; 628 struct completion completed; 629 struct completion on_channel; 682 struct completion peer_assoc_done; 686 struct completion install_key_done; 689 struct completion vdev_setup_done; 690 struct completion vdev_delete_done; 717 struct completion bss_survey_done; 727 struct completion target_suspen [all...] |
| H A D | ahb.h | 76 struct completion rootpd_ready; 87 struct completion userpd_spawned; 88 struct completion userpd_ready; 89 struct completion userpd_stopped;
|
| /linux/sound/soc/intel/avs/ |
| H A D | cldma.c | 44 struct completion completion; member 57 .completion = COMPLETION_INITIALIZER(code_loader.completion), 100 ret = wait_for_completion_timeout(&cl->completion, in cldma_memcpy_work() 116 reinit_completion(&cl->completion); in cldma_memcpy_work() 129 reinit_completion(&cl->completion); in hda_cldma_transfer() 259 complete(&cl->completion); in hda_cldma_interrupt()
|
| /linux/include/target/iscsi/ |
| H A D | iscsi_target_core.h | 546 struct completion conn_post_wait_comp; 547 struct completion conn_wait_comp; 548 struct completion conn_wait_rcfr_comp; 549 struct completion conn_waiting_on_uc_comp; 550 struct completion conn_logout_comp; 551 struct completion tx_half_close_comp; 552 struct completion rx_half_close_comp; 604 struct completion rx_login_comp; 680 struct completion async_msg_comp; 681 struct completion reinstatement_comp; [all …]
|
| /linux/drivers/iio/adc/ |
| H A D | intel_mrfld_adc.c | 56 struct completion completion; member 66 complete(&adc->completion); in mrfld_adc_thread_isr() 81 reinit_completion(&adc->completion); in mrfld_adc_single_conv() 97 time_left = wait_for_completion_interruptible_timeout(&adc->completion, in mrfld_adc_single_conv() 195 init_completion(&adc->completion); in mrfld_adc_probe()
|
| /linux/rust/kernel/sync/ |
| H A D | completion.rs | 5 //! Reference: <https://docs.kernel.org/scheduler/completion.html> 7 //! C header: [`include/linux/completion.h`](srctree/include/linux/completion.h) 69 inner: Opaque<bindings::completion>, 82 inner <- Opaque::ffi_init(|slot: *mut bindings::completion| { in new() 83 // SAFETY: `slot` is a valid pointer to an uninitialized `struct completion`. in new() 89 fn as_raw(&self) -> *mut bindings::completion { in as_raw() argument 93 /// Signal all tasks waiting on this completion. 95 /// This method wakes up all tasks waiting on this completion; after this operation the 96 /// completion i [all...] |