| version 1.211, 2012/07/09 04:35:13 |
version 1.212, 2012/10/08 19:20:45 |
| Line 160 static void sopendfree_thread(void *); |
|
| Line 160 static void sopendfree_thread(void *); |
|
| static kcondvar_t pendfree_thread_cv; |
static kcondvar_t pendfree_thread_cv; |
| static lwp_t *sopendfree_lwp; |
static lwp_t *sopendfree_lwp; |
| |
|
| static void sysctl_kern_somaxkva_setup(void); |
static void sysctl_kern_socket_setup(void); |
| static struct sysctllog *socket_sysctllog; |
static struct sysctllog *socket_sysctllog; |
| |
|
| static vsize_t |
static vsize_t |
|
|
| soinit(void) |
soinit(void) |
| { |
{ |
| |
|
| sysctl_kern_somaxkva_setup(); |
sysctl_kern_socket_setup(); |
| |
|
| 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); |
| Line 2366 sopoll(struct socket *so, int events) |
|
| Line 2366 sopoll(struct socket *so, int events) |
|
| #include <sys/sysctl.h> |
#include <sys/sysctl.h> |
| |
|
| static int sysctl_kern_somaxkva(SYSCTLFN_PROTO); |
static int sysctl_kern_somaxkva(SYSCTLFN_PROTO); |
| |
static int sysctl_kern_sbmax(SYSCTLFN_PROTO); |
| |
|
| /* |
/* |
| * sysctl helper routine for kern.somaxkva. ensures that the given |
* sysctl helper routine for kern.somaxkva. ensures that the given |
| Line 2396 sysctl_kern_somaxkva(SYSCTLFN_ARGS) |
|
| Line 2397 sysctl_kern_somaxkva(SYSCTLFN_ARGS) |
|
| return (error); |
return (error); |
| } |
} |
| |
|
| |
/* |
| |
* sysctl helper routine for kern.sbmax. Basically just ensures that |
| |
* any new value is not too small. |
| |
*/ |
| |
static int |
| |
sysctl_kern_sbmax(SYSCTLFN_ARGS) |
| |
{ |
| |
int error, new_sbmax; |
| |
struct sysctlnode node; |
| |
|
| |
new_sbmax = sb_max; |
| |
node = *rnode; |
| |
node.sysctl_data = &new_sbmax; |
| |
error = sysctl_lookup(SYSCTLFN_CALL(&node)); |
| |
if (error || newp == NULL) |
| |
return (error); |
| |
|
| |
KERNEL_LOCK(1, NULL); |
| |
error = sb_max_set(new_sbmax); |
| |
KERNEL_UNLOCK_ONE(NULL); |
| |
|
| |
return (error); |
| |
} |
| |
|
| static void |
static void |
| sysctl_kern_somaxkva_setup(void) |
sysctl_kern_socket_setup(void) |
| { |
{ |
| |
|
| KASSERT(socket_sysctllog == NULL); |
KASSERT(socket_sysctllog == NULL); |
| Line 2414 sysctl_kern_somaxkva_setup(void) |
|
| Line 2439 sysctl_kern_somaxkva_setup(void) |
|
| "used for socket buffers"), |
"used for socket buffers"), |
| sysctl_kern_somaxkva, 0, NULL, 0, |
sysctl_kern_somaxkva, 0, NULL, 0, |
| CTL_KERN, KERN_SOMAXKVA, CTL_EOL); |
CTL_KERN, KERN_SOMAXKVA, CTL_EOL); |
| |
|
| |
sysctl_createv(&socket_sysctllog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "sbmax", |
| |
SYSCTL_DESCR("Maximum socket buffer size"), |
| |
sysctl_kern_sbmax, 0, NULL, 0, |
| |
CTL_KERN, KERN_SBMAX, CTL_EOL); |
| } |
} |