Only in a/sys: Makefile Only in a/sys: Makefile.modules Only in a/sys: bus Only in a/sys: compile Only in a/sys: conf Only in a/sys: config Only in a/sys: contrib Only in a/sys: cpu Only in a/sys: crypto Only in a/sys: ddb Only in a/sys/dev: Makefile Only in a/sys/dev: acpica Only in a/sys/dev: agp Only in a/sys/dev: apple Only in a/sys/dev: crypto Only in a/sys/dev: disk Only in a/sys/dev: drm Only in a/sys/dev/misc: Makefile Only in a/sys/dev/misc: amdsbwd Only in a/sys/dev/misc: aperf Only in a/sys/dev/misc: atkbd Only in a/sys/dev/misc: atkbdc_layer Only in a/sys/dev/misc: backlight Only in a/sys/dev/misc: cmx Only in a/sys/dev/misc: coremctl Only in a/sys/dev/misc: cpuctl Only in a/sys/dev/misc: cuse Only in a/sys/dev/misc: dcons Only in a/sys/dev/misc: dimm Only in a/sys/dev/misc: ecc Only in a/sys/dev/misc: efirt Only in a/sys/dev/misc/evdev: Makefile diff -ur a/sys/dev/misc/evdev/cdev.c b/sys/dev/misc/evdev/cdev.c --- a/sys/dev/misc/evdev/cdev.c +++ b/sys/dev/misc/evdev/cdev.c @@ -686,8 +686,8 @@ KNOTE(&client->kqinfo.ki_note, 0); - if (client->ec_async && client->ec_sigio != NULL) - pgsigio(client->ec_sigio, SIGIO, 0); + if (client->ec_async) + pgsigio(&client->ec_sigio, SIGIO, 0); } int Only in a/sys/dev/misc/evdev: evdev.c Only in a/sys/dev/misc/evdev: evdev.h Only in a/sys/dev/misc/evdev: evdev_mt.c Only in a/sys/dev/misc/evdev: evdev_private.h Only in a/sys/dev/misc/evdev: evdev_utils.c Only in a/sys/dev/misc/evdev: freebsd-bitstring.h Only in a/sys/dev/misc/evdev: input-event-codes.h Only in a/sys/dev/misc/evdev: input.h Only in a/sys/dev/misc: gpio Only in a/sys/dev/misc: ichwd Only in a/sys/dev/misc: ipmi Only in a/sys/dev/misc: joy Only in a/sys/dev/misc: kbd Only in a/sys/dev/misc: kbdmux Only in a/sys/dev/misc: led Only in a/sys/dev/misc: lpbb Only in a/sys/dev/misc: lpt Only in a/sys/dev/misc: musycc Only in a/sys/dev/misc: nmdm Only in a/sys/dev/misc: nsclpcsio Only in a/sys/dev/misc: orm Only in a/sys/dev/misc: pcfclock Only in a/sys/dev/misc: ppc Only in a/sys/dev/misc: ppi Only in a/sys/dev/misc: pps Only in a/sys/dev/misc: psm Only in a/sys/dev/misc: puc Only in a/sys/dev/misc: snp Only in a/sys/dev/misc/syscons: Makefile Only in a/sys/dev/misc/syscons: Makefile.inc Only in a/sys/dev/misc/syscons: blank Only in a/sys/dev/misc/syscons: dragon Only in a/sys/dev/misc/syscons: fade Only in a/sys/dev/misc/syscons: fire Only in a/sys/dev/misc/syscons: fred Only in a/sys/dev/misc/syscons: green Only in a/sys/dev/misc/syscons: logo Only in a/sys/dev/misc/syscons: rain Only in a/sys/dev/misc/syscons: schistory.c Only in a/sys/dev/misc/syscons: sckmsrndr.c Only in a/sys/dev/misc/syscons: scmouse.c Only in a/sys/dev/misc/syscons: scterm-dumb.c Only in a/sys/dev/misc/syscons: scterm-sc.c Only in a/sys/dev/misc/syscons: scterm.c Only in a/sys/dev/misc/syscons: sctermvar.h Only in a/sys/dev/misc/syscons: scvgarndr.c Only in a/sys/dev/misc/syscons: scvidctl.c Only in a/sys/dev/misc/syscons: scvtb.c Only in a/sys/dev/misc/syscons: snake Only in a/sys/dev/misc/syscons: star Only in a/sys/dev/misc/syscons: syscons.c Only in a/sys/dev/misc/syscons: syscons.h Only in a/sys/dev/misc/syscons: syscons_nexus.c diff -ur a/sys/dev/misc/syscons/sysmouse.c b/sys/dev/misc/syscons/sysmouse.c --- a/sys/dev/misc/syscons/sysmouse.c +++ b/sys/dev/misc/syscons/sysmouse.c @@ -617,7 +617,7 @@ case MOUSE_BUTTON_EVENT: smqueue(sc, info); if (sc->asyncio) - pgsigio(sc->sm_sigio, SIGIO, 0); + pgsigio(&sc->sm_sigio, SIGIO, 0); lockmgr(&sc->sm_lock, LK_RELEASE); wakeup(sc); KNOTE(&sc->rkq.ki_note, 0); Only in a/sys/dev/misc/syscons: warp Only in a/sys/dev/misc: tbridge Only in a/sys/dev/misc: vkbd Only in a/sys/dev: netif Only in a/sys/dev: pccard Only in a/sys/dev: powermng Only in a/sys/dev: raid Only in a/sys/dev: serial Only in a/sys/dev: smbus Only in a/sys/dev: sound Only in a/sys/dev: video Only in a/sys/dev: virtual Only in a/sys: gnu Only in a/sys/kern: Makefile Only in a/sys/kern: bus_if.m Only in a/sys/kern: cpu_if.m Only in a/sys/kern: device_if.m Only in a/sys/kern: firmware Only in a/sys/kern: genassym.sh Only in a/sys/kern: imgact_elf.c Only in a/sys/kern: imgact_resident.c Only in a/sys/kern: imgact_shell.c Only in a/sys/kern: init_main.c Only in a/sys/kern: init_sysent.c Only in a/sys/kern: kern_acct.c Only in a/sys/kern: kern_acl.c Only in a/sys/kern: kern_caps.c Only in a/sys/kern: kern_checkpoint.c Only in a/sys/kern: kern_clock.c Only in a/sys/kern: kern_collect.c Only in a/sys/kern: kern_condvar.c Only in a/sys/kern: kern_conf.c Only in a/sys/kern: kern_cputimer.c Only in a/sys/kern: kern_debug.c Only in a/sys/kern: kern_descrip.c Only in a/sys/kern: kern_device.c Only in a/sys/kern: kern_dmsg.c Only in a/sys/kern: kern_dsched.c Only in a/sys/kern: kern_environment.c diff -ur a/sys/kern/kern_event.c b/sys/kern/kern_event.c --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2051,8 +2051,8 @@ /* * Send SIGIO on request (typically set up as a mailbox signal) */ - if (kq->kq_sigio && (kq->kq_state & KQ_ASYNC) && kq->kq_count == 1) - pgsigio(kq->kq_sigio, SIGIO, 0); + if ((kq->kq_state & KQ_ASYNC) && kq->kq_count == 1) + pgsigio(&kq->kq_sigio, SIGIO, 0); kqueue_wakeup(kq); } Only in a/sys/kern: kern_exec.c Only in a/sys/kern: kern_exit.c Only in a/sys/kern: kern_fork.c Only in a/sys/kern: kern_fp.c Only in a/sys/kern: kern_intr.c Only in a/sys/kern: kern_iosched.c Only in a/sys/kern: kern_jail.c Only in a/sys/kern: kern_kinfo.c Only in a/sys/kern: kern_kmalloc.c Only in a/sys/kern: kern_kthread.c Only in a/sys/kern: kern_ktr.c Only in a/sys/kern: kern_ktrace.c Only in a/sys/kern: kern_linker.c Only in a/sys/kern: kern_lock.c Only in a/sys/kern: kern_lockf.c Only in a/sys/kern: kern_memio.c Only in a/sys/kern: kern_mib.c Only in a/sys/kern: kern_module.c Only in a/sys/kern: kern_mpipe.c Only in a/sys/kern: kern_mutex.c Only in a/sys/kern: kern_nrandom.c Only in a/sys/kern: kern_ntptime.c Only in a/sys/kern: kern_objcache.c Only in a/sys/kern: kern_p1003_1b.c Only in a/sys/kern: kern_physio.c Only in a/sys/kern: kern_plimit.c Only in a/sys/kern: kern_posix4_mib.c Only in a/sys/kern: kern_proc.c Only in a/sys/kern: kern_prot.c Only in a/sys/kern: kern_refcount.c Only in a/sys/kern: kern_resource.c Only in a/sys/kern: kern_sched.c Only in a/sys/kern: kern_sensors.c Only in a/sys/kern: kern_sfbuf.c Only in a/sys/kern: kern_shutdown.c diff -ur a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2636,32 +2636,60 @@ * stored credentials rather than those of the current process. */ void -pgsigio(struct sigio *sigio, int sig, int checkctty) +pgsigio(struct sigio **sigiop, int sig, int checkctty) { + struct sigio *sigio; + struct ucred *uc; + struct proc *pp; + struct pgrp *pg; + struct proc *p; + pid_t pgid; + uid_t ruid; + + /* + * Snapshot the target and take real references while holding + * sigio_token. NOTE: We may NOT hold sigio_token across the + * signalling loop below because lwkt tokens are released when + * the thread blocks (e.g. on pg_lock) and funsetown() could + * then free the sigio out from under us. + */ + lwkt_gettoken_shared(&sigio_token); + if ((sigio = *sigiop) != NULL) { + pgid = sigio->sio_pgid; + ruid = sigio->sio_ruid; + uc = crhold(sigio->sio_ucred); + pp = sigio->sio_proc; + pg = sigio->sio_pgrp; + if (pp != NULL) + PHOLD(pp); + if (pg != NULL) + pgref(pg); + } + lwkt_reltoken(&sigio_token); + if (sigio == NULL) return; - if (sigio->sio_pgid > 0) { - if (CANSIGIO(sigio->sio_ruid, sigio->sio_ucred, - sigio->sio_proc)) - ksignal(sigio->sio_proc, sig); - } else if (sigio->sio_pgid < 0) { - struct proc *p; - struct pgrp *pg = sigio->sio_pgrp; - + if (pgid > 0) { + if (CANSIGIO(ruid, uc, pp)) + ksignal(pp, sig); + } else if (pgid < 0) { /* * Must interlock all signals against fork */ - pgref(pg); lockmgr(&pg->pg_lock, LK_EXCLUSIVE); LIST_FOREACH(p, &pg->pg_members, p_pglist) { - if (CANSIGIO(sigio->sio_ruid, sigio->sio_ucred, p) && + if (CANSIGIO(ruid, uc, p) && (checkctty == 0 || (p->p_flags & P_CONTROLT))) ksignal(p, sig); } lockmgr(&pg->pg_lock, LK_RELEASE); - pgrel(pg); } + if (pp != NULL) + PRELE(pp); + if (pg != NULL) + pgrel(pg); + crfree(uc); } static int Only in a/sys/kern: kern_slaballoc.c Only in a/sys/kern: kern_spinlock.c Only in a/sys/kern: kern_subr.c Only in a/sys/kern: kern_synch.c Only in a/sys/kern: kern_syscalls.c Only in a/sys/kern: kern_sysctl.c Only in a/sys/kern: kern_sysref.c Only in a/sys/kern: kern_systimer.c Only in a/sys/kern: kern_threads.c Only in a/sys/kern: kern_time.c Only in a/sys/kern: kern_timeout.c Only in a/sys/kern: kern_udev.c Only in a/sys/kern: kern_umtx.c Only in a/sys/kern: kern_usched.c Only in a/sys/kern: kern_uuid.c Only in a/sys/kern: kern_varsym.c Only in a/sys/kern: kern_wdog.c Only in a/sys/kern: kern_xio.c Only in a/sys/kern: libmchain Only in a/sys/kern: link_elf.c Only in a/sys/kern: link_elf_obj.c Only in a/sys/kern: lwkt_ipiq.c Only in a/sys/kern: lwkt_msgport.c Only in a/sys/kern: lwkt_serialize.c Only in a/sys/kern: lwkt_thread.c Only in a/sys/kern: lwkt_token.c Only in a/sys/kern: makesyscalls.sh Only in a/sys/kern: md4c.c Only in a/sys/kern: md5c.c Only in a/sys/kern: subr_alist.c Only in a/sys/kern: subr_autoconf.c Only in a/sys/kern: subr_blist.c Only in a/sys/kern: subr_bus.c Only in a/sys/kern: subr_busdma.c Only in a/sys/kern: subr_cpu_topology.c Only in a/sys/kern: subr_cpuhelper.c Only in a/sys/kern: subr_csprng.c Only in a/sys/kern: subr_devstat.c Only in a/sys/kern: subr_disk.c Only in a/sys/kern: subr_diskgpt.c Only in a/sys/kern: subr_diskiocom.c Only in a/sys/kern: subr_disklabel32.c Only in a/sys/kern: subr_disklabel64.c Only in a/sys/kern: subr_diskmbr.c Only in a/sys/kern: subr_diskslice.c Only in a/sys/kern: subr_eventhandler.c Only in a/sys/kern: subr_fattime.c Only in a/sys/kern: subr_firmware.c Only in a/sys/kern: subr_gtaskqueue.c Only in a/sys/kern: subr_kcore.c Only in a/sys/kern: subr_kobj.c diff -ur a/sys/kern/subr_log.c b/sys/kern/subr_log.c --- a/sys/kern/subr_log.c +++ b/sys/kern/subr_log.c @@ -244,8 +244,8 @@ } msgbuftrigger = 0; KNOTE(&logsoftc.sc_kqp.ki_note, 0); - if ((logsoftc.sc_state & LOG_ASYNC) && logsoftc.sc_sigio != NULL) - pgsigio(logsoftc.sc_sigio, SIGIO, 0); + if (logsoftc.sc_state & LOG_ASYNC) + pgsigio(&logsoftc.sc_sigio, SIGIO, 0); if (logsoftc.sc_state & LOG_RDWAIT) { atomic_clear_int(&logsoftc.sc_state, LOG_RDWAIT); wakeup((caddr_t)msgbufp); Only in a/sys/kern: subr_module.c Only in a/sys/kern: subr_param.c Only in a/sys/kern: subr_power.c Only in a/sys/kern: subr_prf.c Only in a/sys/kern: subr_prof.c Only in a/sys/kern: subr_rbtree.c Only in a/sys/kern: subr_rman.c Only in a/sys/kern: subr_sbuf.c Only in a/sys/kern: subr_scanf.c Only in a/sys/kern: subr_sglist.c Only in a/sys/kern: subr_sleepqueue.c Only in a/sys/kern: subr_taskqueue.c Only in a/sys/kern: subr_unit.c Only in a/sys/kern: sys_generic.c Only in a/sys/kern: sys_mqueue.c diff -ur a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -208,11 +208,8 @@ static __inline void pipewakeup(struct pipebuf *pb, int dosigio) { - if (dosigio && (pb->state & PIPE_ASYNC) && pb->sigio) { - lwkt_gettoken(&sigio_token); - pgsigio(pb->sigio, SIGIO, 0); - lwkt_reltoken(&sigio_token); - } + if (dosigio && (pb->state & PIPE_ASYNC)) + pgsigio(&pb->sigio, SIGIO, 0); KNOTE(&pb->kq.ki_note, 0); } Only in a/sys/kern: sys_process.c Only in a/sys/kern: sys_socket.c Only in a/sys/kern: syscalls.c Only in a/sys/kern: syscalls.master Only in a/sys/kern: sysv_ipc.c Only in a/sys/kern: sysv_msg.c Only in a/sys/kern: sysv_sem.c Only in a/sys/kern: sysv_shm.c diff -ur a/sys/kern/tty.c b/sys/kern/tty.c --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -2362,8 +2362,8 @@ ttwakeup(struct tty *tp) { lwkt_gettoken(&tp->t_token); - if (ISSET(tp->t_state, TS_ASYNC) && tp->t_sigio != NULL) - pgsigio(tp->t_sigio, SIGIO, (tp->t_session != NULL)); + if (ISSET(tp->t_state, TS_ASYNC)) + pgsigio(&tp->t_sigio, SIGIO, (tp->t_session != NULL)); wakeup(TSA_HUP_OR_INPUT(tp)); KNOTE(&tp->t_rkq.ki_note, 0); lwkt_reltoken(&tp->t_token); @@ -2376,8 +2376,8 @@ ttwwakeup(struct tty *tp) { lwkt_gettoken(&tp->t_token); - if (ISSET(tp->t_state, TS_ASYNC) && tp->t_sigio != NULL) - pgsigio(tp->t_sigio, SIGIO, (tp->t_session != NULL)); + if (ISSET(tp->t_state, TS_ASYNC)) + pgsigio(&tp->t_sigio, SIGIO, (tp->t_session != NULL)); if (ISSET(tp->t_state, TS_BUSY | TS_SO_OCOMPLETE) == TS_SO_OCOMPLETE && tp->t_outq.c_cc == 0) { CLR(tp->t_state, TS_SO_OCOMPLETE); Only in a/sys/kern: tty_conf.c Only in a/sys/kern: tty_cons.c Only in a/sys/kern: tty_pty.c Only in a/sys/kern: tty_subr.c Only in a/sys/kern: tty_tty.c Only in a/sys/kern: uipc_accf.c Only in a/sys/kern: uipc_domain.c Only in a/sys/kern: uipc_mbuf.c Only in a/sys/kern: uipc_mbuf2.c Only in a/sys/kern: uipc_msg.c Only in a/sys/kern: uipc_proto.c Only in a/sys/kern: uipc_sockbuf.c diff -ur a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2534,8 +2534,7 @@ void sohasoutofband(struct socket *so) { - if (so->so_sigio != NULL) - pgsigio(so->so_sigio, SIGURG, 0); + pgsigio(&so->so_sigio, SIGURG, 0); /* * NOTE: * There is no need to use NOTE_OOB as KNOTE hint here: diff -ur a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -598,8 +598,8 @@ /* * Misc other events */ - if ((so->so_state & SS_ASYNC) && so->so_sigio != NULL) - pgsigio(so->so_sigio, SIGIO, 0); + if (so->so_state & SS_ASYNC) + pgsigio(&so->so_sigio, SIGIO, 0); if (ssb->ssb_flags & SSB_UPCALL) (*so->so_upcall)(so, so->so_upcallarg, M_NOWAIT); KNOTE(&ssb->ssb_kq.ki_note, 0); Only in a/sys/kern: uipc_syscalls.c Only in a/sys/kern: uipc_usrreq.c Only in a/sys/kern: usched_bsd4.c Only in a/sys/kern: usched_dfly.c Only in a/sys/kern: usched_dummy.c Only in a/sys/kern: vfs_aio.c Only in a/sys/kern: vfs_bio.c Only in a/sys/kern: vfs_cache.c Only in a/sys/kern: vfs_cluster.c Only in a/sys/kern: vfs_conf.c Only in a/sys/kern: vfs_default.c Only in a/sys/kern: vfs_helper.c Only in a/sys/kern: vfs_init.c Only in a/sys/kern: vfs_jops.c Only in a/sys/kern: vfs_journal.c Only in a/sys/kern: vfs_lock.c Only in a/sys/kern: vfs_lookup.c Only in a/sys/kern: vfs_mount.c Only in a/sys/kern: vfs_nlookup.c Only in a/sys/kern: vfs_quota.c Only in a/sys/kern: vfs_subr.c Only in a/sys/kern: vfs_sync.c Only in a/sys/kern: vfs_synth.c Only in a/sys/kern: vfs_syscalls.c Only in a/sys/kern: vfs_vfsops.c Only in a/sys/kern: vfs_vm.c Only in a/sys/kern: vfs_vnops.c Only in a/sys/kern: vfs_vopops.c Only in a/sys: libiconv Only in a/sys: libkern Only in a/sys: libprop Only in a/sys/net: Makefile Only in a/sys/net: accf_data Only in a/sys/net: accf_http Only in a/sys/net: altq diff -ur a/sys/net/bpf.c b/sys/net/bpf.c --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -560,8 +560,8 @@ d->bd_state = BPF_IDLE; } wakeup(d); - if (d->bd_async && d->bd_sig && d->bd_sigio) - pgsigio(d->bd_sigio, d->bd_sig, 0); + if (d->bd_async && d->bd_sig) + pgsigio(&d->bd_sigio, d->bd_sig, 0); KNOTE(&d->bd_kq.ki_note, 0); } Only in a/sys/net: bpf.h Only in a/sys/net: bpf_filter.c Only in a/sys/net: bpfdesc.h Only in a/sys/net: bridge Only in a/sys/net: disc Only in a/sys/net: dlt.h Only in a/sys/net: dummynet Only in a/sys/net: dummynet3 Only in a/sys/net: ethernet.h Only in a/sys/net: gif Only in a/sys/net: gre Only in a/sys/net: if.c Only in a/sys/net: if.h Only in a/sys/net: if_arp.h Only in a/sys/net: if_clone.c Only in a/sys/net: if_clone.h Only in a/sys/net: if_dl.h Only in a/sys/net: if_ethersubr.c Only in a/sys/net: if_llc.h Only in a/sys/net: if_loop.c Only in a/sys/net: if_media.c Only in a/sys/net: if_media.h Only in a/sys/net: if_mib.c Only in a/sys/net: if_mib.h Only in a/sys/net: if_poll.c Only in a/sys/net: if_poll.h Only in a/sys/net: if_ringmap.h Only in a/sys/net: if_types.h Only in a/sys/net: if_var.h Only in a/sys/net: ifq_var.h Only in a/sys/net: ip6fw Only in a/sys/net: ip_mroute Only in a/sys/net: ipfw Only in a/sys/net: ipfw3 Only in a/sys/net: ipfw3_basic Only in a/sys/net: ipfw3_layer2 Only in a/sys/net: ipfw3_layer4 Only in a/sys/net: ipfw3_nat Only in a/sys/net: lagg Only in a/sys/net: net_osdep.c Only in a/sys/net: net_osdep.h Only in a/sys/net: netisr.c Only in a/sys/net: netisr.h Only in a/sys/net: netisr2.h Only in a/sys/net: netmap Only in a/sys/net: netmsg.h Only in a/sys/net: netmsg2.h Only in a/sys/net: pf Only in a/sys/net: pfil.c Only in a/sys/net: pfil.h Only in a/sys/net: ppp_layer Only in a/sys/net: radix.c Only in a/sys/net: radix.h Only in a/sys/net: raw_cb.c Only in a/sys/net: raw_cb.h Only in a/sys/net: raw_usrreq.c Only in a/sys/net: route.c Only in a/sys/net: route.h Only in a/sys/net: rtsock.c Only in a/sys/net: sl Only in a/sys/net: slcompress.h Only in a/sys/net: slip.h Only in a/sys/net: sppp Only in a/sys/net: stf Only in a/sys/net/tap: Makefile diff -ur a/sys/net/tap/if_tap.c b/sys/net/tap/if_tap.c --- a/sys/net/tap/if_tap.c +++ b/sys/net/tap/if_tap.c @@ -691,9 +691,9 @@ KNOTE(&sc->tap_rkq.ki_note, 0); - if ((sc->tap_flags & TAP_ASYNC) && (sc->tap_sigio != NULL)) { + if (sc->tap_flags & TAP_ASYNC) { get_mplock(); - pgsigio(sc->tap_sigio, SIGIO, 0); + pgsigio(&sc->tap_sigio, SIGIO, 0); rel_mplock(); } } Only in a/sys/net/tap: if_tap.h Only in a/sys/net/tap: if_tapvar.h Only in a/sys/net: toeplitz.c Only in a/sys/net: toeplitz.h Only in a/sys/net: toeplitz2.h Only in a/sys/net/tun: Makefile diff -ur a/sys/net/tun/if_tun.c b/sys/net/tun/if_tun.c --- a/sys/net/tun/if_tun.c +++ b/sys/net/tun/if_tun.c @@ -533,8 +533,8 @@ sc->tun_flags &= ~TUN_RWAIT; wakeup((caddr_t)sc); } - if (sc->tun_flags & TUN_ASYNC && sc->tun_sigio) - pgsigio(sc->tun_sigio, SIGIO, 0); + if (sc->tun_flags & TUN_ASYNC) + pgsigio(&sc->tun_sigio, SIGIO, 0); ifsq_deserialize_hw(ifsq); KNOTE(&sc->tun_rkq.ki_note, 0); ifsq_serialize_hw(ifsq); @@ -635,8 +635,8 @@ wakeup((caddr_t)sc); } get_mplock(); - if (sc->tun_flags & TUN_ASYNC && sc->tun_sigio) - pgsigio(sc->tun_sigio, SIGIO, 0); + if (sc->tun_flags & TUN_ASYNC) + pgsigio(&sc->tun_sigio, SIGIO, 0); rel_mplock(); ifnet_deserialize_all(ifp); KNOTE(&sc->tun_rkq.ki_note, 0); Only in a/sys/net/tun: if_tun.h Only in a/sys/net/tun: if_tunvar.h Only in a/sys/net: vlan Only in a/sys/net: wg Only in a/sys/net: zlib Only in a/sys/net: zlib.c Only in a/sys/net: zlib.h Only in a/sys: netbt Only in a/sys: netgraph Only in a/sys: netgraph7 Only in a/sys: netinet Only in a/sys: netinet6 Only in a/sys: netproto Only in a/sys: platform Only in a/sys/sys: _clock_id.h Only in a/sys/sys: _fd_set.h Only in a/sys/sys: _iovec.h Only in a/sys/sys: _malloc.h Only in a/sys/sys: _null.h Only in a/sys/sys: _pthreadtypes.h Only in a/sys/sys: _siginfo.h Only in a/sys/sys: _sigset.h Only in a/sys/sys: _termios.h Only in a/sys/sys: _timespec.h Only in a/sys/sys: _timeval.h Only in a/sys/sys: _ucontext.h Only in a/sys/sys: _uio.h Only in a/sys/sys: acct.h Only in a/sys/sys: acl.h Only in a/sys/sys: agpio.h Only in a/sys/sys: aio.h Only in a/sys/sys: alist.h Only in a/sys/sys: assym.h Only in a/sys/sys: atomic_common.h Only in a/sys/sys: backlight.h Only in a/sys/sys: bio.h Only in a/sys/sys: biotrack.h Only in a/sys/sys: bitops.h Only in a/sys/sys: bitstring.h Only in a/sys/sys: blist.h Only in a/sys/sys: boot.h Only in a/sys/sys: bootmaj.h Only in a/sys/sys: buf.h Only in a/sys/sys: buf2.h Only in a/sys/sys: bus.h Only in a/sys/sys: bus_dma.h Only in a/sys/sys: bus_private.h Only in a/sys/sys: bus_resource.h Only in a/sys/sys: callout.h Only in a/sys/sys: camlib.h Only in a/sys/sys: caps.h Only in a/sys/sys: ccdvar.h Only in a/sys/sys: cdefs.h Only in a/sys/sys: cdio.h Only in a/sys/sys: cdrio.h Only in a/sys/sys: checkpoint.h Only in a/sys/sys: chio.h Only in a/sys/sys: ckpt.h Only in a/sys/sys: condvar.h Only in a/sys/sys: conf.h Only in a/sys/sys: cons.h Only in a/sys/sys: consio.h Only in a/sys/sys: copyright.h Only in a/sys/sys: cpputil.h Only in a/sys/sys: cpu_topology.h Only in a/sys/sys: cpuctl.h Only in a/sys/sys: cpuhelper.h Only in a/sys/sys: cpumask.h Only in a/sys/sys: csprng.h Only in a/sys/sys: ctype.h Only in a/sys/sys: devfs.h Only in a/sys/sys: devfs_rules.h Only in a/sys/sys: device.h Only in a/sys/sys: devicestat.h Only in a/sys/sys: dirent.h Only in a/sys/sys: disk.h Only in a/sys/sys: disklabel.h Only in a/sys/sys: disklabel32.h Only in a/sys/sys: disklabel64.h Only in a/sys/sys: diskmbr.h Only in a/sys/sys: diskslice.h Only in a/sys/sys: dkstat.h Only in a/sys/sys: dmap.h Only in a/sys/sys: dmsg.h Only in a/sys/sys: domain.h Only in a/sys/sys: dsched.h Only in a/sys/sys: dtype.h Only in a/sys/sys: dvdio.h Only in a/sys/sys: efi.h Only in a/sys/sys: efiio.h Only in a/sys/sys: elf32.h Only in a/sys/sys: elf64.h Only in a/sys/sys: elf_common.h Only in a/sys/sys: elf_generic.h Only in a/sys/sys: endian.h Only in a/sys/sys: errno.h Only in a/sys/sys: eui64.h Only in a/sys/sys: event.h Only in a/sys/sys: eventhandler.h Only in a/sys/sys: eventvar.h Only in a/sys/sys: exec.h Only in a/sys/sys: exislock.h Only in a/sys/sys: exislock2.h Only in a/sys/sys: extattr.h Only in a/sys/sys: fbio.h Only in a/sys/sys: fcntl.h Only in a/sys/sys: file.h Only in a/sys/sys: file2.h Only in a/sys/sys: filedesc.h Only in a/sys/sys: filio.h Only in a/sys/sys: firmware.h Only in a/sys/sys: flame_graph.h Only in a/sys/sys: fnv_hash.h Only in a/sys/sys: globaldata.h Only in a/sys/sys: gmon.h Only in a/sys/sys: gpt.h Only in a/sys/sys: gtaskqueue.h Only in a/sys/sys: hash.h Only in a/sys/sys: ibaa.h Only in a/sys/sys: iconv.h Only in a/sys/sys: idr.h Only in a/sys/sys: imgact.h Only in a/sys/sys: imgact_aout.h Only in a/sys/sys: imgact_elf.h Only in a/sys/sys: in_cksum.h Only in a/sys/sys: indefinite.h Only in a/sys/sys: indefinite2.h Only in a/sys/sys: inflate.h Only in a/sys/sys: interrupt.h Only in a/sys/sys: ioccom.h Only in a/sys/sys: ioctl.h Only in a/sys/sys: iosched.h Only in a/sys/sys: ipc.h Only in a/sys/sys: ipmi.h Only in a/sys/sys: jail.h Only in a/sys/sys: journal.h Only in a/sys/sys: joystick.h Only in a/sys/sys: kbio.h Only in a/sys/sys: kcollect.h Only in a/sys/sys: kcore.h Only in a/sys/sys: kenv.h Only in a/sys/sys: kern_syscall.h Only in a/sys/sys: kernel.h Only in a/sys/sys: kerneldump.h Only in a/sys/sys: kinfo.h Only in a/sys/sys: kobj.h Only in a/sys/sys: kthread.h Only in a/sys/sys: ktr.h Only in a/sys/sys: ktrace.h Only in a/sys/sys: libkern.h Only in a/sys/sys: limits.h Only in a/sys/sys: link_elf.h Only in a/sys/sys: linker.h Only in a/sys/sys: linker_set.h Only in a/sys/sys: lock.h Only in a/sys/sys: lockf.h Only in a/sys/sys: lwp.h Only in a/sys/sys: machintr.h Only in a/sys/sys: malloc.h Only in a/sys/sys: mapped_ioctl.h Only in a/sys/sys: mbuf.h Only in a/sys/sys: mchain.h Only in a/sys/sys: md4.h Only in a/sys/sys: md5.h Only in a/sys/sys: memrange.h Only in a/sys/sys: microtime_pcpu.h Only in a/sys/sys: mman.h Only in a/sys/sys: module.h Only in a/sys/sys: mount.h Only in a/sys/sys: mountctl.h Only in a/sys/sys: mouse.h Only in a/sys/sys: mpipe.h Only in a/sys/sys: mplock2.h Only in a/sys/sys: mpt_ioctl.h Only in a/sys/sys: mqueue.h Only in a/sys/sys: msg.h Only in a/sys/sys: msgbuf.h Only in a/sys/sys: msgport.h Only in a/sys/sys: msgport2.h Only in a/sys/sys: mtio.h Only in a/sys/sys: mutex.h Only in a/sys/sys: mutex2.h Only in a/sys/sys: namecache.h Only in a/sys/sys: namei.h Only in a/sys/sys: nata.h Only in a/sys/sys: nchstats.h Only in a/sys/sys: nlookup.h Only in a/sys/sys: objcache.h Only in a/sys/sys: param.h Only in a/sys/sys: paths.h Only in a/sys/sys: pciio.h Only in a/sys/sys: pioctl.h Only in a/sys/sys: pipe.h Only in a/sys/sys: poll.h Only in a/sys/sys: posix4.h Only in a/sys/sys: power.h Only in a/sys/sys: proc.h Only in a/sys/sys: proc_common.h Only in a/sys/sys: procctl.h Only in a/sys/sys: procfs.h Only in a/sys/sys: protosw.h Only in a/sys/sys: ptio.h Only in a/sys/sys: ptrace.h Only in a/sys/sys: queue.h Only in a/sys/sys: random.h Only in a/sys/sys: reboot.h Only in a/sys/sys: refcount.h Only in a/sys/sys: reg.h Only in a/sys/sys: resident.h Only in a/sys/sys: resource.h Only in a/sys/sys: resourcevar.h Only in a/sys/sys: rman.h Only in a/sys/sys: rtprio.h Only in a/sys/sys: sbuf.h Only in a/sys/sys: sched.h Only in a/sys/sys: select.h Only in a/sys/sys: sem.h Only in a/sys/sys: sensors.h Only in a/sys/sys: serial.h Only in a/sys/sys: serialize.h Only in a/sys/sys: serialize2.h Only in a/sys/sys: sfbuf.h Only in a/sys/sys: sglist.h Only in a/sys/sys: shm.h Only in a/sys/sys: signal.h Only in a/sys/sys: signal2.h diff -ur a/sys/sys/signalvar.h b/sys/sys/signalvar.h --- a/sys/sys/signalvar.h +++ b/sys/sys/signalvar.h @@ -212,7 +212,7 @@ int issignal (struct lwp *lp, int maytrace, int *ptokp); int iscaught (struct lwp *p); void killproc (struct proc *p, char *why); -void pgsigio (struct sigio *, int signum, int checkctty); +void pgsigio (struct sigio **, int signum, int checkctty); void pgsignal (struct pgrp *pgrp, int sig, int checkctty); void postsig (int sig, int ptok); void ksignal (struct proc *p, int sig); Only in a/sys/sys: single_threaded.h Only in a/sys/sys: slaballoc.h Only in a/sys/sys: sleepqueue.h Only in a/sys/sys: snoop.h Only in a/sys/sys: sockbuf.h Only in a/sys/sys: socket.h Only in a/sys/sys: socketops.h Only in a/sys/sys: socketvar.h Only in a/sys/sys: socketvar2.h Only in a/sys/sys: sockio.h Only in a/sys/sys: soundcard.h Only in a/sys/sys: spinlock.h Only in a/sys/sys: spinlock2.h Only in a/sys/sys: stat.h Only in a/sys/sys: statvfs.h Only in a/sys/sys: stdarg.h Only in a/sys/sys: stdint.h Only in a/sys/sys: syscall.h Only in a/sys/sys: syscall.mk Only in a/sys/sys: sysctl.h Only in a/sys/sys: sysent.h Only in a/sys/sys: sysid.h Only in a/sys/sys: syslimits.h Only in a/sys/sys: syslink_rpc.h Only in a/sys/sys: syslog.h Only in a/sys/sys: sysmsg.h Only in a/sys/sys: sysproto.h Only in a/sys/sys: sysref.h Only in a/sys/sys: sysref2.h Only in a/sys/sys: systimer.h Only in a/sys/sys: systm.h Only in a/sys/sys: sysunion.h Only in a/sys/sys: taskqueue.h Only in a/sys/sys: tbridge.h Only in a/sys/sys: thread.h Only in a/sys/sys: thread2.h Only in a/sys/sys: time.h Only in a/sys/sys: timeb.h Only in a/sys/sys: timepps.h Only in a/sys/sys: timers.h Only in a/sys/sys: times.h Only in a/sys/sys: timespec.h Only in a/sys/sys: timex.h Only in a/sys/sys: tls.h Only in a/sys/sys: tprintf.h Only in a/sys/sys: tree.h Only in a/sys/sys: tty.h Only in a/sys/sys: ttycom.h Only in a/sys/sys: ttydefaults.h Only in a/sys/sys: types.h Only in a/sys/sys: ucontext.h Only in a/sys/sys: ucred.h Only in a/sys/sys: udev.h Only in a/sys/sys: uio.h Only in a/sys/sys: un.h Only in a/sys/sys: unistd.h Only in a/sys/sys: unpcb.h Only in a/sys/sys: upmap.h Only in a/sys/sys: usched.h Only in a/sys/sys: usched_dfly.h Only in a/sys/sys: user.h Only in a/sys/sys: utsname.h Only in a/sys/sys: uuid.h Only in a/sys/sys: varsym.h Only in a/sys/sys: vfs_quota.h Only in a/sys/sys: vfscache.h Only in a/sys/sys: vfsops.h Only in a/sys/sys: vkernel.h Only in a/sys/sys: vmmeter.h Only in a/sys/sys: vmspace.h Only in a/sys/sys: vnioctl.h Only in a/sys/sys: vnode.h Only in a/sys/sys: wait.h Only in a/sys/sys: wdog.h Only in a/sys/sys: xdiskioctl.h Only in a/sys/sys: xio.h Only in a/sys: tools Only in a/sys: vfs Only in a/sys: vm