taglinefilesource code
fa1145drivers/char/tty_io.cstruct fasync_struct *fa, *prev;
fa1151drivers/char/tty_io.cfor (fa = tty->fasync, prev = 0; fa; prev= fa, fa = fa->fa_next) {
fa1152drivers/char/tty_io.cif (fa->fa_file == filp)
fa1157drivers/char/tty_io.cif (fa)
fa1159drivers/char/tty_io.cfa = kmalloc(sizeof(struct fasync_struct), GFP_KERNEL);
fa1160drivers/char/tty_io.cif (!fa)
fa1162drivers/char/tty_io.cfa->magic = FASYNC_MAGIC;
fa1163drivers/char/tty_io.cfa->fa_file = filp;
fa1164drivers/char/tty_io.cfa->fa_next = tty->fasync;
fa1165drivers/char/tty_io.ctty->fasync = fa;
fa1169drivers/char/tty_io.cif (!fa)
fa1172drivers/char/tty_io.cprev->fa_next = fa->fa_next;
fa1174drivers/char/tty_io.ctty->fasync = fa->fa_next;
fa1175drivers/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;
fa341include/linux/fs.hextern void kill_fasync(struct fasync_struct *fa, int sig);