| version 1.164, 2008/05/01 09:21:56 |
version 1.164.2.1, 2008/06/23 04:31:52 |
| Line 69 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 69 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| #include "opt_sosend_loan.h" |
#include "opt_sosend_loan.h" |
| #include "opt_mbuftrace.h" |
#include "opt_mbuftrace.h" |
| #include "opt_somaxkva.h" |
#include "opt_somaxkva.h" |
| |
#include "opt_multiprocessor.h" /* XXX */ |
| |
|
| #include <sys/param.h> |
#include <sys/param.h> |
| #include <sys/systm.h> |
#include <sys/systm.h> |
| Line 127 EVCNT_ATTACH_STATIC(sosend_kvalimit); |
|
| Line 128 EVCNT_ATTACH_STATIC(sosend_kvalimit); |
|
| |
|
| static struct callback_entry sokva_reclaimerentry; |
static struct callback_entry sokva_reclaimerentry; |
| |
|
| #ifdef SOSEND_NO_LOAN |
#if defined(SOSEND_NO_LOAN) || defined(MULTIPROCESSOR) |
| int sock_loan_thresh = -1; |
int sock_loan_thresh = -1; |
| #else |
#else |
| int sock_loan_thresh = 4096; |
int sock_loan_thresh = 4096; |
|
|
| mutex_init(&so_pendfree_lock, MUTEX_DEFAULT, IPL_VM); |
mutex_init(&so_pendfree_lock, MUTEX_DEFAULT, IPL_VM); |
| softnet_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE); |
softnet_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE); |
| cv_init(&socurkva_cv, "sokva"); |
cv_init(&socurkva_cv, "sokva"); |
| |
soinit2(); |
| |
|
| /* 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)) |
| Line 498 socreate(int dom, struct socket **aso, i |
|
| Line 500 socreate(int dom, struct socket **aso, i |
|
| #endif |
#endif |
| uid = kauth_cred_geteuid(l->l_cred); |
uid = kauth_cred_geteuid(l->l_cred); |
| so->so_uidinfo = uid_find(uid); |
so->so_uidinfo = uid_find(uid); |
| |
so->so_egid = kauth_cred_getegid(l->l_cred); |
| |
so->so_cpid = l->l_proc->p_pid; |
| if (lockso != NULL) { |
if (lockso != NULL) { |
| /* Caller wants us to share a lock. */ |
/* Caller wants us to share a lock. */ |
| lock = lockso->so_lock; |
lock = lockso->so_lock; |
| Line 850 sosend(struct socket *so, struct mbuf *a |
|
| Line 854 sosend(struct socket *so, struct mbuf *a |
|
| dontroute = |
dontroute = |
| (flags & MSG_DONTROUTE) && (so->so_options & SO_DONTROUTE) == 0 && |
(flags & MSG_DONTROUTE) && (so->so_options & SO_DONTROUTE) == 0 && |
| (so->so_proto->pr_flags & PR_ATOMIC); |
(so->so_proto->pr_flags & PR_ATOMIC); |
| if (l) |
l->l_ru.ru_msgsnd++; |
| l->l_ru.ru_msgsnd++; |
|
| if (control) |
if (control) |
| clen = control->m_len; |
clen = control->m_len; |
| restart: |
restart: |