XenevaOS
Loading...
Searching...
No Matches
Classes | Functions
completion.h File Reference
#include <linux/kernel.h>
#include <linux/wait.h>
Include dependency graph for completion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  completion
 

Macros

: the name of the completion

DECLARE_COMPLETION - define a completion at file scope

mainline's is struct completion name = { 0 } (or the ONSTACK twin, which differs only in that mainline's ONSTACK runs a lockdep ctor). virtio_console.c:61 writes static DECLARE_COMPLETION(early_console_added);, and with no macro the line parses as an untyped function declaration – the same pair of errors DEFINE_SPINLOCK produces – so early_console_added() has no variable behind it by the time :1571 does complete(&early_console_added).

= { 0 } rather than = { } because a braceless initialiser on a struct whose first member is unsigned int is a GNU extension, and this target is built with clang.

#define DECLARE_COMPLETION(name)   struct completion name = { 0 }
 
#define DECLARE_COMPLETION_ONSTACK(name)   struct completion name = { 0 }
 

Functions

void complete (struct completion *x)
 
int wait_for_completion_killable (struct completion *x)
 
void complete_all (struct completion *x)
 
bool try_wait_for_completion (struct completion *x)
 
unsigned long wait_for_completion_timeout (struct completion *x, unsigned long timeout)
 
int wait_for_completion_interruptible (struct completion *x)
 
long wait_for_completion_interruptible_timeout (struct completion *x, unsigned long timeout)
 

Macro Definition Documentation

◆ DECLARE_COMPLETION

#define DECLARE_COMPLETION (   name)    struct completion name = { 0 }

◆ DECLARE_COMPLETION_ONSTACK

#define DECLARE_COMPLETION_ONSTACK (   name)    struct completion name = { 0 }

Function Documentation

◆ complete()

void complete ( struct completion *  x)
extern

◆ complete_all()

void complete_all ( struct completion *  x)
extern

◆ try_wait_for_completion()

bool try_wait_for_completion ( struct completion *  x)
extern

◆ wait_for_completion_interruptible()

int wait_for_completion_interruptible ( struct completion *  x)
extern

◆ wait_for_completion_interruptible_timeout()

long wait_for_completion_interruptible_timeout ( struct completion *  x,
unsigned long  timeout 
)
extern

◆ wait_for_completion_killable()

int wait_for_completion_killable ( struct completion *  x)
extern

◆ wait_for_completion_timeout()

unsigned long wait_for_completion_timeout ( struct completion *  x,
unsigned long  timeout 
)
extern