struct completion {
unsigned int done;
wait_queue_head_t wait;
};
ì~\~D 구조체ì~W~P ë~L~@í~U~\ ë~B´ë¶~@ í~U~Dë~S~\ì~W~P ë~L~@í~U´ ì~U~L í~U~Dì~Z~Të~J~T ì~W~Fë~K¤. í~U~Dì~Z~Tí~U~\ ê²~Cì~]~@ ê·¸ 구조체 ì~^~Pì²´ì~]´ë~K¤.
==== completion ì´~H기í~Y~T ====
completion 구조체를 ì´~H기í~Y~T í~U~Xë~J~T ë°©ë²~Uì~]~@ ë~Q~P ê°~@ì§~@ê°~@ ì~^~Hë~K¤. ì»´í~L~Lì~]¼ì~K~\ì~W~P ì| ~Uì| ~Aì~\¼ë¡~\ ì~D| ì~V¸í~U~Xì~W¬ ì´~H기í~Y~T를 í~U~Xë~J~T ê²½ì~Z°ì~Y~@ ì~K¤í~V~Iì~K~\ì~W~P ë~O~Yì| ~Aì~\¼ë¡~\ ì~D| ì~V¸í~U~Xì~W¬ ì´~H기í~Y~Tí~U~Xë~J~T ë°©ë²~Uì~]´ë~K¤.
ì| ~Dì~^~Pì~]~X ê²½ì~Z°ì~W~T DECLARE_COMPLETION 매í~A¬ë¡~\를 ì~B¬ì~Z©í~U~\ë~K¤. ì~B¬ì~Z© ë°©ë²~Uì~]~@ ë~K¤ì~]~Lê³¼ ê°~Yë~K¤.
{{{#!vim c
DELCARE_COMPLETION(xxx_completion);