[BACK]Return to uipc_socket.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/uipc_socket.c between version 1.107 and 1.111

version 1.107, 2004/09/03 18:14:09 version 1.111, 2005/05/08 18:44:39
Line 132  soinit(void)
Line 132  soinit(void)
   
         /* Set the initial adjusted socket buffer size. */          /* Set the initial adjusted socket buffer size. */
         if (sb_max_set(sb_max))          if (sb_max_set(sb_max))
                 panic("bad initial sb_max value: %lu\n", sb_max);                  panic("bad initial sb_max value: %lu", sb_max);
   
 }  }
   
Line 234  sokvaalloc(vsize_t len, struct socket *s
Line 234  sokvaalloc(vsize_t len, struct socket *s
          * allocate kva.           * allocate kva.
          */           */
   
         lva = uvm_km_valloc_wait(kernel_map, len);          lva = uvm_km_alloc(kernel_map, len, 0, UVM_KMF_VAONLY | UVM_KMF_WAITVA);
         if (lva == 0) {          if (lva == 0) {
                 sokvaunreserve(len);                  sokvaunreserve(len);
                 return (0);                  return (0);
Line 255  sokvafree(vaddr_t sva, vsize_t len)
Line 255  sokvafree(vaddr_t sva, vsize_t len)
          * free kva.           * free kva.
          */           */
   
         uvm_km_free(kernel_map, sva, len);          uvm_km_free(kernel_map, sva, len, UVM_KMF_VAONLY);
   
         /*          /*
          * unreserve kva.           * unreserve kva.
Line 480  socreate(int dom, struct socket **aso, i
Line 480  socreate(int dom, struct socket **aso, i
         so->so_mowner = &prp->pr_domain->dom_mowner;          so->so_mowner = &prp->pr_domain->dom_mowner;
 #endif  #endif
         if (p != 0)          if (p != 0)
                 so->so_uid = p->p_ucred->cr_uid;                  so->so_uidinfo = uid_find(p->p_ucred->cr_uid);
         else          else
                 so->so_uid = UID_MAX;                  so->so_uidinfo = uid_find(0);
         error = (*prp->pr_usrreq)(so, PRU_ATTACH, (struct mbuf *)0,          error = (*prp->pr_usrreq)(so, PRU_ATTACH, (struct mbuf *)0,
             (struct mbuf *)(long)proto, (struct mbuf *)0, p);              (struct mbuf *)(long)proto, (struct mbuf *)0, p);
         if (error) {          if (error) {
Line 545  sofree(struct socket *so)
Line 545  sofree(struct socket *so)
                         return;                          return;
         }          }
         if (so->so_rcv.sb_hiwat)          if (so->so_rcv.sb_hiwat)
                 (void)chgsbsize(so->so_uid, &so->so_rcv.sb_hiwat, 0,                  (void)chgsbsize(so->so_uidinfo, &so->so_rcv.sb_hiwat, 0,
                     RLIM_INFINITY);                      RLIM_INFINITY);
         if (so->so_snd.sb_hiwat)          if (so->so_snd.sb_hiwat)
                 (void)chgsbsize(so->so_uid, &so->so_snd.sb_hiwat, 0,                  (void)chgsbsize(so->so_uidinfo, &so->so_snd.sb_hiwat, 0,
                     RLIM_INFINITY);                      RLIM_INFINITY);
         sbrelease(&so->so_snd, so);          sbrelease(&so->so_snd, so);
         sorflush(so);          sorflush(so);
Line 873  sosend(struct socket *so, struct mbuf *a
Line 873  sosend(struct socket *so, struct mbuf *a
                                         break;                                          break;
                                 }                                  }
                         } while (space > 0 && atomic);                          } while (space > 0 && atomic);
   
                         s = splsoftnet();                          s = splsoftnet();
   
                         if (so->so_state & SS_CANTSENDMORE)                          if (so->so_state & SS_CANTSENDMORE)
Line 1331  soreceive(struct socket *so, struct mbuf
Line 1331  soreceive(struct socket *so, struct mbuf
                 splx(s);                  splx(s);
                 goto restart;                  goto restart;
         }          }
   
         if (flagsp)          if (flagsp)
                 *flagsp |= flags;                  *flagsp |= flags;
  release:   release:
Line 1640  filt_soread(struct knote *kn, long hint)
Line 1640  filt_soread(struct knote *kn, long hint)
         so = (struct socket *)kn->kn_fp->f_data;          so = (struct socket *)kn->kn_fp->f_data;
         kn->kn_data = so->so_rcv.sb_cc;          kn->kn_data = so->so_rcv.sb_cc;
         if (so->so_state & SS_CANTRCVMORE) {          if (so->so_state & SS_CANTRCVMORE) {
                 kn->kn_flags |= EV_EOF;                  kn->kn_flags |= EV_EOF;
                 kn->kn_fflags = so->so_error;                  kn->kn_fflags = so->so_error;
                 return (1);                  return (1);
         }          }
Line 1671  filt_sowrite(struct knote *kn, long hint
Line 1671  filt_sowrite(struct knote *kn, long hint
         so = (struct socket *)kn->kn_fp->f_data;          so = (struct socket *)kn->kn_fp->f_data;
         kn->kn_data = sbspace(&so->so_snd);          kn->kn_data = sbspace(&so->so_snd);
         if (so->so_state & SS_CANTSENDMORE) {          if (so->so_state & SS_CANTSENDMORE) {
                 kn->kn_flags |= EV_EOF;                  kn->kn_flags |= EV_EOF;
                 kn->kn_fflags = so->so_error;                  kn->kn_fflags = so->so_error;
                 return (1);                  return (1);
         }          }
Line 1696  filt_solisten(struct knote *kn, long hin
Line 1696  filt_solisten(struct knote *kn, long hin
         /*          /*
          * Set kn_data to number of incoming connections, not           * Set kn_data to number of incoming connections, not
          * counting partial (incomplete) connections.           * counting partial (incomplete) connections.
          */           */
         kn->kn_data = so->so_qlen;          kn->kn_data = so->so_qlen;
         return (kn->kn_data > 0);          return (kn->kn_data > 0);
 }  }

Legend:
Removed from v.1.107  
changed lines
  Added in v.1.111

CVSweb <webmaster@jp.NetBSD.org>