taglinefilesource code
fa1152drivers/char/tty_io.cstruct fasync_struct *fa, *prev;
fa1158drivers/char/tty_io.cfor (fa = tty->fasync, prev = 0; fa; prev= fa, fa = fa->fa_next) {
fa1159drivers/char/tty_io.cif (fa->fa_file == filp)
fa1164drivers/char/tty_io.cif (fa)
fa1166drivers/char/tty_io.cfa = kmalloc(sizeof(struct fasync_struct), GFP_KERNEL);
fa1167drivers/char/tty_io.cif (!fa)
fa1169drivers/char/tty_io.cfa->magic = FASYNC_MAGIC;
fa1170drivers/char/tty_io.cfa->fa_file = filp;
fa1171drivers/char/tty_io.cfa->fa_next = tty->fasync;
fa1172drivers/char/tty_io.ctty->fasync = fa;
fa1176drivers/char/tty_io.cif (!fa)
fa1179drivers/char/tty_io.cprev->fa_next = fa->fa_next;
fa1181drivers/char/tty_io.ctty->fasync = fa->fa_next;
fa1182drivers/char/tty_io.ckfree_s(fa, sizeof(struct fasync_struct));
fa126fs/fcntl.cvoid kill_fasync(struct fasync_struct *fa, int sig)
fa128fs/fcntl.cwhile (fa) {
fa129fs/fcntl.cif (fa->magic != FASYNC_MAGIC) {
fa134fs/fcntl.cif (fa->fa_file->f_owner > 0)
fa135fs/fcntl.ckill_proc(fa->fa_file->f_owner, sig, 1);
fa137fs/fcntl.ckill_pg(-fa->fa_file->f_owner, sig, 1);
fa138fs/fcntl.cfa = fa->fa_next;
fa344include/linux/fs.hextern void kill_fasync(struct fasync_struct *fa, int sig);