Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef __LINUX_COMPLETION_H
  2 #define __LINUX_COMPLETION_H
  3 
  4 /*
  5  * (C) Copyright 2001 Linus Torvalds
  6  *
  7  * Atomic wait-for-completion handler data structures.
  8  * See kernel/sched.c for details.
  9  */
 10 
 11 #include <linux/wait.h>
 12 
 13 struct completion {
 14         unsigned int done;
 15         wait_queue_head_t wait;
 16 };
 17 
 18 #define COMPLETION_INITIALIZER(work) \
 19         { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
 20 
 21 #define DECLARE_COMPLETION(work) \
 22         struct completion work = COMPLETION_INITIALIZER(work)
 23 
 24 static inline void init_completion(struct completion *x)
 25 {
 26         x->done = 0;
 27         init_waitqueue_head(&x->wait);
 28 }
 29 
 30 extern void FASTCALL(wait_for_completion(struct completion *));
 31 extern int FASTCALL(wait_for_completion_interruptible(struct completion *x));
 32 extern unsigned long FASTCALL(wait_for_completion_timeout(struct completion *x,
 33                                                    unsigned long timeout));
 34 extern unsigned long FASTCALL(wait_for_completion_interruptible_timeout(
 35                         struct completion *x, unsigned long timeout));
 36 
 37 extern void FASTCALL(complete(struct completion *));
 38 extern void FASTCALL(complete_all(struct completion *));
 39 
 40 #define INIT_COMPLETION(x)      ((x).done = 0)
 41 
 42 #endif
 43 
  This page was automatically generated by the LXR engine.