| /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/Documentation/arch/sparc/oradax/ |
| H A D | oracle-dax.rst | 41 pointer to a "completion area", which is a 128 byte memory block that 43 interrupt is generated upon completion; the completion area must be 46 processor until the completion status has been updated by the 52 completion of a request and resumption of execution of the requesting 85 call, and gets results (if any) via read(). The completion areas are 96 requests. The completion area buffer is also allocated, and this is 97 large enough to contain the completion areas for many concurrent 116 requests. Since no interrupt is generated upon the completion of a 142 completion area to use, and may be set via lseek() or using the 157 The mmap() function provides access to the completion area allocated [all …]
|
| /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/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 | 57 struct completion completion; member 67 complete(&adc->completion); in mrfld_adc_thread_isr() 82 reinit_completion(&adc->completion); in mrfld_adc_single_conv() 98 time_left = wait_for_completion_interruptible_timeout(&adc->completion, in mrfld_adc_single_conv() 196 init_completion(&adc->completion); in mrfld_adc_probe()
|
| H A D | sun20i-gpadc-iio.c | 50 struct completion completion; member 71 reinit_completion(&info->completion); in sun20i_gpadc_adc_read() 97 if (!wait_for_completion_timeout(&info->completion, msecs_to_jiffies(10))) { in sun20i_gpadc_adc_read() 137 complete(&info->completion); in sun20i_gpadc_irq_handler() 195 init_completion(&info->completion); in sun20i_gpadc_probe()
|
| /linux/rust/kernel/sync/ |
| H A D | completion.rs | 69 inner: Opaque<bindings::completion>, 82 inner <- Opaque::ffi_init(|slot: *mut bindings::completion| { in new() 89 fn as_raw(&self) -> *mut bindings::completion { in as_raw() argument
|