Lines Matching defs:so

53  * Function pointer set by the AIO routines so that the socket buffer code
81 socantsendmore_locked(struct socket *so)
84 SOCKBUF_LOCK_ASSERT(&so->so_snd);
86 so->so_snd.sb_state |= SBS_CANTSENDMORE;
87 sowwakeup_locked(so);
88 mtx_assert(SOCKBUF_MTX(&so->so_snd), MA_NOTOWNED);
92 socantsendmore(struct socket *so)
95 SOCKBUF_LOCK(&so->so_snd);
96 socantsendmore_locked(so);
97 mtx_assert(SOCKBUF_MTX(&so->so_snd), MA_NOTOWNED);
101 socantrcvmore_locked(struct socket *so)
104 SOCKBUF_LOCK_ASSERT(&so->so_rcv);
106 so->so_rcv.sb_state |= SBS_CANTRCVMORE;
107 sorwakeup_locked(so);
108 mtx_assert(SOCKBUF_MTX(&so->so_rcv), MA_NOTOWNED);
112 socantrcvmore(struct socket *so)
115 SOCKBUF_LOCK(&so->so_rcv);
116 socantrcvmore_locked(so);
117 mtx_assert(SOCKBUF_MTX(&so->so_rcv), MA_NOTOWNED);
176 sowakeup(struct socket *so, struct sockbuf *sb)
191 ret = sb->sb_upcall(so, sb->sb_upcallarg, M_NOWAIT);
193 KASSERT(sb == &so->so_rcv,
195 soupcall_clear(so, SO_RCV);
200 aio_swake(so, sb);
203 soisconnected(so);
204 if ((so->so_state & SS_ASYNC) && so->so_sigio != NULL)
205 pgsigio(&so->so_sigio, SIGIO, 0);
241 soreserve(struct socket *so, u_long sndcc, u_long rcvcc)
245 SOCKBUF_LOCK(&so->so_snd);
246 SOCKBUF_LOCK(&so->so_rcv);
247 if (sbreserve_locked(&so->so_snd, sndcc, so, td) == 0)
249 if (sbreserve_locked(&so->so_rcv, rcvcc, so, td) == 0)
251 if (so->so_rcv.sb_lowat == 0)
252 so->so_rcv.sb_lowat = 1;
253 if (so->so_snd.sb_lowat == 0)
254 so->so_snd.sb_lowat = MCLBYTES;
255 if (so->so_snd.sb_lowat > so->so_snd.sb_hiwat)
256 so->so_snd.sb_lowat = so->so_snd.sb_hiwat;
257 SOCKBUF_UNLOCK(&so->so_rcv);
258 SOCKBUF_UNLOCK(&so->so_snd);
261 sbrelease_locked(&so->so_snd, so);
263 SOCKBUF_UNLOCK(&so->so_rcv);
264 SOCKBUF_UNLOCK(&so->so_snd);
285 * Allot mbufs to a sockbuf. Attempt to scale mbmax so that mbcnt doesn't
289 sbreserve_locked(struct sockbuf *sb, u_long cc, struct socket *so,
311 if (!chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, cc,
321 sbreserve(struct sockbuf *sb, u_long cc, struct socket *so,
327 error = sbreserve_locked(sb, cc, so, td);
336 sbrelease_internal(struct sockbuf *sb, struct socket *so)
340 (void)chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, 0,
346 sbrelease_locked(struct sockbuf *sb, struct socket *so)
351 sbrelease_internal(sb, so);
355 sbrelease(struct sockbuf *sb, struct socket *so)
359 sbrelease_locked(sb, so);
364 sbdestroy(struct sockbuf *sb, struct socket *so)
367 sbrelease_internal(sb, so);
607 /* always call sbcompress() so it can do SBLASTMBUFCHK() */