rem: int sysctl_rtable(int *name, uint namelen, void *where, size_t *given, void *newp,
add: static int sysctl_rtable(int *name, uint namelen, void *where, size_t *given, void *newp,
context: int sysctl_rtable(int *name, uint namelen, void *where, size_t *given, void *newp,                   size_t newlen) {	int i, error = EINVAL;	uchar af;	struct walkarg w;	struct radix_node_head *rnh;	struct radix_node_head **rt_tables;	if (newp)		return EPERM;		if (namelen != 3) {		printf("sysctl_rtable: EINVAL (namelen != 3)\n");		return EINVAL;	}	rt_tables = get_rt_tables();	af = name[0];	memset(&w, 0, sizeof(w));	w.w_where = where;	w.w_given = *given;	w.w_needed = 0 - w.w_given;	w.w_op = name[1];	w.w_arg = name[2];		switch(w.w_op) {		case NET_RT_DUMP:		case NET_RT_FLAGS:			for(i=1 ; i <= AF_MAX; i++) {				rnh = rt_tables[i];				if (rnh && (af == 0 || af == i) &&				    (error = rnh->rnh_walktree(rnh, sysctl_dumpentry, &w)))					break;			}			break;		case NET_RT_IFLIST:			error = sysctl_iflist(af, &w);	}		if (w.w_tmem)		free(w.w_tmem);	w.w_needed += w.w_given;	if (where) {		*given = (caddr_t)w.w_where - (caddr_t)where;		if (*given < w.w_needed) {			printf("sysctl_rtable: ENOMEM\n");			return ENOMEM;		}	} else {		*given = (11 * w.w_needed) / 10;	}	return error;}